Error d3dx9_29.dll not found, many tutorials not running

Sorry if this is FAQ, but I didn’t find an answer in the forums.

When running the tutorials, I always get an error message box that d3dx9_29.dll cannot be found.
After closing the popup, the tutorials then continue running,
but many of them do not work.
For example, the Tut-Normal-Mapping.py says:

C:\Panda3D-1.3.2\samples\Feature-Tutorials–Normal-Mapping>ppython Tut-Normal-Ma
pping.py
DirectStart: Starting the game.
Warning: DirectNotify: category ‘Interval’ already exists
Known pipe types:
wglGraphicsPipe
(3 aux display modules not yet loaded.)
:display:wgldisplay(error): SetPixelFormat(45) failed after window create
:display(error): Window wouldn’t open; abandoning window.
c:\panda3d-1.3.2\direct\src\showbase\ShowBase.py:410: RuntimeWarning: tp_compare
didn’t return -1, 0 or 1
if pipe.getType() == pipeType:
:util(warning): Adjusting global clock’s real time by 0.254796 seconds.
:util(warning): Adjusting global clock’s real time by -0.126218 seconds.

and in the Panda window it renders the text “Normal Map Demo: Video driver reports that shaders are not supported”.

If I download the DirectX-DLL from somewhere and put it in the panda3d\python directory, I get a different error message instead:

:display:wdxdisplay9(fatal): Can’t create any screen buffers, bailing out.
:display:wdxdisplay9(error): fatal: must be trying to create two fullscreen wind
ows: not supported
Assertion failed: _d3d_device != NULL, file panda/src/dxgsg9/dxGraphicsStateGuar
dian9.cxx, line 2382

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.

I set the following PATH entries before calling the tutorials:

set PATH=c:\panda3d-1.3.2\bin;c:\panda3d-1.3.2\python;%WINDIR%\System32;%WINDIR%;%WINDIR%\System32\wbem

My computer configuration is:

  • Windows XP Home
  • DirectX version according to DirectX properties from control panel:
    DirectX 9.0c (4.09.0000.0904)
  • I have some DirectX debug DLLs installed (for example, d3dx9d.dll).
    This is probably because the DirectX SDK is installed.
  • The graphics card is a no-name ATI Radeon 9000.
  • I have no problems running typical 3D games or Alice2, for example.

Note:

  • I’m new to Panda3D, but not to Python or Windows programming.
  • I have other python version installed and chose not to change the Python registry entry during installation. But this shouldn’t be the problem since I explicitly set up the PATH environment variable in the CMD box before calling the demos.

You are using an older version of the DirectX9 runtime. You need to download the latest DirectX9 runtime from Microsoft. Without it, Panda will fail over to DirectX8 mode, in which the shaders don’t work.

Or, you can set your Config file to use pandagl instead of pandadx9. If your drivers are good, the shaders will work in OpenGL mode.

David

I downloaded dxwebsetup from Microsoft and ran it.
Then I changed the entry in config.prc to use pandadx9 instead of pandadx8, and now the error message is:
C:\Panda3D-1.3.2\samples\Feature-Tutorials–Glow-Filter>ppython Tut-Glow-Filter.
py
DirectStart: Starting the game.
Warning: DirectNotify: category ‘Interval’ already exists
Known pipe types:
wdxGraphicsPipe9
(3 aux display modules not yet loaded.)
:display:wdxdisplay9(error): adapter #0 CheckDeviceType failed for surface fmt D
3DFMT_A8R8G8B8
:display:wdxdisplay9(error): adapter #0 CheckDeviceType failed for surface fmt D
3DFMT_A8R8G8B8
:display:wdxdisplay9(fatal): Can’t create any screen buffers, bailing out.
:display:wdxdisplay9(error): fatal: must be trying to create two fullscreen wind
ows: not supported
Assertion failed: _d3d_device != NULL, file panda/src/dxgsg9/dxGraphicsStateGuardian9.cxx, line 2382

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.

What about mentioned “pandagl”-mode? Does “pandadx8”-mode work?

Did you re-install graphic card drivers (latest!)? What graphic card do you use?

Regards, Bigfoot29

Do you even have a graphics/video card?

As I mentioned in the original posting,
the graphics card is an ATI Radeon 9000 clone.
This is what dxdiag says (in German):

Gerät (engl.: Device)
Name: RADEON 9000 SERIES
Hersteller: ATI Technologies Inc
Chiptyp: RADEON 9000 Series AGP (0x4966)
DAC-Typ: Internal DAC(400 MHz)
Gesamtspeicher ca.: 64.0 MB

Treiber (engl.: Driver)
Haupttreiber: ati2dvag.dll
Version: 6.14.0010.6614 (Englisch)
Datum: 03.05.2006 18:51:00
Mit WHQL-Logo: Nicht zutreffend
Mini-VDD: ati2mtag.sys
VDD: Nicht zutreffend
DDI-Version: 9 (oder höher)

pandadx8 mode is working.


The default mode (pandagl) seems to work like that (from what I observed):
Tries DX first - this gives a pop up error message,
then the program continues with OpenGL mode.

Sure does sound like your drivers don’t support DX9 for whatever reason. Have you installed the latest drivers from ATI?

David

I updated the drivers last year, it is 6.14 (the latest available).
And I don’t have any difficulties running games like FIFA 07 etc.
[/quote]

Hmm. You mentioned you are still getting a popup. Is it the popup about d3dx9_29.dll? If you are still getting this, then something’s not right with your DX9 setup, since that file should have been installed by dxwebsetup, along with the latest runtime of DirectX9. Does that file exist on your computer?

If you’re not still getting that popup, it must be something else wrong. There are some oddities in our pandadx9 window creation code, which I hope to get a change to straighten out soon. In the meantime, of course, you can (and probably should) just run in pandagl mode–it supports everything that pandadx9 mode supports.

Interestingly, when I go to ati.com and look for the latest RADEON 9000 drivers, it only offers driver version 6.11 to me. No mention of 6.14. Weird.

David

No, I don’t get the popup any more.
But with pandadx9 I get the error message
“”"
display:wdxdisplay9(error): fatal: must be trying to create two fullscreen windows: not supported
Assertion failed: _d3d_device != NULL, file panda/src/dxgsg9/dxGraphicsStateGuardian9.cxx, line 2382
“”"

I’ll try with pandagl again when I’m back home.
Unfortunately, my home WLAN stopped working a few days ago, so I cannot post from home (where Panda3D ist installed).

Regarding the driver version number:
I am not exactly sure about the version number, but I updated the driver in 2006, so I’m pretty sure it is the latest version for the Radeon 9000.

It’s worth checking again. Graphics card manufacturers typically release new drivers three or four times a year.

David

Hi,

I had a comparable issue with my brand new lenovo laptop. I downgraded the driver of the ATI graphics card to the previous version and now everything is fine.

It’s definitivly a driver issue. Using the newest driver may not the solution…

Regards,
Andrew

I checked at the ATI web site that my driver is up to date.
It is from the “Catalyst 6.11” download.

Note that the following error message appears twice with pandadx9:
:display:wdxdisplay9(error): adapter #0 CheckDeviceType failed for surface fmt D
3DFMT_A8R8G8B8
Maybe this is a cut&paste error in the code and one of the lines should read R8G8B8A8 instead of A8R8G8B8 or so?

Then I changed my display settings from 16 bit to 32 bit color,
and finally pandadx9 works.

But shouldn’t panda3d support 16 bit color mode as well?

Hmm, this is a good guess, but I think the code is trying to open a window twice for a different reason (though not necessarily a good reason).

Hooray! I’m glad you found the workaround, and it’s good to understand better the nature of the failure. I’ll see if I can reproduce (and fix) this problem here.

David

Soo… I think this topic is more or less solved?

Regards, Bigfoot29