|
MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
|
Compute-specific pipeline and dispatch orchestration. More...
#include <ComputePress.hpp>
Collaboration diagram for MayaFlux::Portal::Graphics::ComputePress:Classes | |
| struct | PipelineState |
Public Member Functions | |
| ComputePress (const ComputePress &)=delete | |
| ComputePress & | operator= (const ComputePress &)=delete |
| ComputePress (ComputePress &&) noexcept=delete | |
| ComputePress & | operator= (ComputePress &&) noexcept=delete |
| bool | initialize () |
| void | shutdown () |
| ComputePipelineID | create_pipeline (ShaderID shader_id, const std::vector< std::vector< DescriptorBindingConfig > > &descriptor_sets={}, size_t push_constant_size=0) |
| Create compute pipeline. | |
| ComputePipelineID | create_pipeline_auto (ShaderID shader_id, size_t push_constant_size=0) |
| Create pipeline with auto-reflection. | |
| void | destroy_pipeline (ComputePipelineID pipeline_id) |
| void | bind_pipeline (CommandBufferID cmd_id, ComputePipelineID pipeline_id) |
| Bind pipeline to active command buffer. | |
| void | bind_descriptor_sets (CommandBufferID cmd_id, ComputePipelineID pipeline_id, const std::vector< DescriptorSetID > &descriptor_set_ids) |
| Bind descriptor sets to active command buffer. | |
| void | push_constants (CommandBufferID cmd_id, ComputePipelineID pipeline_id, const void *data, size_t size) |
| Push constants to active command buffer. | |
| void | dispatch (CommandBufferID cmd_id, uint32_t x, uint32_t y, uint32_t z) |
| Dispatch compute workgroups. | |
| void | dispatch_indirect (CommandBufferID cmd_id, vk::Buffer indirect_buffer, vk::DeviceSize offset=0) |
| Dispatch compute workgroups indirectly. | |
| std::vector< DescriptorSetID > | allocate_pipeline_descriptors (ComputePipelineID pipeline_id) |
| All-in-one: allocate descriptors for pipeline. | |
| void | bind_all (CommandBufferID cmd_id, ComputePipelineID pipeline_id, const std::vector< DescriptorSetID > &descriptor_set_ids, const void *push_constants_data=nullptr, size_t push_constant_size=0) |
| All-in-one: bind pipeline + descriptors + push constants. | |
Static Public Member Functions | |
| static ComputePress & | instance () |
Private Member Functions | |
| ComputePress ()=default | |
| ~ComputePress () | |
Private Attributes | |
| std::shared_ptr< Core::VKDescriptorManager > | m_descriptor_manager |
| std::unordered_map< ComputePipelineID, PipelineState > | m_pipelines |
| std::atomic< uint64_t > | m_next_pipeline_id { 1 } |
| ShaderFoundry * | m_shader_foundry = nullptr |
Static Private Attributes | |
| static bool | s_initialized = false |
Compute-specific pipeline and dispatch orchestration.
Responsibilities:
Uses ShaderFoundry for:
Definition at line 24 of file ComputePress.hpp.