Mesa (pipe-video): r600g: support textures with scaled number formats

Christian König deathsimple at kemper.freedesktop.org
Tue Apr 12 10:43:20 PDT 2011


Module: Mesa
Branch: pipe-video
Commit: 36b322dffd2429130f132f55f68acb1a23ba1658
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=36b322dffd2429130f132f55f68acb1a23ba1658

Author: Christian König <deathsimple at vodafone.de>
Date:   Mon Apr 11 00:49:28 2011 +0200

r600g: support textures with scaled number formats

---

 src/gallium/drivers/r600/eg_state_inlines.h   |    1 +
 src/gallium/drivers/r600/r600_state_inlines.h |    1 +
 src/gallium/drivers/r600/r600_texture.c       |    2 +-
 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 cae3888..487addd 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 9e6ae29..2a40f41 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 d079b57..690aeaf 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) {



More information about the mesa-commit mailing list