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

◆ flush_push_constant()

void MayaFlux::Buffers::FormaBindingsProcessor::flush_push_constant ( float  value,
const PushConstantTarget pc,
const std::shared_ptr< VKBuffer > &  buffer 
)
private

Definition at line 127 of file FormaBindingsProcessor.cpp.

131{
132 auto& staging = buffer->get_pipeline_context().push_constant_staging;
133 const size_t end = static_cast<size_t>(pc.offset) + pc.size;
134
135 if (staging.size() < end)
136 staging.resize(end);
137
138 if (pc.size == sizeof(float)) {
139 std::memcpy(staging.data() + pc.offset, &value, sizeof(float));
140 } else if (pc.size == sizeof(double)) {
141 auto promoted = static_cast<double>(value);
142 std::memcpy(staging.data() + pc.offset, &promoted, sizeof(double));
143 }
144
146 "FormaBindingsProcessor: PC write offset={} value={}", pc.offset, value);
147}
#define MF_RT_DEBUG(comp, ctx,...)
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, MF_RT_DEBUG, MayaFlux::Buffers::FormaBindingsProcessor::PushConstantTarget::offset, and MayaFlux::Buffers::FormaBindingsProcessor::PushConstantTarget::size.

Referenced by execute_shader().

+ Here is the caller graph for this function: