From GLES 3.0.2: Only two combinations of format and type are accepted in most cases. The first varies depending on the format of the currently bound rendering surface. For normalized fixed-point rendering surfaces, the combination format RGBA and type UNSIGNED_BYTE is accepted. For signed integer rendering surfaces, the combina- tion format RGBA_INTEGER and type INT is accepted. For unsigned integer rendering surfaces, the combination format RGBA_INTEGER and type UNSIGNED_INT is accepted.
[...] ReadPixels generates an INVALID_OPERATION error if the combination of format and type is unsupported. and the spec cited in the change added: For floating-point rendering surfaces, the combination format RGBA and type FLOAT is accepted. Since we don't expose HALF_FLOAT in COLOR_READ_FORMAT, we can't allow HALF_FLOAT readpixels or the CTS KHR-GLES3.packed_pixels.pbo_rectangle.r11f_g11f_b10f and many others would fail. --- src/mesa/main/readpix.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c index 4407f13289e2..6ce340ddf9bb 100644 --- a/src/mesa/main/readpix.c +++ b/src/mesa/main/readpix.c @@ -920,8 +920,6 @@ read_pixels_es3_error_check(GLenum format, GLenum type, case GL_RGBA: if (type == GL_FLOAT && data_type == GL_FLOAT) return GL_NO_ERROR; /* EXT_color_buffer_float */ - if (type == GL_HALF_FLOAT && data_type == GL_FLOAT) - return GL_NO_ERROR; if (type == GL_UNSIGNED_BYTE && data_type == GL_UNSIGNED_NORMALIZED) return GL_NO_ERROR; if (internalFormat == GL_RGB10_A2 && -- 2.16.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev