i965: Add support for and expose EXT_texture_sRGB_R8
authorGert Wollny <gert.wollny@collabora.com>
Thu, 15 Nov 2018 18:01:24 +0000 (19:01 +0100)
committerGert Wollny <gw.fossdev@gmail.com>
Mon, 19 Nov 2018 07:05:44 +0000 (08:05 +0100)
Emulate MESA_FORMAT_R_SRGB8 by using L8_UNORM_SRGB. This is possible
because component swizzling is handled based on the mesa format and,
hence, the a r001 swizzling can be used to correct the components.

Enables and makes pass (tested on Kabylake)

  dEQP-GLES31.functional.srgb_texture_decode.skip_decode.sr8.*
  dEQP-GLES31.functional.texture.filtering.cube_array.formats.sr8*

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Acked-by: Eric Engestrom <eric.engestrom@intel.com>
src/mesa/drivers/dri/i965/brw_surface_formats.c
src/mesa/drivers/dri/i965/intel_extensions.c

index 879cb42453393ec6143d185bcbfd2856ddd52b2e..77476a8c7eb07ec1981810a5c2ee15ff13fb2f6c 100644 (file)
@@ -67,6 +67,7 @@ brw_isl_format_for_mesa_format(mesa_format mesa_format)
       [MESA_FORMAT_B8G8R8A8_SRGB] = ISL_FORMAT_B8G8R8A8_UNORM_SRGB,
       [MESA_FORMAT_R8G8B8A8_SRGB] = ISL_FORMAT_R8G8B8A8_UNORM_SRGB,
       [MESA_FORMAT_B8G8R8X8_SRGB] = ISL_FORMAT_B8G8R8X8_UNORM_SRGB,
+      [MESA_FORMAT_R_SRGB8] = ISL_FORMAT_L8_UNORM_SRGB,
       [MESA_FORMAT_L_SRGB8] = ISL_FORMAT_L8_UNORM_SRGB,
       [MESA_FORMAT_L8A8_SRGB] = ISL_FORMAT_L8A8_UNORM_SRGB,
       [MESA_FORMAT_SRGB_DXT1] = ISL_FORMAT_BC1_UNORM_SRGB,
index d7e02efb54d7069b30c08b97b9749fd337090898..6ec6248a701dd9502bd0d3bb107d6dd641f807d0 100644 (file)
@@ -113,6 +113,7 @@ intelInitExtensions(struct gl_context *ctx)
    ctx->Extensions.EXT_texture_snorm = true;
    ctx->Extensions.EXT_texture_sRGB = true;
    ctx->Extensions.EXT_texture_sRGB_decode = true;
+   ctx->Extensions.EXT_texture_sRGB_R8 = true;
    ctx->Extensions.EXT_texture_swizzle = true;
    ctx->Extensions.EXT_texture_type_2_10_10_10_REV = true;
    ctx->Extensions.EXT_vertex_array_bgra = true;