Mesa (master): radeonsi: Handle more L/I/A format cases.

Michel Dänzer daenzer at kemper.freedesktop.org
Thu Sep 6 14:50:35 UTC 2012


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

Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Wed Sep  5 18:24:14 2012 +0200

radeonsi: Handle more L/I/A format cases.

Fixes piglit fbo-generatemipmap-formats.

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

---

 src/gallium/drivers/radeonsi/si_state.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 762887d..e3e4f0e 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -715,6 +715,9 @@ static uint32_t si_translate_colorformat(enum pipe_format format)
 	case PIPE_FORMAT_R16_SINT:
 	case PIPE_FORMAT_R16_FLOAT:
 	case PIPE_FORMAT_R16G16_FLOAT:
+	case PIPE_FORMAT_L16_UNORM:
+	case PIPE_FORMAT_I16_UNORM:
+	case PIPE_FORMAT_A16_UNORM:
 		return V_028C70_COLOR_16;
 
 	/* 32-bit buffers. */
@@ -759,6 +762,7 @@ static uint32_t si_translate_colorformat(enum pipe_format format)
 	case PIPE_FORMAT_Z32_FLOAT:
 		return V_028C70_COLOR_32;
 
+	case PIPE_FORMAT_L16A16_UNORM:
 	case PIPE_FORMAT_R16G16_SSCALED:
 	case PIPE_FORMAT_R16G16_UNORM:
 	case PIPE_FORMAT_R16G16_UINT:
@@ -863,12 +867,17 @@ static uint32_t si_translate_colorswap(enum pipe_format format)
 	case PIPE_FORMAT_R8G8_SINT:
 		return V_028C70_SWAP_STD;
 
+	case PIPE_FORMAT_I16_UNORM:
+	case PIPE_FORMAT_L16_UNORM:
 	case PIPE_FORMAT_R16_UNORM:
 	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:
+		return V_028C70_SWAP_ALT_REV;
+
 	/* 32-bit buffers. */
 	case PIPE_FORMAT_A8B8G8R8_SRGB:
 		return V_028C70_SWAP_STD_REV;
@@ -924,6 +933,9 @@ static uint32_t si_translate_colorswap(enum pipe_format format)
 	case PIPE_FORMAT_R16G16_SINT:
 		return V_028C70_SWAP_STD;
 
+	case PIPE_FORMAT_L16A16_UNORM:
+		return V_028C70_SWAP_ALT;
+
 	/* 64-bit buffers. */
 	case PIPE_FORMAT_R32G32_FLOAT:
 	case PIPE_FORMAT_R32G32_UINT:
@@ -1155,8 +1167,10 @@ static uint32_t si_translate_texformat(struct pipe_screen *screen,
 	switch (desc->channel[first_non_void].size) {
 	case 4:
 		switch (desc->nr_channels) {
+#if 0 /* Not supported for render targets */
 		case 2:
 			return V_008F14_IMG_DATA_FORMAT_4_4;
+#endif
 		case 4:
 			return V_008F14_IMG_DATA_FORMAT_4_4_4_4;
 		}




More information about the mesa-commit mailing list