nvk: Handle host accesses barrier

We were not flushing sysmem and NVIDIA proprietary driver does.

Signed-off-by: Mary Guillemard <mary@mary.zone>
Fixes: e1c1cdbd5f ("nvk: Implement vkCmdPipelineBarrier2 for real")
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41055>
This commit is contained in:
Mary Guillemard 2026-04-17 19:23:20 +02:00
parent 712c768f8c
commit 03510ea470

View file

@ -485,6 +485,9 @@ nvk_barrier_flushes_waits(VkPipelineStageFlags2 stages,
if (access & VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT)
barriers |= NVK_BARRIER_FLUSH_SHADER_DATA;
if (access & VK_ACCESS_2_HOST_WRITE_BIT)
barriers |= NVK_BARRIER_HOST_WFI_FLUSH_SYSMEM;
return barriers;
}
@ -527,6 +530,9 @@ nvk_barrier_invalidates(VkPipelineStageFlags2 stages,
if (access & VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR)
barriers |= NVK_BARRIER_INVALIDATE_RASTER_CACHE;
if (access & (VK_ACCESS_2_HOST_READ_BIT | VK_ACCESS_2_HOST_WRITE_BIT))
barriers |= NVK_BARRIER_HOST_WFI_FLUSH_SYSMEM;
return barriers;
}