From 819cb694347b59baec60f58ad02aed1e70b602fe Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Wed, 20 Jan 2016 17:26:41 -0800 Subject: [PATCH] anv/gen8+9: Invalidate color calc state when switching to the GPGPU pipeline Port 044acb9256046bebec890cac7e42043754459fc2 to anv. Signed-off-by: Jordan Justen --- src/vulkan/gen8_cmd_buffer.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/vulkan/gen8_cmd_buffer.c b/src/vulkan/gen8_cmd_buffer.c index c15e5a5ef42..d4d01ea151b 100644 --- a/src/vulkan/gen8_cmd_buffer.c +++ b/src/vulkan/gen8_cmd_buffer.c @@ -623,6 +623,20 @@ cmd_buffer_flush_compute_state(struct anv_cmd_buffer *cmd_buffer) config_l3(cmd_buffer, needs_slm); if (cmd_buffer->state.current_pipeline != GPGPU) { +#if ANV_GEN < 10 + /* From the Broadwell PRM, Volume 2a: Instructions, PIPELINE_SELECT: + * + * Software must clear the COLOR_CALC_STATE Valid field in + * 3DSTATE_CC_STATE_POINTERS command prior to send a PIPELINE_SELECT + * with Pipeline Select set to GPGPU. + * + * The internal hardware docs recommend the same workaround for Gen9 + * hardware too. + */ + anv_batch_emit(&cmd_buffer->batch, + GENX(3DSTATE_CC_STATE_POINTERS)); +#endif + anv_batch_emit(&cmd_buffer->batch, GENX(PIPELINE_SELECT), #if ANV_GEN >= 9 .MaskBits = 3, -- 2.30.2