Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a lower level API beyond DirectX/OpenGL?

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?

like image 811
aramadia Avatar asked Jun 14 '11 14:06

aramadia


2 Answers

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.

like image 109
datenwolf Avatar answered Oct 31 '22 21:10

datenwolf


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.).

like image 29
Optillect Team Avatar answered Oct 31 '22 22:10

Optillect Team