Module: Mesa Branch: master Commit: 15c009af2853b4da4f390d1f19b2fe3a0b3b8442 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=15c009af2853b4da4f390d1f19b2fe3a0b3b8442
Author: Michel Dänzer <[email protected]> Date: Fri Sep 7 16:35:48 2012 +0200 radeonsi: Handle more SNORM formats. Fixes piglit spec/EXT_texture_snorm/fbo-generatemipmap-formats (except for what seems like a random fluke). Signed-off-by: Michel Dänzer <[email protected]> --- src/gallium/drivers/radeonsi/si_state.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index e3e4f0e..a7abfe9 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -673,12 +673,15 @@ static uint32_t si_translate_colorformat(enum pipe_format format) switch (format) { /* 8-bit buffers. */ case PIPE_FORMAT_A8_UNORM: + case PIPE_FORMAT_A8_SNORM: case PIPE_FORMAT_A8_UINT: case PIPE_FORMAT_A8_SINT: case PIPE_FORMAT_I8_UNORM: + case PIPE_FORMAT_I8_SNORM: case PIPE_FORMAT_I8_UINT: case PIPE_FORMAT_I8_SINT: case PIPE_FORMAT_L8_UNORM: + case PIPE_FORMAT_L8_SNORM: case PIPE_FORMAT_L8_UINT: case PIPE_FORMAT_L8_SINT: case PIPE_FORMAT_L8_SRGB: @@ -701,9 +704,11 @@ static uint32_t si_translate_colorformat(enum pipe_format format) return V_028C70_COLOR_4_4_4_4; case PIPE_FORMAT_L8A8_UNORM: + case PIPE_FORMAT_L8A8_SNORM: case PIPE_FORMAT_L8A8_UINT: case PIPE_FORMAT_L8A8_SINT: case PIPE_FORMAT_L8A8_SRGB: + case PIPE_FORMAT_R8G8_SNORM: case PIPE_FORMAT_R8G8_UNORM: case PIPE_FORMAT_R8G8_UINT: case PIPE_FORMAT_R8G8_SINT: @@ -711,13 +716,17 @@ static uint32_t si_translate_colorformat(enum pipe_format format) case PIPE_FORMAT_Z16_UNORM: case PIPE_FORMAT_R16_UNORM: + case PIPE_FORMAT_R16_SNORM: case PIPE_FORMAT_R16_UINT: case PIPE_FORMAT_R16_SINT: case PIPE_FORMAT_R16_FLOAT: case PIPE_FORMAT_R16G16_FLOAT: case PIPE_FORMAT_L16_UNORM: + case PIPE_FORMAT_L16_SNORM: case PIPE_FORMAT_I16_UNORM: + case PIPE_FORMAT_I16_SNORM: case PIPE_FORMAT_A16_UNORM: + case PIPE_FORMAT_A16_SNORM: return V_028C70_COLOR_16; /* 32-bit buffers. */ @@ -763,8 +772,10 @@ static uint32_t si_translate_colorformat(enum pipe_format format) return V_028C70_COLOR_32; case PIPE_FORMAT_L16A16_UNORM: + case PIPE_FORMAT_L16A16_SNORM: case PIPE_FORMAT_R16G16_SSCALED: case PIPE_FORMAT_R16G16_UNORM: + case PIPE_FORMAT_R16G16_SNORM: case PIPE_FORMAT_R16G16_UINT: case PIPE_FORMAT_R16G16_SINT: return V_028C70_COLOR_16_16; @@ -825,12 +836,15 @@ static uint32_t si_translate_colorswap(enum pipe_format format) return V_028C70_SWAP_ALT; case PIPE_FORMAT_A8_UNORM: + case PIPE_FORMAT_A8_SNORM: case PIPE_FORMAT_A8_UINT: case PIPE_FORMAT_A8_SINT: case PIPE_FORMAT_R4A4_UNORM: return V_028C70_SWAP_ALT_REV; case PIPE_FORMAT_I8_UNORM: + case PIPE_FORMAT_I8_SNORM: case PIPE_FORMAT_L8_UNORM: + case PIPE_FORMAT_L8_SNORM: case PIPE_FORMAT_I8_UINT: case PIPE_FORMAT_I8_SINT: case PIPE_FORMAT_L8_UINT: @@ -858,24 +872,30 @@ static uint32_t si_translate_colorswap(enum pipe_format format) return V_028C70_SWAP_STD; case PIPE_FORMAT_L8A8_UNORM: + case PIPE_FORMAT_L8A8_SNORM: case PIPE_FORMAT_L8A8_UINT: case PIPE_FORMAT_L8A8_SINT: case PIPE_FORMAT_L8A8_SRGB: return V_028C70_SWAP_ALT; + case PIPE_FORMAT_R8G8_SNORM: case PIPE_FORMAT_R8G8_UNORM: case PIPE_FORMAT_R8G8_UINT: case PIPE_FORMAT_R8G8_SINT: return V_028C70_SWAP_STD; case PIPE_FORMAT_I16_UNORM: + case PIPE_FORMAT_I16_SNORM: case PIPE_FORMAT_L16_UNORM: + case PIPE_FORMAT_L16_SNORM: case PIPE_FORMAT_R16_UNORM: + case PIPE_FORMAT_R16_SNORM: case PIPE_FORMAT_R16_UINT: case PIPE_FORMAT_R16_SINT: case PIPE_FORMAT_R16_FLOAT: return V_028C70_SWAP_STD; case PIPE_FORMAT_A16_UNORM: + case PIPE_FORMAT_A16_SNORM: return V_028C70_SWAP_ALT_REV; /* 32-bit buffers. */ @@ -929,11 +949,13 @@ static uint32_t si_translate_colorswap(enum pipe_format format) case PIPE_FORMAT_Z32_FLOAT: case PIPE_FORMAT_R16G16_FLOAT: case PIPE_FORMAT_R16G16_UNORM: + case PIPE_FORMAT_R16G16_SNORM: case PIPE_FORMAT_R16G16_UINT: case PIPE_FORMAT_R16G16_SINT: return V_028C70_SWAP_STD; case PIPE_FORMAT_L16A16_UNORM: + case PIPE_FORMAT_L16A16_SNORM: return V_028C70_SWAP_ALT; /* 64-bit buffers. */ _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
