[Mesa-dev] [PATCH 05/14] meta: Abort meta pbo path if readpixels need signed-unsigned conversion

Anuj Phogat anuj.phogat at gmail.com
Fri Jun 19 13:40:13 PDT 2015


On Tue, Jun 16, 2015 at 9:21 PM, Jason Ekstrand <jason at jlekstrand.net> wrote:
>
> On Jun 16, 2015 11:15, "Anuj Phogat" <anuj.phogat at gmail.com> wrote:
>>
>> Without this patch, piglit test fbo_integer_readpixels_sint_uint 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 | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/src/mesa/drivers/common/meta_tex_subimage.c
>> b/src/mesa/drivers/common/meta_tex_subimage.c
>> index 00364f8..84cbc50 100644
>> --- a/src/mesa/drivers/common/meta_tex_subimage.c
>> +++ b/src/mesa/drivers/common/meta_tex_subimage.c
>> @@ -283,6 +283,9 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx,
>> GLuint dims,
>>
>>        if (_mesa_need_rgb_to_luminance_conversion(rb->Format, format))
>>           return false;
>> +
>> +      if (_mesa_need_signed_unsigned_int_conversion(rb->Format, format,
>> type))
>> +         return false;
>
> Hrm... This seems fishy.  Isn't glBlitFramebuffers supposed to handle format
> conversion with integers?  If so we should probably fix it rather than just
> skip it for the meta pbo path.
>
As discussed offline, here is relevant text for glBlitFrameBuffer() from
OpenGL 4.5 spec, section 18.3.1:
"An INVALID_OPERATION error is generated if format conversions are not
supported, which occurs under any of the following conditions:
-The read buffer contains fixed-point or floating-point values and any draw
  buffer contains neither fixed-point nor floating-point values.
-The read buffer contains unsigned integer values and any draw buffer does
  not contain unsigned integer values.
- The read buffer contains signed integer values and any draw buffer does
  not contain signed integer values."

I'll add a comment here explaining the reason to avoid meta path.
>>     }
>>
>>     /* For arrays, use a tall (height * depth) 2D texture but taking into
>> --
>> 1.9.3
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list