Module: wine
Branch: master
Commit: 75e82b77aa1333057182d88fea47746f6d4f34c4
URL: https://gitlab.winehq.org/wine/wine/-/commit/75e82b77aa1333057182d88fea4774…
Author: Stefan Dösinger <stefan(a)codeweavers.com>
Date: Mon Mar 27 13:13:17 2023 +0300
wined3d: Sync depth stencils to both early and late depth test.
We don't know which test the next draw will use when we place the
barrier. We may be able to figure this out, but it is not trivial.
This avoids a read-after-write hazard after the next patch. The layout
transition from shader-read-only to depth stencil needs to be finished
before the early depth test in a follow-up draw if this draw uses early
depth.
---
dlls/wined3d/resource.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index f8fa34727bd..471d2f32f03 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -582,7 +582,7 @@ VkPipelineStageFlags vk_pipeline_stage_mask_from_bind_flags(uint32_t bind_flags)
if (bind_flags & WINED3D_BIND_RENDER_TARGET)
flags |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
if (bind_flags & WINED3D_BIND_DEPTH_STENCIL)
- flags |= VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT;
+ flags |= VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT;
if (bind_flags & WINED3D_BIND_STREAM_OUTPUT)
flags |= VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT;