summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian König <[email protected]>2011-04-11 00:49:28 +0200
committerChristian König <[email protected]>2011-04-11 00:49:28 +0200
commit36b322dffd2429130f132f55f68acb1a23ba1658 (patch)
tree6cf7be4f5cfad940369efc0514dad2e2de811ac5
parentbad3085c7839de734f6b883088f91ae55db61a35 (diff)
r600g: support textures with scaled number formats
-rw-r--r--src/gallium/drivers/r600/eg_state_inlines.h1
-rw-r--r--src/gallium/drivers/r600/r600_state_inlines.h1
-rw-r--r--src/gallium/drivers/r600/r600_texture.c2
3 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/eg_state_inlines.h b/src/gallium/drivers/r600/eg_state_inlines.h
index cae3888051b..487adddcb72 100644
--- a/src/gallium/drivers/r600/eg_state_inlines.h
+++ b/src/gallium/drivers/r600/eg_state_inlines.h
@@ -373,6 +373,7 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
/* 64-bit buffers. */
case PIPE_FORMAT_R16G16B16A16_UNORM:
case PIPE_FORMAT_R16G16B16A16_SNORM:
+ case PIPE_FORMAT_R16G16B16A16_SSCALED:
case PIPE_FORMAT_R16G16B16A16_FLOAT:
/* 128-bit buffers. */
diff --git a/src/gallium/drivers/r600/r600_state_inlines.h b/src/gallium/drivers/r600/r600_state_inlines.h
index 9e6ae295239..2a40f41bbf5 100644
--- a/src/gallium/drivers/r600/r600_state_inlines.h
+++ b/src/gallium/drivers/r600/r600_state_inlines.h
@@ -368,6 +368,7 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
/* 64-bit buffers. */
case PIPE_FORMAT_R16G16B16A16_UNORM:
case PIPE_FORMAT_R16G16B16A16_SNORM:
+ case PIPE_FORMAT_R16G16B16A16_SSCALED:
case PIPE_FORMAT_R16G16B16A16_FLOAT:
/* 128-bit buffers. */
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index d079b571156..690aeafcc52 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -996,7 +996,7 @@ uint32_t r600_translate_texformat(struct pipe_screen *screen,
case UTIL_FORMAT_TYPE_SIGNED:
if (!desc->channel[i].normalized &&
desc->colorspace != UTIL_FORMAT_COLORSPACE_SRGB) {
- goto out_unknown;
+ word4 |= S_038010_NUM_FORMAT_ALL(V_038010_SQ_NUM_FORMAT_SCALED);
}
switch (desc->channel[i].size) {