I hear that OpenGL and DirectX calls are actually converted by the video driver into card specific calls. I also know that sometimes a new video driver can improve performance 50% on a video game without the developer doing anything. If I want fine grain control over the video card, is this possible at a level below DX/OpenGL? Does Nvidia/AMD release vendor specific APIs?
NVidia keeps their GPUs programming model a secret. No chance getting lower than DirectX, OpenGL, CUDA or OpenCL.
AMD/ATI opened up their documentation, but that's probably too low level for the everyday job programmer: http://developer.amd.com/documentation/guides/pages/default.aspx#open_gpu
Intel open sources their Linux drivers and there's some kind of documentation.
The Linux open source drivers for both AMD and Intel go through an low level API called DRI2/DRM; in combination with KMS also called Gallium. MesaGL sits on top of DRI, so in Linux there is actually such a lower than OpenGL level API to the graphics card. MesaGL is a so called DRI state tracker, and from what I hear the WINE developers have a Direct3D-10 (and 11?) state tracker almost finished, so there's native Direct3D to be supported by WINE in the foreseeable future. Will work with DRI only of course, so no support for NVidia GPUs.
Forget it, you'll spend MUCH more time on reading some kind of SDKs and supporting all possible video cards. Let me give you an advice: just read articles that explain how to make a D3D or OpenGL apps effective (caching, context switching, etc.).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With