mesa: Initialize image unit state to different defaults in GLES.
authorFrancisco Jerez <currojerez@riseup.net>
Sun, 16 Aug 2015 23:01:40 +0000 (02:01 +0300)
committerFrancisco Jerez <currojerez@riseup.net>
Thu, 20 Aug 2015 09:26:53 +0000 (12:26 +0300)
There is no GL_R8 image format in GLES, according to the state table
20.32 of the GLES 3.1 spec the default value should be GL_R32UI.  The
ES31-CTS.shader_image_load_store.basic-api-bind Khronos conformance
test checks that this is the case.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/main/shaderimage.c

index 48e3e09dd5d4cacb57542288a6414ed4e4db2ea0..5a3c47a62c837f3f4ac3de9e54a6804314857fb1 100644 (file)
@@ -397,10 +397,11 @@ is_image_format_supported(const struct gl_context *ctx, GLenum format)
 struct gl_image_unit
 _mesa_default_image_unit(struct gl_context *ctx)
 {
+   const GLenum format = _mesa_is_desktop_gl(ctx) ? GL_R8 : GL_R32UI;
    const struct gl_image_unit u = {
       .Access = GL_READ_ONLY,
-      .Format = GL_R8,
-      ._ActualFormat = _mesa_get_shader_image_format(GL_R8)
+      .Format = format,
+      ._ActualFormat = _mesa_get_shader_image_format(format)
    };
    return u;
 }