Particle blending misbehavior

I’ve found myself between a rock and a hard place while working with the particles; any help would be greatly appreciated.

We have a fire particle effect in our program that uses the PPBLENDLINEAR blending function. We’re currently running Panda3D 1.2.3. On an ATI Radeon 7200 (driver version 6.14.10.661), we get the following errors when we load and run the particle effect in the scene:

:display:gsg:glgsg(warning): BlendEquation advertised as supported by OpenGL runtime, but could not get pointers to extension function.
:display:gsg:glgsg(warning): BlendColor advertised as supported by OpenGL runtime, but could not get pointers to extension function.
.
.
.
:display:gsg:glgsg(error): at 2230 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display:gsg:glgsg(error): at 6379 of c:\temp\mkpr\panda3d-1.2.3\panda\src\glstuff\glGraphicsStateGuardian_src.cxx: invalid enumerant
:display(error): Deactivating wglGraphicsStateGuardian.

After the display error message, the scene stops redrawing.

We were able to work around this problem by switching to pandadx8, but unfortunately that’s only a half-solution; in that mode, all of our particle effects look a bit “off.” They’re darker and changing their color has more effect; my artist tells me that the particles in dx8 look the same as the particles in gl, if he were to turn off PPBLENDLINEAR in gl.

My question is twofold:

  1. Does anyone know why we are receiving these errors in gl and what can be done about them?
  2. Does anyone know what we would need to change to get our colors aligned correctly in dx8, so they look the same as they did under GL?

Thank you for your help!
-Mark

You could try to download the newest version of Panda3D? Maybe it has already the errors fixed?

It’s hard to tell what’s going on, but it certainly appears that something’s not supported properly by your driver. Updating to the latest Panda is certainly worth a try.

It’s also worth seeing if you can repeat this error outside of the particle system. The error message doesn’t appear to be specifically related to the use of particles; and in fact, there’s nothing about PPBLENDLINEAR that enables funny rendering modes.

David