[Mesa-dev] [PATCH 06/14] meta: Don't do fragment color clamping in case of ReadPixels

Iago Toral itoral at igalia.com
Tue Jul 21 00:24:49 PDT 2015


On Tue, 2015-06-16 at 11:15 -0700, Anuj Phogat wrote:
> Without this patch, piglit test arb_color_buffer_float-readpixels
> fails, when forced to use the meta pbo path.
> 
> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
> Cc: <mesa-stable at lists.freedesktop.org>
> ---
>  src/mesa/drivers/common/meta_tex_subimage.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/src/mesa/drivers/common/meta_tex_subimage.c b/src/mesa/drivers/common/meta_tex_subimage.c
> index 84cbc50..ccb7dfb 100644
> --- a/src/mesa/drivers/common/meta_tex_subimage.c
> +++ b/src/mesa/drivers/common/meta_tex_subimage.c
> @@ -25,6 +25,7 @@
>   *    Jason Ekstrand <jason.ekstrand at intel.com>
>   */
>  
> +#include "blend.h"
>  #include "bufferobj.h"
>  #include "buffers.h"
>  #include "fbobject.h"
> @@ -305,6 +306,10 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx, GLuint dims,
>     _mesa_meta_begin(ctx, ~(MESA_META_PIXEL_TRANSFER |
>                             MESA_META_PIXEL_STORE));
>  
> +   /* GL_CLAMP_FRAGMENT_COLOR doesn't affect ReadPixels. */
> +   if (!tex_image && ctx->Extensions.ARB_color_buffer_float)
> +      _mesa_ClampColor(GL_CLAMP_FRAGMENT_COLOR, GL_FALSE);
> +

I think you need to restore the original value of
GL_CLAMP_FRAGMENT_COLOR after you are done with ReadPixels,  otherwise
it looks like you would be changing the setting for future API calls
too.

Also, does this only apply to ReadPixels and not to GetTexImage? That
looks odd to me.

Iago

>     _mesa_GenFramebuffers(2, fbos);
>  
>     if (tex_image && tex_image->TexObject->Target == GL_TEXTURE_1D_ARRAY) {




More information about the mesa-dev mailing list