I’ve just built Panda 1.7 .deb package on my Ubuntu 9.04 box. Compilation went relatively fine (except for problems with fftw, tinyxml and rvnp - which I ended up disabling), installation also, but now when I try to run my Panda project I am getting this strange error:
DirectStart: Starting the game.
:display(warning): Unable to load: /usr/lib/panda3d/libtinydisplay.so: undefined symbol: XF86DGADirectVideo
StandardError: No graphics pipe is available!
Your Config.prc file must name at least one valid panda display
library via load-display or aux-display.
I’ve checked and definatelly have pandagl display enabled in my Config.prc. Did someone stumble upon this before? Any help will be greatly appreciated!
Did you build using makepanda? It sounds like it incorrectly auto-detected that your X11 system has the XF86DGA extensions installed, when in fact you don’t.
Try editing makepanda.py and changing the line:
("HAVE_XF86DGA", 'UNDEF', '1'),
("HAVE_XF86DGA", 'UNDEF', 'UNDEF'),
Sweeeet… That did the trick. Thank you!
Alternatively, try installing the libxxf86dga1 package. Also, the latest CVS version of Panda now correctly detects if that library exists on the system, I think. The advantage of building with HAVE_XF86DGA is that you enable support for relative mouse mode on linux.
One thing that surprises me is that Panda tried to load tinydisplay in the first place - as this is a software renderer. It should actually be loading pandagl, which is an OpenGL renderer.
In any case, all of those linking issues should have been fixed a few days ago on Panda CVS. If not, please let me know.
I suspect that Panda first attempted to load OpenGL, and failed, and then attempted to load tinydisplay, and failed, both times for the same reason.
Actually, Panda tried to load OpenGL one first, but when it failed, I manually changed it to Tiny just to test if I will get the same error. Sorry for the confusion.
@pro-soft: The code I was compiling yesterday was the latest checkout from CSV. Did anything changed today that fixed the problem with DGA discovery??
No, I think we’re talking about changes from the day before yesterday. But upon further inspection, I now see what was causing the problem - it probably indeed detected the absence of the library, but didn’t update dtool_config accordingly. So it’s indeed a bug in makepanda.
What is interesting: I’ve just checked: I actually have all DGA related packages installed in Ubuntu. Including -dev ones. Do I need anything more except from standard Ubuntu packages to make it work? Maybe I need to compile something up and put in third party folder?
Er, then it must be a linking issue. But, as of a few days ago, I’m 100% sure that xf86dga is linked into libtinydisplay and libpandagl.
If you really need relative mouse support, you could try compiling latest CVS panda with xf86dga enabled and call “ldd” on libpandagl and libtinydisplay to see if it’s correctly linked in there.
I will live without DGA for now. Just want to test out new shading features and start to modify my code to use them before 1.7 will actually be released.
I hit the above bug myself a few minutes ago, on Ubuntu 9.10 - fixed it by creating a link to from a .so file to the .so.1 file that actually exists within /usr/lib, i.e. I ran the command:
sudo ln -s /usr/lib/libXxf86dga.so.1 /usr/lib/libXxf86dga.so