mesa/gles: Allow format GL_RED to be used with MESA_FORMAT_R_UNORM
authorJordan Justen <jordan.l.justen@intel.com>
Mon, 25 Apr 2016 02:38:03 +0000 (19:38 -0700)
committerJordan Justen <jordan.l.justen@intel.com>
Mon, 25 Apr 2016 19:09:15 +0000 (12:09 -0700)
If the bound framebuffer has a format of MESA_FORMAT_R_UNORM, then
IMPLEMENTATION_COLOR_READ_FORMAT will return GL_RED. This change
applies to OpenGLES contexts where additional restrictions are placed
on the formats that are allowed to be supported.

Fixes OpenGLES 3.1 CTS tests:
 * ES31-CTS.texture_border_clamp.sampling_texture.Texture2DDC16
 * ES31-CTS.texture_border_clamp.sampling_texture.Texture2DDC16Linear
 * ES31-CTS.texture_border_clamp.sampling_texture.Texture2DDC32F
 * ES31-CTS.texture_border_clamp.sampling_texture.Texture2DDC32FLinear

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/main/framebuffer.c

index f69dc6cb3e62017b38bf74c0416722423039b3d1..38bd6806056f78caeced4c14daad0ae28afb6eba 100644 (file)
@@ -858,6 +858,8 @@ _mesa_get_color_read_format(struct gl_context *ctx)
          return GL_BGRA;
       else if (format == MESA_FORMAT_B5G6R5_UNORM)
          return GL_BGR;
+      else if (format == MESA_FORMAT_R_UNORM8)
+         return GL_RED;
 
       switch (data_type) {
       case GL_UNSIGNED_INT: