OSDN Git Service

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 c051848..ca24394 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.