From 545d852a7a7bc8a509d22096bdb7fb578d4bab65 Mon Sep 17 00:00:00 2001 From: Anuj Phogat Date: Wed, 9 Sep 2020 11:05:18 -0700 Subject: [PATCH] intel/gen9: Enable MSC RAW Hazard Avoidance Workaround # 22011374674 Applied to i965, iris and anv drivers No performance impact is observed with WA. Cc: mesa-stable Signed-off-by: Anuj Phogat Reviewed-by: Kenneth Graunke --- src/gallium/drivers/iris/iris_state.c | 2 ++ src/intel/vulkan/genX_state.c | 2 ++ src/mesa/drivers/dri/i965/brw_defines.h | 1 + src/mesa/drivers/dri/i965/brw_state_upload.c | 2 ++ 4 files changed, 7 insertions(+) diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 29c0bf9591a..e1717dc250f 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -972,6 +972,8 @@ iris_init_render_context(struct iris_batch *batch) iris_pack_state(GENX(CACHE_MODE_1), ®_val, reg) { reg.FloatBlendOptimizationEnable = true; reg.FloatBlendOptimizationEnableMask = true; + reg.MSCRAWHazardAvoidanceBit = true; + reg.MSCRAWHazardAvoidanceBitMask = true; reg.PartialResolveDisableInVC = true; reg.PartialResolveDisableInVCMask = true; } diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c index a29938e90de..e490c40f07c 100644 --- a/src/intel/vulkan/genX_state.c +++ b/src/intel/vulkan/genX_state.c @@ -131,6 +131,8 @@ genX(init_device_state)(struct anv_device *device) anv_pack_struct(&cache_mode_1, GENX(CACHE_MODE_1), .FloatBlendOptimizationEnable = true, .FloatBlendOptimizationEnableMask = true, + .MSCRAWHazardAvoidanceBit = true, + .MSCRAWHazardAvoidanceBitMask = true, .PartialResolveDisableInVC = true, .PartialResolveDisableInVCMask = true); diff --git a/src/mesa/drivers/dri/i965/brw_defines.h b/src/mesa/drivers/dri/i965/brw_defines.h index 76ec9a26a27..e52e75f3a9f 100644 --- a/src/mesa/drivers/dri/i965/brw_defines.h +++ b/src/mesa/drivers/dri/i965/brw_defines.h @@ -1561,6 +1561,7 @@ enum brw_pixel_shader_coverage_mask_mode { #define GEN7_CACHE_MODE_0 0x7000 #define GEN7_CACHE_MODE_1 0x7004 # define GEN9_FLOAT_BLEND_OPTIMIZATION_ENABLE (1 << 4) +# define GEN9_MSC_RAW_HAZARD_AVOIDANCE_BIT (1 << 9) # define GEN8_HIZ_NP_PMA_FIX_ENABLE (1 << 11) # define GEN8_HIZ_NP_EARLY_Z_FAILS_DISABLE (1 << 13) # define GEN9_PARTIAL_RESOLVE_DISABLE_IN_VC (1 << 1) diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c index 564ac0e677e..7d0cf96ddfd 100644 --- a/src/mesa/drivers/dri/i965/brw_state_upload.c +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c @@ -206,8 +206,10 @@ brw_upload_initial_gpu_state(struct brw_context *brw) */ brw_load_register_imm32(brw, GEN7_CACHE_MODE_1, REG_MASK(GEN9_FLOAT_BLEND_OPTIMIZATION_ENABLE) | + REG_MASK(GEN9_MSC_RAW_HAZARD_AVOIDANCE_BIT) | REG_MASK(GEN9_PARTIAL_RESOLVE_DISABLE_IN_VC) | GEN9_FLOAT_BLEND_OPTIMIZATION_ENABLE | + GEN9_MSC_RAW_HAZARD_AVOIDANCE_BIT | GEN9_PARTIAL_RESOLVE_DISABLE_IN_VC); }