From a00c5a71cd95d340f9ba54a0360f654414d627d2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 5 Oct 2011 13:42:19 -0700 Subject: [PATCH] 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 (v1) --- src/mesa/drivers/dri/intel/intel_context.c | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) 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; -- 2.30.2