Ralf's profileFun with GPUsBlogLists Tools Help

Blog


    June 23

    Windows display driver versions

    Direct3D allows you to get the version number of the used display driver.  But the Direct3D SDK documentation doesn’t told you what this number can tell you. This information is only in the WDK (windows driver kit) formerly known as DDK.

    As every other version number in the windows world they have four part separated by a dot. The first one encodes the operating system the driver was written for.

    4

    Windows 95/98/ME

    5

    Windows 2000

    6

    Windows XP

    7

    Windows Vista

     

    The second number defines the supported device driver interface

    10

    DirectX 5.0

    11

    DirectX 6.0

    12

    DirectX 7.0

    13

    DirectX 8.0

    14

    DirectX 9.0

    15

    Direct3D 10

     

    The last two numbers are mostly defines by the driver developers and include the real driver version.

    Most time you would not have to care about this stuff but it could be useful if your code runs on some exotic hardware. The XP Version of Direct3D 9 needs only a driver with the DX 7 device driver interface. But without a real D3D9 driver the runtime change some behaviors.

    On Vista there is an uglier problem with the driver versions. DXGI seems to use the second number to check if Direct3D 10 is supported. This would not be a problem as long as the drivers have the right version number. Unfortunately nvidia install the D3D10 drivers even if there is no GeForce 8xxx in the system. Therefore the version numbers that Direct3D reports are not a good way to check if Direct3D hardware is available.

     

    June 16

    Direct3D 10 wrappers status

    Wine got its first lines of Direct3D 10 code this week. At least a sign a life even if it is only a small one.

    The guys from Falling Leaf haven’t release anything new but they have give some kind of road map in their forum. First Quarter of 2008 seems their current aim for a release.  In another thread they talk about 2 or 3 month to show some “real” demos running.

    I haven’t much time lately to work on my own little wrapper. To get the Tutorials running with the UI I need to add geometry shader first. DXUT use the D3DX10 sprite class that use a geometry shader to draw sprites. As simple as it sounds it may requires some changes as my generated GLSL pixel shader now can feed from a vertex or geometry shader. But I believe I can get the tutorials running by end of the month.

    June 10

    Ruby: G80 out

    Finally after some time with only videos AMD/ATI let everyone download the new Ruby demo as executable.  After the hardly readable words of warning: “Whiteout demo requires Windows Vista®, an ATI Radeon™ HD series product with 512MB of video memory and a high end CPU with 1GB of RAM” I should not expect that it works on a G80. But I thought I will give it a try as the required hardware and the G80 are both Direct3D 10 GPUs.

    At first it looks good. The load screen shows up and the bar grows and reaches the end. But then there is a colorful pixel soup before everything goes pure white. Even with the sound is still there I decided to stop they dilemma. After the desktop is back again a info box popped up that informs me that my video driver was reset.

    Looks like I have to blame nvdia for a bad driver but I give it a second run with the debug layer active. Firstly the log shows some warnings about bad data types in the input layouts. But then it starts to throws errors about bad shader semantic bindings.  This increases the responsible for this to the demo group that writes the sushi engine.

    The final question is what can a Direct3D 10 programmer learns from this?

    Always use the debug layer during development as you can’t trust the drivers. Some may become unstable others may ignore the errors.

    June 07

    DirectX SDK June 2007

    It’s time again for the bimonthly DirectX SDK comparison. The June SDK includes the following header changes.

    Direct3D 9:

    The June version adds all the D3D9Ex stuff that was formerly part of the Platform SDK.

    Direct3DX 9:

    The version is upgraded to 34.

    There is a new flag for the effect system. D3DXFX_LARGEADDRESSAWARE allows the effect system to use the upper address space. If this feature is used a D3DXHANDLE is not longer compatible with LPCSTR.

    Direct3DX 10

    The version is now 34 too. The preprocessor defines D3DX10_DLL_W and D3DX10_DLL _A can now be used to load the right D3DX 10 DLL dynamic.

    XACT:

    The engine use new GUIDs (as always)

    X3D audio listener now supports a cone.

    X3D audio emitter has an additional InnerRadius and InnerRadiusAngle.

    XInput:

    Add subtypes for guitar and drum kit.

    Direct Draw:

    Yes you read right. :D

    Direct Draw on Vista supports shared surfaces and therefore there are some new caps. Additional there are new flags that controls how the GDI DCs are handled.