v3d: Don't set the first_ez_state to DISABLED if after only UNDECIDED draws.
authorEric Anholt <eric@anholt.net>
Wed, 13 Jun 2018 19:58:22 +0000 (12:58 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 14 Jun 2018 23:52:25 +0000 (16:52 -0700)
We need to have the RCL start with EZ enabled, since those undecided draws
had EZ enabled.  But we do need to update from UNDECIDED to LT or GT as
necessary still.

Fixes many simulator assertion fails in deqp
fragment_ops/interaction/basic_shader/*

src/gallium/drivers/v3d/v3dx_draw.c

index c89ebda2aad2f7afae387ed05d5c7914d0caa011..97127a1b69b7ff1ad7bd87f71da938b7ebdfd97e 100644 (file)
@@ -371,7 +371,8 @@ v3d_update_job_ez(struct v3d_context *v3d, struct v3d_job *job)
                 job->ez_state = VC5_EZ_DISABLED;
         }
 
-        if (job->first_ez_state == VC5_EZ_UNDECIDED)
+        if (job->first_ez_state == VC5_EZ_UNDECIDED &&
+            (job->ez_state != VC5_EZ_DISABLED || job->draw_calls_queued == 0))
                 job->first_ez_state = job->ez_state;
 }