Search code examples
gpuhal

DirectX HAL specification


Where can one find the DirectX HAL specification?

Taking this diagram to be correct

alt text

Then all GPU vendors have to write their device drivers such that they speak to the HAL.

Where is the HAL specified? How does MSFT adjust or update the HAL? When does the HAL change? If the HAL changes does the world break or the sky fall?


Solution

  • As far as I know, there is no "DirectX HAL", HAL is just HAL. HAL is a kernel-mode abstraction layer that WDDM uses. In turn, the DirectX API talks to the WDDM driver (written by nVidia, ATi, etc), and instantiates a HAL device.

    For software to talk to HAL, it needs to run in privileged mode (i.e. be a driver). If you're curious, this is where HAL is specified: http://msdn.microsoft.com/en-us/library/aa490448.aspx

    HAL (usually) changes when new versions of Windows are released. And yes, the sky does sometimes fall. Remember when no XP drivers worked on Vista? This was caused either by WDDM changing, or by HAL changing. Or, most likely, both.