iris: Set 3DSTATE_WM::ForceThreadDispatchEnable
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 11 Feb 2019 22:22:50 +0000 (14:22 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:12 +0000 (10:26 -0800)
The Vulkan driver only sets this if color writes are disabled, which
is more conservative - but would require us to inspect blend state.

(If color writes are enabled, we don't need to force anything, because
the internal signal is already correct.  But it shouldn't hurt to do so.)

src/gallium/drivers/iris/iris_state.c

index 8191141a373e874b371ea0d9a9c4b7b97c4a58c0..6d75d255eacd0ca908990b3084aee6a5ac786084 100644 (file)
@@ -4407,6 +4407,10 @@ iris_upload_dirty_render_state(struct iris_context *ice,
             wm.EarlyDepthStencilControl = EDSC_PREPS;
          else if (wm_prog_data->has_side_effects)
             wm.EarlyDepthStencilControl = EDSC_PSEXEC;
+
+         /* We could skip this bit if color writes are enabled. */
+         if (wm_prog_data->has_side_effects || wm_prog_data->uses_kill)
+            wm.ForceThreadDispatchEnable = ForceON;
       }
       iris_emit_merge(batch, cso->wm, dynamic_wm, ARRAY_SIZE(cso->wm));
    }