From e56aecf2492e3ca63ea70332a346f3f8414cba6c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 8 Nov 2011 11:05:17 -0800 Subject: [PATCH] i965: Add support for 16-bit unorm L, A, and I textures. While not required by any particular spec version, mplayer was asking for L16 and hoping for actual L16 without checking. The 8 bits allocated led to 10-bit planar video data stored in the lower 10 bits giving only 2 bits of precision in video. While it was an amusing effect, give them what they actually wanted instead. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41461 Reviewed-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 3 +++ src/mesa/drivers/dri/intel/intel_context.c | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) 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 04dc3899a91..66a8a5a53bb 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -80,6 +80,9 @@ brw_format_for_mesa_format(gl_format mesa_format) [MESA_FORMAT_I8] = BRW_SURFACEFORMAT_I8_UNORM, [MESA_FORMAT_A8] = BRW_SURFACEFORMAT_A8_UNORM, [MESA_FORMAT_AL88] = BRW_SURFACEFORMAT_L8A8_UNORM, + [MESA_FORMAT_L16] = BRW_SURFACEFORMAT_L16_UNORM, + [MESA_FORMAT_A16] = BRW_SURFACEFORMAT_A16_UNORM, + [MESA_FORMAT_I16] = BRW_SURFACEFORMAT_I16_UNORM, [MESA_FORMAT_AL1616] = BRW_SURFACEFORMAT_L16A16_UNORM, [MESA_FORMAT_R8] = BRW_SURFACEFORMAT_R8_UNORM, [MESA_FORMAT_R16] = BRW_SURFACEFORMAT_R16_UNORM, diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c index 8e8ab730a16..3e10ce05fd4 100644 --- a/src/mesa/drivers/dri/intel/intel_context.c +++ b/src/mesa/drivers/dri/intel/intel_context.c @@ -640,8 +640,12 @@ intelInitContext(struct intel_context *intel, ctx->TextureFormatSupported[MESA_FORMAT_A8] = true; ctx->TextureFormatSupported[MESA_FORMAT_I8] = true; ctx->TextureFormatSupported[MESA_FORMAT_AL88] = true; - if (intel->gen >= 4) + if (intel->gen >= 4) { + ctx->TextureFormatSupported[MESA_FORMAT_L16] = true; + ctx->TextureFormatSupported[MESA_FORMAT_A16] = true; + ctx->TextureFormatSupported[MESA_FORMAT_I16] = true; ctx->TextureFormatSupported[MESA_FORMAT_AL1616] = true; + } /* Depth and stencil */ ctx->TextureFormatSupported[MESA_FORMAT_S8_Z24] = true; -- 2.30.2