summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r600/eg_state_inlines.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2011-02-10 14:07:06 +1000
committerDave Airlie <airlied@redhat.com>2011-02-11 13:47:34 +1000
commit0d851f6e9c6046052ddce3860e625537832530a0 (patch)
treec62ce376881b46152b585423885e2275317442f0 /src/gallium/drivers/r600/eg_state_inlines.h
parent9a1fe76a20c6eca67a8b933aa9e84f7ef0ad9ca2 (diff)
r600g: handle 16/32 u/s norm formats properly
add support for the 32-bit types, also fixup the export setting to handle types with channels > 11 bits properly Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/gallium/drivers/r600/eg_state_inlines.h')
-rw-r--r--src/gallium/drivers/r600/eg_state_inlines.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/eg_state_inlines.h b/src/gallium/drivers/r600/eg_state_inlines.h
index ca00e61f52..46369cc1e2 100644
--- a/src/gallium/drivers/r600/eg_state_inlines.h
+++ b/src/gallium/drivers/r600/eg_state_inlines.h
@@ -362,14 +362,13 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
/* 64-bit buffers. */
case PIPE_FORMAT_R16G16B16A16_UNORM:
case PIPE_FORMAT_R16G16B16A16_SNORM:
- // return V_028C70_COLOR_16_16_16_16;
case PIPE_FORMAT_R16G16B16A16_FLOAT:
- // return V_028C70_COLOR_16_16_16_16_FLOAT;
/* 128-bit buffers. */
case PIPE_FORMAT_R32G32B32A32_FLOAT:
- // return V_028C70_COLOR_32_32_32_32_FLOAT;
- return 0;
+ case PIPE_FORMAT_R32G32B32A32_SNORM:
+ case PIPE_FORMAT_R32G32B32A32_UNORM:
+ return V_028C70_SWAP_STD;
default:
R600_ERR("unsupported colorswap format %d\n", format);
return ~0;
@@ -471,6 +470,9 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
return V_028C70_COLOR_32_32;
/* 128-bit buffers. */
+ case PIPE_FORMAT_R32G32B32A32_SNORM:
+ case PIPE_FORMAT_R32G32B32A32_UNORM:
+ return V_028C70_COLOR_32_32_32_32;
case PIPE_FORMAT_R32G32B32_FLOAT:
return V_028C70_COLOR_32_32_32_FLOAT;
case PIPE_FORMAT_R32G32B32A32_FLOAT: