3 ms·
I used to write graphics device drivers so I'm going to bite. Usually most vendors think that their 'solutions', details about their hardware designs exposed i
by jhartmann 13y ago
I used to write graphics device drivers so I'm going to bite. Usually most vendors think that their 'solutions', details about their hardware designs exposed in the drivers and optimizations are extremely valuable. Personally in my experience I found that most of what vendors considered secret was well known and not that novel and the majority of what was being done was application of the same or similar techniques in their hardware and drivers. Sure there are some novel things, but enough people have moved between the graphics card companies that the drivers really have very little truly unique information about the designs that would help a competitor.
One thing that I think does cause problems for opening up hardware though is that many graphics implementations use the same or similar chips (to save on asic costs) and the drivers enable options based on the product the customer bought, but the underlying chip will actually still implement the higher end functionality. This is a common enough technique and to avoid people getting 500 dollar parts for 99 they can't open up the drivers. I don't understand why they don't push this sort of thing exclusively to device microcode (many do this or at least partially) rather than having software components that do some of this logic.
- rys 13y agoYou might have been right at one point in time, but respectfully you're not right today. Today's modern GPU implementations -- especially on mobile because the APIs we support are so (intentionally) vague and encode a system with a wide spectrum of possible implementations -- are so complex and hide a lot of implementation specific secrets that other vendors would love to freely discover in source code. Discovering the secret sauce is the very embodiment of my job for my employer, and I make a great and exciting living figuring out our competitors' myriad secrets, a lot of which is controlled entirely by the driver. I could write an entire book about why there's potentially very valuable competitive data enshrined in GPU driver code. Some obvious examples: execution resources and scheduler details (including full software schedulers in many cases), register allocation strategies, optimising shader compilers, hardware bug workarounds, power management limitations, clocking schemes, API compliance workarounds; all highly valuable competitive data that would be plain as day if GPU driver source were available.