mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-27 01:17:40 +00:00
Meow
This commit is contained in:
@@ -492,17 +492,18 @@ void BufferCacheRuntime::UnifiedMemoryHostBarrier() {
|
||||
}
|
||||
|
||||
void BufferCacheRuntime::UnifiedMemoryShaderWriteBarrier() {
|
||||
const bool has_transform_feedback = device.IsExtTransformFeedbackSupported();
|
||||
VkAccessFlags src_access = VK_ACCESS_SHADER_WRITE_BIT;
|
||||
VkPipelineStageFlags src_stages = vk::PIPELINE_STAGE_GRAPHICS_COMPUTE;
|
||||
if (device.IsExtTransformFeedbackSupported()) {
|
||||
src_access |= VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT;
|
||||
src_stages |= VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT;
|
||||
}
|
||||
const VkMemoryBarrier write_barrier{
|
||||
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
|
||||
.pNext = nullptr,
|
||||
.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT |
|
||||
(has_transform_feedback ? VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT : 0),
|
||||
.srcAccessMask = src_access,
|
||||
.dstAccessMask = VK_ACCESS_HOST_READ_BIT,
|
||||
};
|
||||
const VkPipelineStageFlags src_stages =
|
||||
vk::PIPELINE_STAGE_GRAPHICS_COMPUTE |
|
||||
(has_transform_feedback ? VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT : 0);
|
||||
scheduler.RequestOutsideRenderPassOperationContext();
|
||||
scheduler.Record([write_barrier, src_stages](vk::CommandBuffer cmdbuf) {
|
||||
cmdbuf.PipelineBarrier(src_stages, VK_PIPELINE_STAGE_HOST_BIT, 0, write_barrier);
|
||||
|
||||
Reference in New Issue
Block a user