mesa: Add GL_UNSIGNED_INT_2_10_10_10_REV OES read type for BGRX1010102.
authorMario Kleiner <mario.kleiner.de@gmail.com>
Fri, 15 Dec 2017 22:05:09 +0000 (23:05 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 3 Jan 2018 21:57:57 +0000 (22:57 +0100)
As Marek noted, the GL_RGBA + GL_UNSIGNED_INT_2_10_10_10_REV type
combo is also good for readback of BGRX1010102 framebuffers, not
only for BGRA1010102 framebuffers for use with glReadPixels()
under GLES, so add it for the GL_IMPLEMENTATION_COLOR_READ_TYPE_OES
query.

Successfully tested on gallium r600 driver with a (quickly hacked
for RGBA 10 10 10 0) dEQP testcase
dEQP-EGL.functional.wide_color.window_1010102_colorspace_default.

Suggested-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/main/framebuffer.c

index a0de6694d1050db1ab7de37b78a5d584ae78f2d4..e103f313e45910b9ffeb4bde747f43855c85e36f 100644 (file)
@@ -889,7 +889,8 @@ _mesa_get_color_read_type(struct gl_context *ctx,
       if (format == MESA_FORMAT_B5G6R5_UNORM)
          return GL_UNSIGNED_SHORT_5_6_5;
 
-      if (format == MESA_FORMAT_B10G10R10A2_UNORM)
+      if (format == MESA_FORMAT_B10G10R10A2_UNORM ||
+          format == MESA_FORMAT_B10G10R10X2_UNORM)
          return GL_UNSIGNED_INT_2_10_10_10_REV;
 
       switch (data_type) {