radeonsi: make PARTIAL_ES_WAVE globally dependent on SWITCH_ON_EOI
authorMarek Olšák <marek.olsak@amd.com>
Sun, 18 Oct 2015 20:17:04 +0000 (22:17 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 23 Oct 2015 22:01:20 +0000 (00:01 +0200)
This catches the other cases that enable SWITCH_ON_EOI.

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

index 3b606b2c7dcf60dc9f98f78e2e1cd566aa630839..396200375c27e9412aab58a01e7ee14587751350 100644 (file)
@@ -247,13 +247,10 @@ static unsigned si_get_ia_multi_vgt_param(struct si_context *sctx,
                /* primgroup_size must be set to a multiple of NUM_PATCHES */
                primgroup_size = (primgroup_size / num_patches) * num_patches;
 
-               /* SWITCH_ON_EOI must be set if PrimID is used.
-                * If SWITCH_ON_EOI is set, PARTIAL_ES_WAVE must be set too. */
+               /* SWITCH_ON_EOI must be set if PrimID is used. */
                if ((sctx->tcs_shader.cso && sctx->tcs_shader.cso->info.uses_primid) ||
-                   sctx->tes_shader.cso->info.uses_primid) {
+                   sctx->tes_shader.cso->info.uses_primid)
                        ia_switch_on_eoi = true;
-                       partial_es_wave = true;
-               }
 
                /* Bug with tessellation and GS on Bonaire and older 2 SE chips. */
                if ((sctx->b.family == CHIP_TAHITI ||
@@ -313,6 +310,10 @@ static unsigned si_get_ia_multi_vgt_param(struct si_context *sctx,
                assert(wd_switch_on_eop || !ia_switch_on_eop);
        }
 
+       /* If SWITCH_ON_EOI is set, PARTIAL_ES_WAVE must be set too. */
+       if (ia_switch_on_eoi)
+               partial_es_wave = true;
+
        /* Hw bug with single-primitive instances and SWITCH_ON_EOI
         * on multi-SE chips. */
        if (sctx->b.screen->info.max_se >= 2 && ia_switch_on_eoi &&