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

◆ collect_gpu_outputs()

ContainerDatum MayaFlux::Yantra::TextureExecutionContext::collect_gpu_outputs ( const GpuChannelResult ,
const std::vector< std::vector< double > > &  ,
const DataStructureInfo  
)
inlineoverrideprotectedvirtual

Wraps the written output image in a TextureContainer.

Ignores the float readback in raw. Downloads the storage image at binding 0 into a new TextureContainer and returns it as a ContainerDatum.

Reimplemented from MayaFlux::Yantra::GpuExecutionContext< std::shared_ptr< Kakshya::SignalSourceContainer >, std::shared_ptr< Kakshya::SignalSourceContainer > >.

Definition at line 123 of file TextureExecutionContext.hpp.

127 {
128 auto img = get_output_image(0);
129 if (!img) {
130 error<std::runtime_error>(
133 std::source_location::current(),
134 "TextureExecutionContext: no output image at binding 0 after dispatch");
135 }
136
138 img, vk::ImageLayout::eGeneral, vk::ImageLayout::eShaderReadOnlyOptimal);
139
140 auto container = std::make_shared<Kakshya::TextureContainer>(m_width, m_height, m_output_format);
141
142 container->from_image(img, 0);
143 return ContainerDatum { std::static_pointer_cast<Kakshya::SignalSourceContainer>(container) };
144 }
void transition_layout(const std::shared_ptr< Core::VKImage > &image, vk::ImageLayout old_layout, vk::ImageLayout new_layout, uint32_t mip_levels=1, uint32_t array_layers=1, vk::ImageAspectFlags aspect_mask=vk::ImageAspectFlagBits::eColor)
Transition a VKImage to a new Vulkan layout via an immediate submission.
std::shared_ptr< Core::VKImage > get_output_image(size_t binding_index) const
Return the image registered at an IMAGE_STORAGE output binding.
Datum< std::shared_ptr< Kakshya::SignalSourceContainer > > ContainerDatum
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Yantra
DSP algorithms, computational units, matrix operations, Grammar.