mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-05-07 13:37:46 +00:00
vk: Fix missing TRANSFER->FRAGMENT barrier for shadowed blocks
This commit is contained in:
parent
cbbf52878a
commit
46bbbd2056
1 changed files with 11 additions and 9 deletions
|
|
@ -236,17 +236,19 @@ namespace vk
|
|||
|
||||
void data_heap::sync(const vk::command_buffer& cmd)
|
||||
{
|
||||
if (!dirty_ranges.empty())
|
||||
if (dirty_ranges.empty())
|
||||
{
|
||||
ensure(shadow);
|
||||
ensure(heap);
|
||||
vkCmdCopyBuffer(cmd, shadow->value, heap->value, ::size32(dirty_ranges), dirty_ranges.data());
|
||||
dirty_ranges.clear();
|
||||
|
||||
insert_buffer_memory_barrier(cmd, heap->value, 0, heap->size(),
|
||||
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
|
||||
VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
|
||||
return;
|
||||
}
|
||||
|
||||
ensure(shadow);
|
||||
ensure(heap);
|
||||
vkCmdCopyBuffer(cmd, shadow->value, heap->value, ::size32(dirty_ranges), dirty_ranges.data());
|
||||
dirty_ranges.clear();
|
||||
|
||||
insert_buffer_memory_barrier(cmd, heap->value, 0, heap->size(),
|
||||
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||
VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT);
|
||||
}
|
||||
|
||||
bool data_heap::is_dirty() const
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue