mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-07-09 17:25:18 -06:00
vk: Fix missing TRANSFER->FRAGMENT barrier for shadowed blocks
This commit is contained in:
parent
cbbf52878a
commit
46bbbd2056
@ -236,17 +236,19 @@ namespace vk
|
|||||||
|
|
||||||
void data_heap::sync(const vk::command_buffer& cmd)
|
void data_heap::sync(const vk::command_buffer& cmd)
|
||||||
{
|
{
|
||||||
if (!dirty_ranges.empty())
|
if (dirty_ranges.empty())
|
||||||
{
|
{
|
||||||
ensure(shadow);
|
return;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
bool data_heap::is_dirty() const
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user