radeonsi: update all GSVS ring descriptors for new buffer allocations
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Mon, 28 Nov 2016 19:30:41 +0000 (20:30 +0100)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Mon, 12 Dec 2016 08:04:06 +0000 (09:04 +0100)
Fixes GL45-CTS.gtf40.GL3Tests.transform_feedback3.transform_feedback3_geometry_instanced.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_state_shaders.c

index 0afc3b4fc9d0fb585b8120632b1f28be81a61e0c..ea715695b97fe2662eee9b4d9c1548ec5a84d8b7 100644 (file)
@@ -2038,10 +2038,15 @@ static bool si_update_gs_ring_buffers(struct si_context *sctx)
                                   sctx->esgs_ring, 0, sctx->esgs_ring->width0,
                                   false, false, 0, 0, 0);
        }
-       if (sctx->gsvs_ring)
+       if (sctx->gsvs_ring) {
                si_set_ring_buffer(&sctx->b.b, SI_VS_RING_GSVS,
                                   sctx->gsvs_ring, 0, sctx->gsvs_ring->width0,
                                   false, false, 0, 0, 0);
+
+               /* Also update SI_GS_RING_GSVSi descriptors. */
+               sctx->last_gsvs_itemsize = 0;
+       }
+
        return true;
 }