From: Jason Ekstrand Date: Sat, 5 Mar 2016 17:19:01 +0000 (-0800) Subject: anv/pipeline: Implement the depth compare EQUAL workaround on gen8+ X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1afdfc3e6e022a4e5e9701b365c4f92554be999a;p=mesa.git anv/pipeline: Implement the depth compare EQUAL workaround on gen8+ --- diff --git a/src/intel/vulkan/gen8_pipeline.c b/src/intel/vulkan/gen8_pipeline.c index e8a067851cc..4a5e8674189 100644 --- a/src/intel/vulkan/gen8_pipeline.c +++ b/src/intel/vulkan/gen8_pipeline.c @@ -238,6 +238,14 @@ emit_ds_state(struct anv_pipeline *pipeline, .BackfaceStencilTestFunction = vk_to_gen_compare_op[info->back.compareOp], }; + /* From the Broadwell PRM: + * + * "If Depth_Test_Enable = 1 AND Depth_Test_func = EQUAL, the + * Depth_Write_Enable must be set to 0." + */ + if (info->depthTestEnable && info->depthCompareOp == VK_COMPARE_OP_EQUAL) + wm_depth_stencil.DepthBufferWriteEnable = false; + GENX(3DSTATE_WM_DEPTH_STENCIL_pack)(NULL, dw, &wm_depth_stencil); }