feat(bindless): Fix barrier placement after updating uniform buffer

This commit is contained in:
PancakeTAS 2026-04-26 01:23:22 +02:00
parent a75da595e3
commit 6266a443ed
No known key found for this signature in database

View file

@ -794,6 +794,19 @@ vk::CommandBuffer Pipeline::buildTransCmdbuf(
vk::CommandBufferUsageFlagBits::eOneTimeSubmit
}, dld);
vk::BufferMemoryBarrier2KHR barrier{
.srcStageMask = vk::PipelineStageFlagBits2::eComputeShader,
.srcAccessMask = vk::AccessFlagBits2::eUniformRead,
.dstStageMask = vk::PipelineStageFlagBits2::eTransfer,
.dstAccessMask = vk::AccessFlagBits2::eTransferWrite,
.buffer = *this->m_descriptorSet.buffer.first,
.size = 4
};
cmdbuf->pipelineBarrier2KHR({
.bufferMemoryBarrierCount = 1,
.pBufferMemoryBarriers = &barrier
}, dld);
const UniformBuffer buf{
.timestamp = static_cast<float>(index + 1) / static_cast<float>(total + 1),
.iteration = iteration
@ -806,6 +819,19 @@ vk::CommandBuffer Pipeline::buildTransCmdbuf(
dld
);
barrier = {
.srcStageMask = vk::PipelineStageFlagBits2::eTransfer,
.srcAccessMask = vk::AccessFlagBits2::eTransferWrite,
.dstStageMask = vk::PipelineStageFlagBits2::eComputeShader,
.dstAccessMask = vk::AccessFlagBits2::eUniformRead,
.buffer = *this->m_descriptorSet.buffer.first,
.size = 4
};
cmdbuf->pipelineBarrier2KHR({
.bufferMemoryBarrierCount = 1,
.pBufferMemoryBarriers = &barrier
}, dld);
cmdbuf->end(dld);
return *cmdbuf;