From a72dbc461bdb7714656e62cd8f4b00a404c2e6e0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tapani=20P=C3=A4lli?= Date: Mon, 27 Aug 2018 14:40:41 +0300 Subject: [PATCH] mesa: allow GL_UNSIGNED_BYTE type for SNORM reads MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit OpenGL ES spec states: "For normalized fixed-point rendering surfaces, the combination format RGBA and type UNSIGNED_BYTE is accepted." This fixes following failing VK-GL-CTS tests: KHR-GLES3.packed_pixels.pbo_rectangle.rgba8_snorm KHR-GLES3.packed_pixels.rectangle.rgba8_snorm KHR-GLES3.packed_pixels.varied_rectangle.rgba8_snorm Signed-off-by: Tapani Pälli https://bugs.freedesktop.org/show_bug.cgi?id=107658 Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Marek Olšák Tested-by: Andres Gomez --- src/mesa/main/readpix.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c index 2cbb578a37f..556c860d393 100644 --- a/src/mesa/main/readpix.c +++ b/src/mesa/main/readpix.c @@ -958,6 +958,15 @@ read_pixels_es3_error_check(struct gl_context *ctx, GLenum format, GLenum type, return GL_NO_ERROR; } } + if (type == GL_UNSIGNED_BYTE) { + switch (internalFormat) { + case GL_R8_SNORM: + case GL_RG8_SNORM: + case GL_RGBA8_SNORM: + if (_mesa_has_EXT_render_snorm(ctx)) + return GL_NO_ERROR; + } + } break; case GL_BGRA: /* GL_EXT_read_format_bgra */ -- 2.30.2