[Piglit] [PATCH] Fix piglit_probe_pixel_rgb on GLES2

Pending Chaos pendingchaos02 at gmail.com
Tue Mar 27 10:15:27 UTC 2018


The pixels_b buffer is indeed to small.

I don't think the GL_UNSIGNED_BYTE glReadPixels is called on non-ES.
There is an early exit above (on line 1029) for non-ES situations.

On Mon, Mar 26, 2018 at 3:42 PM, Brian Paul <brianp at vmware.com> wrote:
> On 03/25/2018 01:49 PM, Rhys Perry wrote:
>>
>> GLES2 requires GL_RGBA to be used with GL_UNSIGNED_BYTE in glReadPixels
>> ---
>>   tests/util/piglit-util-gl.c | 6 ++----
>>   1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/tests/util/piglit-util-gl.c b/tests/util/piglit-util-gl.c
>> index df39c1c87..be060aae5 100644
>> --- a/tests/util/piglit-util-gl.c
>> +++ b/tests/util/piglit-util-gl.c
>> @@ -1017,7 +1017,7 @@ static GLfloat *
>>   read_pixels_float(GLint x, GLint y, GLsizei width, GLsizei height,
>>                   GLenum format, GLfloat *pixels)
>>   {
>> -       GLubyte *pixels_b;
>> +       uint8_t pixels_b[4];
>>         unsigned i, ncomponents;
>>         ncomponents = width * height * piglit_num_components(format);
>> @@ -1029,11 +1029,9 @@ read_pixels_float(GLint x, GLint y, GLsizei width,
>> GLsizei height,
>>                 return pixels;
>>         }
>>   -     pixels_b = malloc(ncomponents * sizeof(GLubyte));
>> -       glReadPixels(x, y, width, height, format, GL_UNSIGNED_BYTE,
>> pixels_b);
>> +       glReadPixels(x, y, width, height, GL_RGBA, GL_UNSIGNED_BYTE,
>> pixels_b);
>>         for (i = 0; i < ncomponents; i++)
>>                 pixels[i] = pixels_b[i] / 255.0;
>> -       free(pixels_b);
>>         return pixels;
>>   }
>>
>
>
> This doesn't look right.  The pixels_b buffer must be large enough to hold
> 'ncomponents' values, not 4.
>
> Also, I'd prefer to keep read GL_RGB on non-ES.  Reading GL_RGB vs. GL_RGBA
> probably hits different code paths in the driver, which is a good thing.
>
> -Brian
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list