Class VulkanDescriptorSetManager¶
Defined in File vulkan_descriptor_set_manager.h
Nested Relationships¶
Nested Types¶
Inheritance Relationships¶
Base Type¶
public portal::renderer::DescriptorSetManager(Class DescriptorSetManager)
Class Documentation¶
-
class VulkanDescriptorSetManager : public portal::renderer::DescriptorSetManager¶
Vulkan descriptor set manager with automatic invalidation tracking.
Binds resources to shader descriptor sets by name using shader reflection. Manages descriptor allocation, updates, and multi-buffering.
Public Functions
-
~VulkanDescriptorSetManager() override¶
-
VulkanDescriptorSetManager(const VulkanDescriptorSetManager&) = delete¶
-
VulkanDescriptorSetManager &operator=(const VulkanDescriptorSetManager&) = delete¶
-
virtual void set_input(StringId name, const Reference<UniformBufferSet> &buffer) override¶
Binds uniform buffer set.
-
virtual void set_input(StringId name, const Reference<UniformBuffer> &buffer) override¶
Binds uniform buffer.
-
virtual void set_input(StringId name, const Reference<StorageBufferSet> &buffer) override¶
Binds storage buffer set.
-
virtual void set_input(StringId name, const Reference<StorageBuffer> &buffer) override¶
Binds storage buffer.
-
virtual void set_input(StringId name, const Reference<ImageView> &image) override¶
Binds image view.
-
template<typename T>
inline virtual Reference<T> get_input(const StringId name)¶ Gets bound input resource (typed)
-
virtual Reference<RendererResource> get_input(StringId name) override¶
Gets bound input resource.
- Parameters:
name – Binding name
- Returns:
Resource reference
-
virtual bool is_invalidated(size_t set, size_t binding_index) const override¶
Checks if binding is invalidated.
- Parameters:
set – Descriptor set index
binding_index – Binding index
- Returns:
True if invalidated
-
virtual bool validate() override¶
Validates all bindings are set.
-
virtual void bake() override¶
Finalizes descriptor sets for rendering.
-
const shader_reflection::ShaderResourceDeclaration *get_input_declaration(const StringId &name) const¶
Gets resource declaration from shader reflection.
- Parameters:
name – Resource name
- Returns:
Reflection data or nullptr
-
virtual void invalidate_and_update(size_t frame_index) override¶
Updates invalidated bindings for frame.
- Parameters:
frame_index – Frame-in-flight index
-
size_t get_first_set_index() const¶
Gets first managed descriptor set index.
-
const std::vector<vk::raii::DescriptorSet> &get_descriptor_sets(size_t frame_index) const¶
Gets descriptor sets for frame.
- Parameters:
frame_index – Frame-in-flight index
- Returns:
Descriptor sets
Public Members
-
std::unordered_map<size_t, std::unordered_map<size_t, DescriptorInput>> input_resources¶
-
std::unordered_map<size_t, std::unordered_map<size_t, DescriptorInput>> invalid_input_resources¶
-
std::unordered_map<StringId, shader_reflection::ShaderResourceDeclaration> input_declarations¶
-
std::vector<std::vector<vk::raii::DescriptorSet>> descriptor_sets¶
-
std::vector<std::unordered_map<size_t, std::unordered_map<size_t, WriteDescriptor>>> write_descriptors_map¶
Public Static Functions
-
static VulkanDescriptorSetManager create(const DescriptorSetManagerProperties &properties, const VulkanDevice &device)¶
Creates descriptor set manager.
- Parameters:
properties – Configuration
device – Vulkan device
- Returns:
Descriptor set manager
-
static std::unique_ptr<VulkanDescriptorSetManager> create_unique(const DescriptorSetManagerProperties &properties, const VulkanDevice &device)¶
Creates unique descriptor set manager.
- Parameters:
properties – Configuration
device – Vulkan device
- Returns:
Unique pointer to manager
-
struct WriteDescriptor
Public Members
-
vk::WriteDescriptorSet write_descriptor_set
-
std::vector<void*> resource_handles
-
vk::WriteDescriptorSet write_descriptor_set
-
~VulkanDescriptorSetManager() override¶