void stage_image_at(size_t binding_index, std::shared_ptr< Core::VKImage > image, GpuBufferBinding::ElementType kind, vk::Sampler sampler=nullptr)
Register a VKImage at an explicit binding index.
std::shared_ptr< Kakshya::TextureContainer > m_pending_container
void prepare_output_image(uint32_t width, uint32_t height)
Allocates the output storage image and stages it at the declared output binding.
ImageSlot & input_slot()
Find the declared input image slot.
std::optional< std::pair< uint32_t, uint32_t > > m_output_dim_override
@ IMAGE
Transition output image to shader-read layout; no CPU download.
@ CONTAINER
Download storage image at binding 0 into a TextureContainer.
std::shared_ptr< Core::VKImage > container_image(const Kakshya::TextureContainer &container, uint32_t layer)
The container's pixels as a GPU image, without allocating one per call.