Mesa (master): r600g: attempt to turn on DXTn formats

Keith Whitwell keithw at kemper.freedesktop.org
Tue Nov 9 20:13:00 UTC 2010


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

Author: Keith Whitwell <keithw at vmware.com>
Date:   Wed Nov  3 14:23:45 2010 +0000

r600g: attempt to turn on DXTn formats

Seems to sort-of work for non-mipmapped textures.  Better than just
black anyway.

---

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

diff --git a/src/gallium/drivers/r600/eg_state_inlines.h b/src/gallium/drivers/r600/eg_state_inlines.h
index be81c28..5964197 100644
--- a/src/gallium/drivers/r600/eg_state_inlines.h
+++ b/src/gallium/drivers/r600/eg_state_inlines.h
@@ -473,7 +473,7 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
 	case PIPE_FORMAT_UYVY:
 	case PIPE_FORMAT_YUYV:
 	default:
-		R600_ERR("unsupported color format %d\n", format);
+		//R600_ERR("unsupported color format %d\n", format);
 		return ~0; /* Unsupported. */
 	}
 }
diff --git a/src/gallium/drivers/r600/r600_state_inlines.h b/src/gallium/drivers/r600/r600_state_inlines.h
index 1c1978f..1be5b15 100644
--- a/src/gallium/drivers/r600/r600_state_inlines.h
+++ b/src/gallium/drivers/r600/r600_state_inlines.h
@@ -472,7 +472,7 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
 	case PIPE_FORMAT_UYVY:
 	case PIPE_FORMAT_YUYV:
 	default:
-		R600_ERR("unsupported color format %d %s\n", format, util_format_name(format));
+		//R600_ERR("unsupported color format %d %s\n", format, util_format_name(format));
 		return ~0; /* Unsupported. */
 	}
 }
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index 06d17f7..02160fd 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -806,7 +806,7 @@ uint32_t r600_translate_texformat(enum pipe_format format,
 			result = FMT_24_8;
 			goto out_word4;
 		case PIPE_FORMAT_S8_USCALED:
-			result = V_0280A0_COLOR_8;
+			result = FMT_8;
 			word4 |= S_038010_NUM_FORMAT_ALL(V_038010_SQ_NUM_FORMAT_INT);
 			goto out_word4;
 		default:
@@ -835,7 +835,20 @@ uint32_t r600_translate_texformat(enum pipe_format format,
 
 	/* S3TC formats. TODO */
 	if (desc->layout == UTIL_FORMAT_LAYOUT_S3TC) {
-		goto out_unknown;
+		switch (format) {
+		case PIPE_FORMAT_DXT1_RGB:
+		case PIPE_FORMAT_DXT1_RGBA:
+                        result = FMT_BC1;
+                        goto out_word4;
+		case PIPE_FORMAT_DXT3_RGBA:
+                        result = FMT_BC2;
+                        goto out_word4;
+		case PIPE_FORMAT_DXT5_RGBA:
+                        result = FMT_BC3;
+                        goto out_word4;
+                default:
+                        goto out_unknown;
+                }
 	}
 
 




More information about the mesa-commit mailing list