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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to