From: Jordan Justen Date: Thu, 21 Jan 2016 01:26:41 +0000 (-0800) Subject: anv/gen8+9: Invalidate color calc state when switching to the GPGPU pipeline X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=819cb694347b59baec60f58ad02aed1e70b602fe;p=mesa.git anv/gen8+9: Invalidate color calc state when switching to the GPGPU pipeline Port 044acb9256046bebec890cac7e42043754459fc2 to anv. Signed-off-by: Jordan Justen --- 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,