diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 0d77f31f..07e39fa1 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -461,23 +461,15 @@ namespace dxvk { m_execBarriers.recordCommands(m_cmd); - VkImageLayout imageLayoutInitial = image->info().layout; - VkImageLayout imageLayoutClear = image->pickLayout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); + VkImageLayout imageLayoutClear = image->pickLayout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); - if (subresources.aspectMask == image->formatInfo()->aspectMask) - imageLayoutInitial = VK_IMAGE_LAYOUT_UNDEFINED; - - m_execBarriers.accessImage( - image, subresources, - imageLayoutInitial, - image->info().stages, - image->info().access, + this->initializeImage(image, subresources, imageLayoutClear, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_ACCESS_TRANSFER_WRITE_BIT); - m_execBarriers.recordCommands(m_cmd); - + m_execAcquires.recordCommands(m_cmd); + m_cmd->cmdClearDepthStencilImage(image->handle(), imageLayoutClear, &value, 1, &subresources);