r600g: simplify framebuffer state size computation
authorMarek Olšák <marek.olsak@amd.com>
Tue, 6 May 2014 11:53:59 +0000 (13:53 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Sat, 10 May 2014 11:58:46 +0000 (13:58 +0200)
Take the upper bound. The number doesn't have to absolutely correct, only safe.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
src/gallium/drivers/r600/evergreen_state.c

index f7a63a8e7109d5cf0d9a245a9d603c30c153bcc7..7b1a44b635cb293ddaebc97de486a5d3a23ced52 100644 (file)
@@ -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;