Regards to all I am little confused had big disscussion on subject of how DirectX actually works with hardware and found some very different oppionions on subject also alot dissambiguioses about subject. Topic of my interest is very simple actually: Q1: Does call to some drawing (simplest function for example bliting) DirectX function on PC that (for example) has GFX Card that supports DX 10.0 (supports DX10.0 is that it supports all of its function provided with DX API/DDI) will call driver or not for that GFX card? Some simple explanation what actually is happening in background: 1. Program/application calls directX function which is calling driver to execute one or more instructions, where driver is calling HAL(hardware abstraction layer) to paste those instructions to the hardware: program->directX function->gfx driver->HAL(hardware abstraction layer)->hardware -or- 2. Program/application calls directX function which is calling HAL(hardware abstraction layer) to paste those instructions to the hardware: program->directX function->HAL(hardware abstraction layer)->hardware -or- 3. (this was craziest thing I saw in some docs on MS site or maybe wrongly intepreted by me) Program/application calls directX function, directX directly pastes instructions to hardware. in wich case DirectX is HAL(hardware abstraction layer) for this GFX Card? program->directX function->hardware Q2: and here program can be actually a driver wich is calling directX (cause directX is HAL)??? I hope my English is not that bad ;) //NB
Perhaps you can explain why any of this matters to you? In other words, what are you trying to do? The application calls the Direct3D API and when it creates the device, it specifies D3DDEVTYPE_HAL for using hardware in almost all cases. The D3DDEVTYPE_NULLREF type is useful for some limited tools that don't actually render, just do some work with the APIs. The D3DDEVTYPE_REF type is really only useful for driver writers wanting to test their hardware for accuracy or perhaps debugging scenarios, but is far too slow for any real use. You'd need some kind of plug-in to make use of D3DDEVTYPE_SW software renderring like PixoMatic. In other words, for all practical purposes you just use HAL in all cases. The video driver and the DirectX Runtime take care of the rest. -- Chuck Walbourn SDE, XNA Developer Connection This posting is provided "AS IS" with no warranties, and confers no rights.