diff --git a/src/intel/vulkan/anv_genX.h b/src/intel/vulkan/anv_genX.h index cdb05427881..e0b0369a842 100644 --- a/src/intel/vulkan/anv_genX.h +++ b/src/intel/vulkan/anv_genX.h @@ -38,8 +38,6 @@ struct intel_sample_positions; -typedef struct VkRenderingSelfDependencyInfoMESA VkRenderingSelfDependencyInfoMESA; - extern const uint32_t genX(vk_to_intel_cullmode)[]; extern const uint32_t genX(vk_to_intel_front_face)[]; diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c index cefdf66f082..e78ff376517 100644 --- a/src/intel/vulkan/genX_pipeline.c +++ b/src/intel/vulkan/genX_pipeline.c @@ -1428,6 +1428,13 @@ emit_3dstate_gs(struct anv_graphics_pipeline *pipeline) } } +static bool +rp_has_ds_self_dep(const struct vk_render_pass_state *rp) +{ + return rp->pipeline_flags & + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT; +} + static void emit_3dstate_wm(struct anv_graphics_pipeline *pipeline, const struct vk_input_assembly_state *ia, @@ -1570,8 +1577,7 @@ emit_3dstate_ps_extra(struct anv_graphics_pipeline *pipeline, * around to fetching from the input attachment and we may get the depth * or stencil value from the current draw rather than the previous one. */ - ps.PixelShaderKillsPixel = rp->depth_self_dependency || - rp->stencil_self_dependency || + ps.PixelShaderKillsPixel = rp_has_ds_self_dep(rp) || wm_prog_data->uses_kill; ps.PixelShaderComputesStencil = wm_prog_data->computed_stencil; @@ -1639,8 +1645,7 @@ compute_kill_pixel(struct anv_graphics_pipeline *pipeline, * of an alpha test. */ pipeline->kill_pixel = - rp->depth_self_dependency || - rp->stencil_self_dependency || + rp_has_ds_self_dep(rp) || wm_prog_data->uses_kill || wm_prog_data->uses_omask || (ms && ms->alpha_to_coverage_enable);