summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2011-04-18 14:28:14 -0700
committerEric Anholt <[email protected]>2011-04-23 13:14:56 -0700
commit4093fdce6d7b8370bfe3ff5119dc0ef0acb32054 (patch)
tree040ff84b339a098813d3e4c4da6c25fddf65093b
parent7d1a2056a84b5af75adf84e34a57e5d75f550139 (diff)
i965: Add support for ARB_texture_compression_rgtc.
Tested with rgtc-teximage-0[12]. EXT_texture_compression_rgtc/fbo-generatemipmap-formats fails in NPOT just like S3TC does. Reviewed-by: Brian Paul <[email protected]>
-rw-r--r--docs/relnotes-7.11.html4
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_surface_state.c4
-rw-r--r--src/mesa/drivers/dri/intel/intel_context.c6
-rw-r--r--src/mesa/drivers/dri/intel/intel_extensions.c1
4 files changed, 13 insertions, 2 deletions
diff --git a/docs/relnotes-7.11.html b/docs/relnotes-7.11.html
index 2bd126c6bce..d223a0a0de9 100644
--- a/docs/relnotes-7.11.html
+++ b/docs/relnotes-7.11.html
@@ -42,10 +42,10 @@ tbd
<li>GL_ARB_instanced_arrays extension (gallium drivers)
<li>GL_ARB_occlusion_query2 (gallium drivers, swrast)
<li>GL_ARB_sampler_objects (gallium drivers)
-<li>GL_ARB_texture_compression_rgtc (gallium drivers, swrast)
+<li>GL_ARB_texture_compression_rgtc (gallium drivers, swrast, i965)
<li>GL_ARB_texture_float (gallium, i965)
<li>GL_EXT_texture_compression_latc (gallium drivers, swrast)
-<li>GL_EXT_texture_compression_rgtc (gallium drivers, swrast)
+<li>GL_EXT_texture_compression_rgtc (gallium drivers, swrast, i965)
<li>GL_EXT_texture_sRGB_decode (gallium drivers, swrast, i965)
<li>GL_EXT_texture_snorm (gallium drivers)
<li>GL_ATI_draw_buffers (all drivers)
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index e3396a3cbd4..a03c6523df6 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -112,6 +112,10 @@ static uint32_t brw_format_for_mesa_format[MESA_FORMAT_COUNT] =
[MESA_FORMAT_LUMINANCE_FLOAT32] = BRW_SURFACEFORMAT_L32_FLOAT,
[MESA_FORMAT_ALPHA_FLOAT32] = BRW_SURFACEFORMAT_A32_FLOAT,
[MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32] = BRW_SURFACEFORMAT_L32A32_FLOAT,
+ [MESA_FORMAT_RED_RGTC1] = BRW_SURFACEFORMAT_BC4_UNORM,
+ [MESA_FORMAT_SIGNED_RED_RGTC1] = BRW_SURFACEFORMAT_BC4_SNORM,
+ [MESA_FORMAT_RG_RGTC2] = BRW_SURFACEFORMAT_BC5_UNORM,
+ [MESA_FORMAT_SIGNED_RG_RGTC2] = BRW_SURFACEFORMAT_BC5_SNORM,
};
bool
diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
index 02e7f7717fc..ec08dd5c8da 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -718,6 +718,12 @@ intelInitContext(struct intel_context *intel,
ctx->TextureFormatSupported[MESA_FORMAT_RGBA_DXT5] = GL_TRUE;
#ifndef I915
+ /* GL_ARB_texture_compression_rgtc */
+ ctx->TextureFormatSupported[MESA_FORMAT_RED_RGTC1] = GL_TRUE;
+ ctx->TextureFormatSupported[MESA_FORMAT_SIGNED_RED_RGTC1] = GL_TRUE;
+ ctx->TextureFormatSupported[MESA_FORMAT_RG_RGTC2] = GL_TRUE;
+ ctx->TextureFormatSupported[MESA_FORMAT_SIGNED_RG_RGTC2] = GL_TRUE;
+
/* GL_ARB_texture_rg */
ctx->TextureFormatSupported[MESA_FORMAT_R8] = GL_TRUE;
ctx->TextureFormatSupported[MESA_FORMAT_R16] = GL_TRUE;
diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
index e107534a4da..6a818577a55 100644
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -176,6 +176,7 @@ static const struct dri_extension brw_extensions[] = {
{ "GL_ARB_texture_float", NULL },
#endif
{ "GL_MESA_texture_signed_rgba", NULL },
+ { "GL_ARB_texture_compression_rgtc", NULL },
{ "GL_ARB_texture_non_power_of_two", NULL },
{ "GL_ARB_texture_rg", NULL },
{ "GL_EXT_draw_buffers2", GL_EXT_draw_buffers2_functions },