On Mon, 2009-06-01 at 22:26 +0200, Nicolai Hähnle wrote: > 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?
Maybe radeon->is_front_buffer_rendering should also be set in radeonReadBuffer() if the mode is front? -- Earthling Michel Dänzer | http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer ------------------------------------------------------------------------------ OpenSolaris 2009.06 is a cutting edge operating system for enterprises looking to deploy the next generation of Solaris that includes the latest innovations from Sun and the OpenSource community. Download a copy and enjoy capabilities such as Networking, Storage and Virtualization. Go to: http://p.sf.net/sfu/opensolaris-get -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel