SpiecsEngine
 
Loading...
Searching...
No Matches

◆ AddStorageBuffer() [1/2]

Renderer::DescriptorSetBuilder & Spices::Renderer::DescriptorSetBuilder::AddStorageBuffer ( uint32_t set,
uint32_t binding,
uint64_t size,
VkShaderStageFlags stageFlags )

Create local buffer object in collection, and add it's set binding to descriptorsetlayout, and sets descriptorwriter using it's buffer info.

Parameters
[in]setWhich set this buffer wil use.
[in]bindingWhich binding this buffer will use.
[in]sizesize of ssbo.
[in]stageFlagsWhich buffer stage this buffer will use.
Returns
Returns this reference.

Creating VulkanBuffer.

fill in bufferInfos.

Registy descriptor and add binging to it.

Creating VulkanBuffer.

fill in bufferInfos.

Registy descriptor and add binging to it.

Definition at line 1594 of file Renderer.cpp.

1600 {
1602
1603 const UInt2 id(set, binding);
1604
1608 m_HandledSubPass->GetBuffers(id) = std::make_shared<VulkanBuffer>(
1610 "StorageBuffer",
1611 size,
1612 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT |
1613 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
1614 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
1615 );
1616
1620 m_BufferInfos[set][binding] = *m_HandledSubPass->GetBuffers(id)->GetBufferInfo();
1621
1625 const auto descriptorSet = DescriptorSetManager::Registry(m_DescriptorSetId, set);
1626 descriptorSet->AddBinding(binding, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, stageFlags, 1);
1627
1628 return *this;
1629 }
#define SPICES_PROFILE_ZONE
static std::shared_ptr< VulkanDescriptorSet > Registry(const String2 &name, uint32_t set)
Registry a VulkanDescriptorSet, create one if find none.
String2 m_DescriptorSetId
The Descriptor Set Manager ID descriptorSet belongs to.
Definition Renderer.h:730
std::unordered_map< uint32_t, std::unordered_map< uint32_t, VkDescriptorBufferInfo > > m_BufferInfos
DescriptorSet Buffer type binging info. [set] - [binding] - [info].
Definition Renderer.h:736
std::shared_ptr< RendererSubPass > m_HandledSubPass
Handled Sub pass.
Definition Renderer.h:725
Renderer * m_Renderer
Specific Renderer pointer. Passed while this class instanced.
Definition Renderer.h:720
VulkanState & m_VulkanState
This variable is passed while renderer instanced.
Definition Renderer.h:1992

References m_DescriptorSetId, and Spices::UInt2::UInt2().