Mesa (master): r600g: do not require MSAA renderbuffer support if not asked for

Marek Olšák mareko at kemper.freedesktop.org
Fri Sep 14 03:55:55 UTC 2012


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

Author: Marek Olšák <maraeo at gmail.com>
Date:   Sat Sep  8 15:50:30 2012 +0200

r600g: do not require MSAA renderbuffer support if not asked for

to allow stencil-only sampler-only formats (like X24S8)

NOTE: This is a candidate for the stable branches.

---

 src/gallium/drivers/r600/evergreen_state.c |    7 -------
 src/gallium/drivers/r600/r600_state.c      |   13 ++++---------
 2 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 8235c71..816e7df 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -643,13 +643,6 @@ boolean evergreen_is_format_supported(struct pipe_screen *screen,
 		default:
 			return FALSE;
 		}
-
-		/* require render-target support for multisample resources */
-		if (util_format_is_depth_or_stencil(format)) {
-			usage |= PIPE_BIND_DEPTH_STENCIL;
-		} else {
-			usage |= PIPE_BIND_RENDER_TARGET;
-		}
 	}
 
 	if ((usage & PIPE_BIND_SAMPLER_VIEW) &&
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index e299a8b..e092cf4 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -592,6 +592,10 @@ boolean r600_is_format_supported(struct pipe_screen *screen,
 		    format == PIPE_FORMAT_R11G11B10_FLOAT)
 			return FALSE;
 
+		/* MSAA integer colorbuffers hang. */
+		if (util_format_is_pure_integer(format))
+			return FALSE;
+
 		switch (sample_count) {
 		case 2:
 		case 4:
@@ -600,15 +604,6 @@ boolean r600_is_format_supported(struct pipe_screen *screen,
 		default:
 			return FALSE;
 		}
-
-		/* require render-target support for multisample resources */
-		if (util_format_is_depth_or_stencil(format)) {
-			usage |= PIPE_BIND_DEPTH_STENCIL;
-		} else if (util_format_is_pure_integer(format)) {
-			return FALSE; /* no integer textures */
-		} else {
-			usage |= PIPE_BIND_RENDER_TARGET;
-		}
 	}
 
 	if ((usage & PIPE_BIND_SAMPLER_VIEW) &&




More information about the mesa-commit mailing list