Quote Originally Posted by Ericg View Post
You could argue that C and a C compiler is just a wrapper for assembly... Extreme case, yes, but my point is: A library is anything that wraps around something else with the goal of making it easier to access / do. The fact this library just simplifies access and functions isn't something to be understated. Its still helpful, its still doing a job. And, SERIOUSLY?! who cares about the size? So what if its only 2.5k?
I was being specific. Have you seen the code ?! It's push\pulls and initiators. It does handle timeouts and allocations and that's why I've said it looks useful, but where is the added value that differs a wrapper from a library ?!
Code like this is at best a poor substitute for documentations. In this case, we get what nvidia tells us is the right way to push data into the SoC. It hints the structs and handles the pointer magic for us. But, what you end up doing is hoping nvidia isn't hiding another subset of commands for her "business partners".
For instance, some functions they wrote handle uint32_t buffers. Does that mean they don't have a register that can handle other data types better ? Maybe some image\video decompression on the chip that will decrease my mem usage ? Of course not. What it does mean is that you're writing code to a hostile environment.

And it's not like it's all conjunctures and speculation. Nvidia's geforce drivers are often released with game-specific optimizations for big houses.

As long as there are closed source blobs in the kernel, You're a second class developer.