[Mesa-dev] [PATCH] i965/pixel_read: Don't try to do a tiled_memcpy from a multisampled buffer

Kenneth Graunke kenneth at whitecape.org
Sat Jan 31 03:04:50 PST 2015


On Friday, January 30, 2015 06:56:22 PM Jason Ekstrand wrote:
> The GL spec guarantees that glGetTexImage will never get a multisampled
> texture, but this is not true for glReadPixels.  If we get a multisampled
> buffer, we have to do a multisample resolve on it before we can pull the
> data down for the user.  Since this isn't practical to handle in
> tiled_memcpy, we just fall back to the other paths that can handle this.
> ---
>  src/mesa/drivers/dri/i965/intel_pixel_read.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/src/mesa/drivers/dri/i965/intel_pixel_read.c b/src/mesa/drivers/dri/i965/intel_pixel_read.c
> index 15f9e38..f3ab05c 100644
> --- a/src/mesa/drivers/dri/i965/intel_pixel_read.c
> +++ b/src/mesa/drivers/dri/i965/intel_pixel_read.c
> @@ -125,6 +125,13 @@ intel_readpixels_tiled_memcpy(struct gl_context * ctx,
>        yoffset += irb->mt->level[level].level_y;
>     }
>  
> +   /* It is possible that the renderbuffer (or underlying texture) is
> +    * multisampled.  Since ReadPixels from a multisampled buffer requires a
> +    * multisample resolve, we can't handle this here
> +    */
> +   if (rb->NumSamples > 1)
> +      return false;
> +
>     if (!intel_get_memcpy(rb->Format, format, type, &mem_copy, &cpp))
>        return false;
>  
> 

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150131/d2d82f26/attachment.sig>


More information about the mesa-dev mailing list