[CRASH] Reproducible OpenGL driver crash (Catalyst 10.4, HD 4850, XP64)

Discussion created by SillyRob on May 22, 2010
Latest reply on Jul 6, 2010 by SillyRob
Crash during DrvValidateVersion() under special conditions


First of all: I am sorry if this is not the place to report bugs! I remember some place else I used to report bugs, but it's been a few years since then and I couldn't find any other place.

I've spent a few hours debugging to resolve a crash in a game I am working on.

System: XP64, regular Radeon HD 4850 / 512 MiB, 32bit application, Catalyst 10.2 and 10.4 were the only two versions I tested and both are affected.

The crash happens in atioglxx.dll and is currently 100% reproducible on my side. Tests on a Netbook with an Intel GMA950 (OpenGL 1.4, no MSAA) did not display this behaviour, so at this time it doesn't appear to be a bug in the game. (See update below.)

I was able to narrow it down to pretty much this (not a literal step-by-step):

  • Create OpenGL 3.2 compatibility context, only fixed function is used in the relevant parts, although shaders are used elsewhere
  • (A) Set point size distance attenuation (during initialization) to anything but (1.0f, 0.0f, 0.0f) via glPointParameterfv(GL_POINT_DISTANCE_ATTENUATION_ARB, #);
  • Set a perspective projection
  • (B) Enable Multisampling (set to 8x, no other AA enabled)
  • (C) Draw a plain (just color) line with a thickness of more than two pixels via glBegin/End()

The game crashes and there's a lot of ??s in the call stack shown by gdb (the game is being compiled with gcc 3.5.x), but there's five calls to atioglxx!DrvValidateVersion() among them. The game crashes without any warnings, just shuts down with some obscure error code (large negative number).

The crash occurs after the line draw calls are issued.

Now, it doesn't crash at all when one of the steps marked with A, B or C is changed:

A: Set the distance attenuation to exactly (1.0f, 0.0f, 0.0f)

B: Disable Multisampling

C: Draw the line with a thickness of at most 2 pixels

I hope this helps improving the OpenGL driver a tiny little bit - even though this has to be a rather rare issue, I must admit.

Have a nice day.




Update: Tests on a Geforce GTX 260 confirm that this must be a driver bug, because there are no issues there, at all. I will do some testing on some other Radeon cards as soon as possible.