[Mesa-dev] [PATCH 3/3] swrast: map/unmap attachments, not renderbuffers in glReadPixels

Brian Paul brian.e.paul at gmail.com
Sat Nov 5 15:06:42 PDT 2011


On Sat, Nov 5, 2011 at 1:15 PM, Brian Paul <brianp at vmware.com> wrote:
> Most drivers have been creating fake/wrapper renderbuffers when a
> texture image is attached to an FBO.  But that's not a requirement
> of core Mesa.
>
> So an FBO attachment that points into a texture may not have a
> (fake) renderbuffer.  This caused the new glReadPixels code to fail
> when reading from a buffer that's actually a texture.
>
> Now, we check the attachment point to see if it's a real renderbuffer
> or a texture image and call the corresponding MapRenderbuffer() or
> MapTextureImage() function.
>
> This fixes a bunch of piglit fbo failures when using the non-DRI
> swrast driver.

Rereading this, the description leaves out another important detail.

Unlike the DRI drivers and gallium drivers, the swrast driver doesn't
have a common underlying memory object that stores both textures and
renderbuffers.  That makes the texture renderbuffer wrapper approach
messy.  Explicitly calling MapRenderbuffer or MapTextureImage here
avoids that.

-Brian


More information about the mesa-dev mailing list