[Piglit] [PATCH v3] fix read_pixels_float() on GLES2 when format is not GL_RGBA

Pending Chaos pendingchaos02 at gmail.com
Wed Mar 28 17:20:20 UTC 2018


Yes I do; I don't have commit rights.

On Wed, Mar 28, 2018 at 6:12 PM, Brian Paul <brianp at vmware.com> wrote:
> On 03/28/2018 10:44 AM, Rhys Perry wrote:
>>
>> GLES2 requires GL_RGBA to be used with GL_UNSIGNED_BYTE in glReadPixels
>> ---
>>   tests/util/piglit-util-gl.c | 18 +++++++++++-------
>>   1 file changed, 11 insertions(+), 7 deletions(-)
>>
>> diff --git a/tests/util/piglit-util-gl.c b/tests/util/piglit-util-gl.c
>> index df39c1c87..3a41a5eb0 100644
>> --- a/tests/util/piglit-util-gl.c
>> +++ b/tests/util/piglit-util-gl.c
>> @@ -1018,21 +1018,25 @@ read_pixels_float(GLint x, GLint y, GLsizei width,
>> GLsizei height,
>>                   GLenum format, GLfloat *pixels)
>>   {
>>         GLubyte *pixels_b;
>> -       unsigned i, ncomponents;
>> +       unsigned i, j, k;
>> +       int comps = piglit_num_components(format);
>>   -     ncomponents = width * height * piglit_num_components(format);
>>         if (!pixels)
>> -               pixels = malloc(ncomponents * sizeof(GLfloat));
>> +               pixels = malloc(width * height * comps * sizeof(GLfloat));
>>         if (!piglit_is_gles()) {
>>                 glReadPixels(x, y, width, height, format, GL_FLOAT,
>> pixels);
>>                 return pixels;
>>         }
>>   -     pixels_b = malloc(ncomponents * sizeof(GLubyte));
>> -       glReadPixels(x, y, width, height, format, GL_UNSIGNED_BYTE,
>> pixels_b);
>> -       for (i = 0; i < ncomponents; i++)
>> -               pixels[i] = pixels_b[i] / 255.0;
>> +       pixels_b = malloc(width * height * 4 * sizeof(GLubyte));
>> +       glReadPixels(x, y, width, height, GL_RGBA, GL_UNSIGNED_BYTE,
>> pixels_b);
>> +       k = 0;
>> +       for (i = 0; i < width * height; i++) {
>> +               for (j = 0; j < comps; j++) {
>> +                       pixels[k++] = pixels_b[i*4+j] / 255.0f;
>> +               }
>> +       }
>>         free(pixels_b);
>>         return pixels;
>>   }
>>
>
> Looks good.  Thanks!
>
> Reviewed-by: Brian Paul <brianp at vmware.com>
>
> Do you need me to push this for you?


More information about the Piglit mailing list