mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-15 07:29:17 +01:00
[dxvk] Fix acquire barrier in clearCompressedColorImage
This commit is contained in:
parent
dcc38c98e7
commit
651646ca7f
@ -516,14 +516,19 @@ namespace dxvk {
|
|||||||
if (m_execBarriers.isImageDirty(image, subresources, DxvkAccess::Write))
|
if (m_execBarriers.isImageDirty(image, subresources, DxvkAccess::Write))
|
||||||
m_execBarriers.recordCommands(m_cmd);
|
m_execBarriers.recordCommands(m_cmd);
|
||||||
|
|
||||||
|
VkImageLayout layout = image->pickLayout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
|
||||||
|
|
||||||
|
if (layout != image->info().layout) {
|
||||||
m_execAcquires.accessImage(
|
m_execAcquires.accessImage(
|
||||||
image, subresources,
|
image, subresources,
|
||||||
VK_IMAGE_LAYOUT_UNDEFINED, 0, 0,
|
VK_IMAGE_LAYOUT_UNDEFINED,
|
||||||
image->pickLayout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL),
|
VK_PIPELINE_STAGE_TRANSFER_BIT, 0,
|
||||||
|
layout,
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||||
VK_ACCESS_TRANSFER_WRITE_BIT);
|
VK_ACCESS_TRANSFER_WRITE_BIT);
|
||||||
|
|
||||||
m_execAcquires.recordCommands(m_cmd);
|
m_execAcquires.recordCommands(m_cmd);
|
||||||
|
}
|
||||||
|
|
||||||
for (uint32_t level = 0; level < subresources.levelCount; level++) {
|
for (uint32_t level = 0; level < subresources.levelCount; level++) {
|
||||||
VkOffset3D offset = VkOffset3D { 0, 0, 0 };
|
VkOffset3D offset = VkOffset3D { 0, 0, 0 };
|
||||||
@ -540,15 +545,12 @@ namespace dxvk {
|
|||||||
region.imageExtent = extent;
|
region.imageExtent = extent;
|
||||||
|
|
||||||
m_cmd->cmdCopyBufferToImage(DxvkCmdBuffer::ExecBuffer,
|
m_cmd->cmdCopyBufferToImage(DxvkCmdBuffer::ExecBuffer,
|
||||||
zeroHandle.handle, image->handle(),
|
zeroHandle.handle, image->handle(), layout, 1, ®ion);
|
||||||
image->pickLayout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL),
|
|
||||||
1, ®ion);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_execBarriers.accessImage(
|
m_execBarriers.accessImage(
|
||||||
image, subresources,
|
image, subresources, layout,
|
||||||
image->pickLayout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL),
|
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||||
VK_ACCESS_TRANSFER_WRITE_BIT,
|
VK_ACCESS_TRANSFER_WRITE_BIT,
|
||||||
image->info().layout,
|
image->info().layout,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user