SpiecsEngine
 
Loading...
Searching...
No Matches

◆ CreatePreprocessBuffer()

void Spices::VulkanDeviceGeneratedCommandsNV::CreatePreprocessBuffer ( )

Create Process Buffer.

Definition at line 67 of file VulkanDeviceGeneratedCommandsNV.cpp.

68 {
70
71 VkGeneratedCommandsMemoryRequirementsInfoNV memInfo{};
72 memInfo.sType = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV;
73 memInfo.maxSequencesCount = m_NSequence;
74 memInfo.indirectCommandsLayout = m_IndirectCmdsLayout->Get();
75 memInfo.pipeline = m_Pipeline->GetPipeline();
76 memInfo.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS;
77
78 VkMemoryRequirements2 memReqs{};
79 memReqs.sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
80
81 m_VulkanState.m_VkFunc.vkGetGeneratedCommandsMemoryRequirementsNV(m_VulkanState.m_Device, &memInfo, &memReqs);
82
83 m_PreprocessBuffer = std::make_shared<VulkanBuffer>(
85 "GDCPreprocessBuffer" ,
86 memReqs.memoryRequirements.size ,
87 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT ,
88 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT |
90 );
91
92 m_PreprocessSize = memReqs.memoryRequirements.size;
93 }
#define SPICES_PROFILE_ZONE
std::shared_ptr< VulkanPipeline > m_Pipeline
DGC pipeline.
std::shared_ptr< VulkanBuffer > m_PreprocessBuffer
PreprocessBuffer.
std::shared_ptr< VulkanIndirectCommandsLayoutNV > m_IndirectCmdsLayout
VkIndirectCommandsLayoutNV.
VulkanState & m_VulkanState
The global VulkanState Referenced from VulkanRenderBackend.
@ VMA_MEMORY_PROPERTY_DEDICATED_MEMORY_BIT
VkMemoryPropertyFlagBits.
VulkanFunctions m_VkFunc
Definition VulkanUtils.h:98