i965/gen6/xfb: handle case where transform feedback is not active
authorAndrii Simiklit <asimiklit.work@gmail.com>
Wed, 15 Aug 2018 15:20:32 +0000 (18:20 +0300)
committerSamuel Iglesias Gonsalvez <correo@samuelig.es>
Tue, 28 Aug 2018 13:32:45 +0000 (15:32 +0200)
When the SVBI Payload Enable is false I guess the register R1.4
which contains the Maximum Streamed Vertex Buffer Index is filled by zero
and GS stops to write transform feedback when the transform feedback
is not active.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107579
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
src/mesa/drivers/dri/i965/genX_state_upload.c

index c051848985f2865f1aca39ac06c7aba1c48a0e1f..ca24394aa7d48a4a85dc995cdfc32a19896fb6f8 100644 (file)
@@ -2806,7 +2806,7 @@ genX(upload_gs_state)(struct brw_context *brw)
 #if GEN_GEN < 7
          gs.SOStatisticsEnable = true;
          if (gs_prog->info.has_transform_feedback_varyings)
-            gs.SVBIPayloadEnable = true;
+            gs.SVBIPayloadEnable = _mesa_is_xfb_active_and_unpaused(ctx);
 
          /* GEN6_GS_SPF_MODE and GEN6_GS_VECTOR_MASK_ENABLE are enabled as it
           * was previously done for gen6.