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

Reply via email to