MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ on_iteration_barrier()

void MayaFlux::Buffers::PressureProcessor::on_iteration_barrier ( Portal::Graphics::CommandBufferID  cmd_id,
const std::shared_ptr< VKBuffer > &  buffer,
uint32_t  index 
)
overrideprotectedvirtual

Barrier both pressure slots between consecutive passes.

Parameters
cmd_idCommand buffer being recorded into.
bufferBuffer under processing.
indexZero-based index of the pass just recorded.

The default implementation barriers the attached buffer's own handle, which these passes never touch.

Reimplemented from MayaFlux::Buffers::ComputeProcessor.

Definition at line 56 of file PressureProcessor.cpp.

60{
61 const auto& volume = get_volume();
62 if (!volume) {
63 return;
64 }
65
67
68 const auto src = vk::AccessFlagBits::eShaderWrite;
69 const auto dst = vk::AccessFlagBits::eShaderRead | vk::AccessFlagBits::eShaderWrite;
70 const auto stage = vk::PipelineStageFlagBits::eComputeShader;
71
72 foundry.buffer_barrier(cmd_id, volume->read_handle(m_pressure_field), src, dst, stage, stage);
73 foundry.buffer_barrier(cmd_id, volume->write_handle(m_pressure_field), src, dst, stage, stage);
74}
const std::shared_ptr< VolumeGridBuffer > & get_volume() const
The attached volume, or null if attachment failed validation.
MAYAFLUX_API ShaderFoundry & get_shader_foundry()
Get the global shader compiler instance.

References MayaFlux::Portal::Graphics::get_shader_foundry(), MayaFlux::Buffers::VolumeFieldProcessor::get_volume(), and m_pressure_field.

+ Here is the call graph for this function: