Saturday, 19 September 2009

DLL version of D3DX11 effect library

I've converted the supplied open source C++ static library version of the D3DX11 effect library to a DLL so that it can be used with Delphi.

See: d3dx11Effects_Aug_2009_JSB.zip (http://www.jsbmedical.co.uk/DirectXForDelphi/).

Unzip and copy this file to the System32 folder. The latest copy of the headers are required to link to this version.

So far, this seems to work OK with test applications that use the reference renderer.

However, please note that the Direct3D 11 test applications that I have tried, running with hardware rendering and Direct3D 10.1 feature level, cause my Direct3D 10.1 graphics card drivers (ATI) to crash and restart.

There are two error messages sent from the D3DX11 effects library to "Output" when D3DX11CreateEffectFromMemory is called:

1) "ID3D11Device:: CreateVertexShader: The pClassLinkage parameter must be NULL, unless GetFeatureLevel returns D3D_FEATURE_LEVEL_11_0 or greater".
2) "ID3D11Device:: CreatePixelShader: The pClassLinkage parameter must be NULL, unless GetFeatureLevel returns D3D_FEATURE_LEVEL_11_0 or greater".

Then there are pixel and vertex shader error messages during rendering. It seems that the D3DX11 effects library currently has a problem supporting Direct3D 10.1, coupled with problems in the current ATI drivers.

JB.

No comments:

Post a comment