From: Nicolai H. <nha...@gm...> - 2009-06-01 20:26:33
|
Certain tests (e.g. piglit's crossbar) crash because they do (possibly somewhat weird things) with glReadBuffer(). What happens is this: - Context gets set up, made current - Stuff gets rendered - glReadBuffer() is called to change the read buffer - glReadPixels() crashes because now ctx->ReadBuffer->_ColorReadBuffer has no corresponding buffer object The issue is that the front buffer's buffer object is never opened. Buffer objects for renderbuffers are opened in radeon_update_renderbuffers(), but the front buffer buffer object is only opened if we are in single-buffer mode or rendering to the front buffer. This just seems incorrect, since clearly *read* and *draw* buffer may be different. On the other hand, there was probably a reason to put this check there in the first place, and I would like to understand that reason before blindly changing the code. Can somebody enlighten me? In the meantime, the attached patch fixes the crash for me. cu, Nicolai |