summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2011-10-05 13:42:19 -0700
committerEric Anholt <[email protected]>2011-11-09 12:59:19 -0800
commita00c5a71cd95d340f9ba54a0360f654414d627d2 (patch)
tree9bc806da6899badc32e6209eec3a7a4ef6bb86d6 /src/mesa/drivers
parent35be4ae77eb813bf6184699c038e82ad32bd267d (diff)
i965: Enable ChooseTexFormat for supported GL_EXT_texture_integer formats.
v2: s/GL_TRUE/true/, and re-enable RGB_INT32 based on discussion yesterday about required RB formats vs texture formats. Reviewed-by: Kenneth Graunke <[email protected]> (v1)
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r--src/mesa/drivers/dri/intel/intel_context.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c
index 3e10ce05fd4..d00d5d476a1 100644
--- a/src/mesa/drivers/dri/intel/intel_context.c
+++ b/src/mesa/drivers/dri/intel/intel_context.c
@@ -710,6 +710,36 @@ intelInitContext(struct intel_context *intel,
ctx->TextureFormatSupported[MESA_FORMAT_SLA8] = true;
}
+ if (intel->gen >= 4) {
+ /* Each combination of 32-bit ints are supported, but the RGB 32-bit ints
+ * don't support use as a render target (GPU hangs).
+ */
+ ctx->TextureFormatSupported[MESA_FORMAT_R_INT32] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RG_INT32] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RGB_INT32] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RGBA_INT32] = true;
+
+ ctx->TextureFormatSupported[MESA_FORMAT_R_UINT32] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RG_UINT32] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RGB_UINT32] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RGBA_UINT32] = true;
+
+ /* For 16 and 8 bits, RGB is unsupported entirely. */
+ ctx->TextureFormatSupported[MESA_FORMAT_R_UINT16] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RG_UINT16] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RGBA_UINT16] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_R_INT16] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RG_INT16] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RGBA_INT16] = true;
+
+ ctx->TextureFormatSupported[MESA_FORMAT_R_UINT8] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RG_UINT8] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RGBA_UINT8] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_R_INT8] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RG_INT8] = true;
+ ctx->TextureFormatSupported[MESA_FORMAT_RGBA_INT8] = true;
+ }
+
#ifdef TEXTURE_FLOAT_ENABLED
ctx->TextureFormatSupported[MESA_FORMAT_RGBA_FLOAT32] = true;
ctx->TextureFormatSupported[MESA_FORMAT_RG_FLOAT32] = true;