Mesa (master): r600g: simplify framebuffer state size computation

Marek Olšák mareko at kemper.freedesktop.org
Sat May 10 12:03:01 UTC 2014


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Tue May  6 13:53:59 2014 +0200

r600g: simplify framebuffer state size computation

Take the upper bound. The number doesn't have to absolutely correct, only safe.

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

---

 src/gallium/drivers/r600/evergreen_state.c |   30 ++++------------------------
 1 file changed, 4 insertions(+), 26 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index f7a63a8..7b1a44b 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -1394,32 +1394,10 @@ static void evergreen_set_framebuffer_state(struct pipe_context *ctx,
 	rctx->framebuffer.atom.num_dw = 4; /* SCISSOR */
 
 	/* MSAA. */
-	if (rctx->b.chip_class == EVERGREEN) {
-		switch (rctx->framebuffer.nr_samples) {
-		case 2:
-		case 4:
-			rctx->framebuffer.atom.num_dw += 6;
-			break;
-		case 8:
-			rctx->framebuffer.atom.num_dw += 10;
-			break;
-		}
-		rctx->framebuffer.atom.num_dw += 4;
-	} else {
-		switch (rctx->framebuffer.nr_samples) {
-		case 2:
-		case 4:
-			rctx->framebuffer.atom.num_dw += 12;
-			break;
-		case 8:
-			rctx->framebuffer.atom.num_dw += 16;
-			break;
-		case 16:
-			rctx->framebuffer.atom.num_dw += 18;
-			break;
-		}
-		rctx->framebuffer.atom.num_dw += 7;
-	}
+	if (rctx->b.chip_class == EVERGREEN)
+		rctx->framebuffer.atom.num_dw += 14; /* Evergreen */
+	else
+		rctx->framebuffer.atom.num_dw += 25; /* Cayman */
 
 	/* Colorbuffers. */
 	rctx->framebuffer.atom.num_dw += state->nr_cbufs * 23;




More information about the mesa-commit mailing list