ATI FireGL V7700 driver crash involving glBlitFramebuffer
I'm getting a driver crash (brings down video on the whole PC), and I expect it's probably a driver bug, but I thought I'd post it on the off chance that someone knows a workaround. The rough outline of events is as follows:
- Create multisample FBO (4 samples, color + packed depth/stencil render buffers), bound to draw target
- Create single-sample FBO (color + packed depth/stencil render buffers), bound to read draw target
- render some stuff
- resolve samples using glBlitFramebuffer from the multi-sampled FBO to the single-sampled FBO
- read some pixel data using glReadPixels
- delete render buffers and FBOs
- Render in a previously-existing on-screen OpenGL context
Since the driver dies after I cleaned up the FBOs, I thought I might be doing that wrong. But if I omit that step and just let stuff leak, the crash happens just the same.
On the other hand, if I omit the glBlitFramebuffer call, the crash doesn't happen. I was using the mask GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT. If I change that to GL_COLOR_BUFFER_BIT, it no longer crashes (but I may need the depth). If I change the mask to GL_DEPTH_BUFFER_BIT, or GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT, it does crash.
As indicated in the title, the problem is occurring on ATI FireGL V7700. On the other hand, on a PC with an ATI Radeon HD 4670, the same code works fine.