18 #include <vsg/core/ScratchMemory.h>
19 #include <vsg/nodes/Group.h>
20 #include <vsg/state/BufferInfo.h>
21 #include <vsg/state/GraphicsPipeline.h>
22 #include <vsg/state/ImageInfo.h>
23 #include <vsg/utils/ShaderCompiler.h>
24 #include <vsg/vk/CommandPool.h>
25 #include <vsg/vk/DescriptorPool.h>
26 #include <vsg/vk/Fence.h>
27 #include <vsg/vk/MemoryBufferPools.h>
28 #include <vsg/vk/ResourceRequirements.h>
30 #include <vsg/commands/Command.h>
31 #include <vsg/commands/CopyAndReleaseBuffer.h>
32 #include <vsg/commands/CopyAndReleaseImage.h>
38 class ViewDependentState;
48 void compile(
Context&)
override {}
54 std::vector<VkAccelerationStructureGeometryKHR> _accelerationStructureGeometries;
55 std::vector<VkAccelerationStructureBuildRangeInfoKHR> _accelerationStructureBuildRangeInfos;
56 VkAccelerationStructureKHR _accelerationStructure;
75 const uint32_t deviceID = 0;
89 uint32_t minimum_maxSets = 0;
90 DescriptorPoolSizes minimum_descriptorPoolSizes;
106 GraphicsPipelineStates defaultPipelineStates;
114 GraphicsPipelineStates overridePipelineStates;
117 std::list<ref_ptr<DescriptorPool>> descriptorPools;
130 std::vector<ref_ptr<Command>> commands;
142 void waitForCompletion();
148 VkDeviceSize scratchBufferSize;
149 std::vector<ref_ptr<BuildAccelerationStructureCommand>> buildAccelerationStructureCommands;
Helper command for setting up RayTracing structures.
Definition: Context.h:42
CommandBuffer encapsulates VkCommandBuffer.
Definition: CommandBuffer.h:27
ShaderCompiler * getOrCreateShaderCompiler()
get existing ShaderCompiler or create a new one when GLSLang is supported
void reserve(const ResourceRequirements &requirements)
reserve resources that may be needed during compile traversal.
void getDescriptorPoolSizesToUse(uint32_t &maxSets, DescriptorPoolSizes &descriptorPoolSizes)
get the maxSets and descriptorPoolSizes to use
ref_ptr< DescriptorSet::Implementation > allocateDescriptorSet(DescriptorSetLayout *descriptorSetLayout)
allocate or reuse a DescriptorSet::Implementation from the available DescriptorPool
bool record()
return true if there are commands that have been submitted
DescriptorSetLayout encapsulates VkDescriptorSetLayout and VkDescriptorSetLayoutCreateInfo settings u...
Definition: DescriptorSetLayout.h:28
Device encapsulates VkDevice, a logical handle to the PhysicalDevice with capabilities specified duri...
Definition: Device.h:37
ResourceRequirements provides a container for various Vulkan resource requirements that can be used t...
Definition: ResourceRequirements.h:30
Definition: ShaderCompiler.h:15
Definition: ViewDependentState.h:105
Definition: observer_ptr.h:24