Mesa (master): r600g: add color/texture support for more depth formats.

Dave Airlie airlied at kemper.freedesktop.org
Mon Sep 20 02:23:20 UTC 2010


Module: Mesa
Branch: master
Commit: 3a1defa5e88cc846d8f5ba73ef475af95e7bc4ae
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3a1defa5e88cc846d8f5ba73ef475af95e7bc4ae

Author: Dave Airlie <airlied at redhat.com>
Date:   Mon Sep 20 12:21:35 2010 +1000

r600g: add color/texture support for more depth formats.

---

 src/gallium/drivers/r600/eg_state_inlines.h   |    8 ++++++++
 src/gallium/drivers/r600/r600_state_inlines.h |    8 ++++++++
 src/gallium/drivers/r600/r600_texture.c       |    6 ++++--
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/r600/eg_state_inlines.h b/src/gallium/drivers/r600/eg_state_inlines.h
index bee2a8a..0a42abc 100644
--- a/src/gallium/drivers/r600/eg_state_inlines.h
+++ b/src/gallium/drivers/r600/eg_state_inlines.h
@@ -313,6 +313,10 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
 	case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
 		return V_028C70_SWAP_STD;
 
+	case PIPE_FORMAT_X8Z24_UNORM:
+	case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
+		return V_028C70_SWAP_STD;
+
 	case PIPE_FORMAT_R10G10B10A2_UNORM:
 	case PIPE_FORMAT_R10G10B10X2_SNORM:
 	case PIPE_FORMAT_B10G10R10A2_UNORM:
@@ -389,6 +393,10 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
 	case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
 		return V_028C70_COLOR_8_24;
 
+	case PIPE_FORMAT_X8Z24_UNORM:
+	case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
+		return V_028C70_COLOR_24_8;
+
 	case PIPE_FORMAT_R32_FLOAT:
 		return V_028C70_COLOR_32_FLOAT;
 
diff --git a/src/gallium/drivers/r600/r600_state_inlines.h b/src/gallium/drivers/r600/r600_state_inlines.h
index 9ffdd75..283f1e5 100644
--- a/src/gallium/drivers/r600/r600_state_inlines.h
+++ b/src/gallium/drivers/r600/r600_state_inlines.h
@@ -314,6 +314,10 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
 	case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
 		return V_0280A0_SWAP_STD;
 
+	case PIPE_FORMAT_X8Z24_UNORM:
+	case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
+		return V_0280A0_SWAP_STD;
+
 	case PIPE_FORMAT_R10G10B10A2_UNORM:
 	case PIPE_FORMAT_R10G10B10X2_SNORM:
 	case PIPE_FORMAT_B10G10R10A2_UNORM:
@@ -390,6 +394,10 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
 	case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
 		return V_0280A0_COLOR_8_24;
 
+	case PIPE_FORMAT_X8Z24_UNORM:
+	case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
+		return V_0280A0_COLOR_24_8;
+
 	case PIPE_FORMAT_R32_FLOAT:
 		return V_0280A0_COLOR_32_FLOAT;
 
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index d41150c..369e5d2 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -467,11 +467,13 @@ uint32_t r600_translate_texformat(enum pipe_format format,
 			result = V_0280A0_COLOR_16;
 			goto out_word4;
 		case PIPE_FORMAT_Z24X8_UNORM:
-			result = V_0280A0_COLOR_8_24;
-			goto out_word4;
 		case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
 			result = V_0280A0_COLOR_8_24;
 			goto out_word4;
+		case PIPE_FORMAT_X8Z24_UNORM:
+		case PIPE_FORMAT_S8_USCALED_Z24_UNORM:
+			result = V_0280A0_COLOR_24_8;
+			goto out_word4;
 		default:
 			goto out_unknown;
 		}




More information about the mesa-commit mailing list