Henri Verbeet : wined3d: Add a missing barrier to wined3d_shader_resource_view_vk_generate_mipmap().

Alexandre Julliard julliard at winehq.org
Tue Mar 16 16:39:04 CDT 2021


Module: wine
Branch: master
Commit: 8c47318081de803a443bd688091c3295f690a519
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=8c47318081de803a443bd688091c3295f690a519

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Mar 16 17:13:25 2021 +0100

wined3d: Add a missing barrier to wined3d_shader_resource_view_vk_generate_mipmap().

Specifically, the one for using the new destination as blit target.

Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/view.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
index 74a100405aa..fec7e950a64 100644
--- a/dlls/wined3d/view.c
+++ b/dlls/wined3d/view.c
@@ -1369,14 +1369,20 @@ void wined3d_shader_resource_view_vk_generate_mipmap(struct wined3d_shader_resou
         }
         else
         {
+            region.srcSubresource.mipLevel = ++vk_src_range.baseMipLevel;
+            region.dstSubresource.mipLevel = ++vk_dst_range.baseMipLevel;
+
             wined3d_context_vk_image_barrier(context_vk, vk_command_buffer,
                     VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
                     VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT,
                     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+                    texture_vk->vk_image, &vk_src_range);
+            wined3d_context_vk_image_barrier(context_vk, vk_command_buffer,
+                    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
+                    vk_access_mask_from_bind_flags(texture_vk->t.resource.bind_flags),
+                    VK_ACCESS_TRANSFER_WRITE_BIT,
+                    texture_vk->layout, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
                     texture_vk->vk_image, &vk_dst_range);
-
-            region.srcSubresource.mipLevel = ++vk_src_range.baseMipLevel;
-            region.dstSubresource.mipLevel = ++vk_dst_range.baseMipLevel;
         }
     }
 




More information about the wine-cvs mailing list