15 #include <vsg/raytracing/RayTracingShaderGroup.h>
16 #include <vsg/state/PipelineLayout.h>
17 #include <vsg/state/ShaderStage.h>
18 #include <vsg/state/StateCommand.h>
34 void read(
Input& input)
override;
35 void write(
Output& output)
const override;
38 const PipelineLayout* getPipelineLayout()
const {
return _pipelineLayout; }
40 ShaderStages& getShaderStages() {
return _shaderStages; }
41 const ShaderStages& getShaderStages()
const {
return _shaderStages; }
43 RayTracingShaderGroups& getRayTracingShaderGroups() {
return _rayTracingShaderGroups; }
44 const RayTracingShaderGroups& getRayTracingShaderGroups()
const {
return _rayTracingShaderGroups; }
46 uint32_t& maxRecursionDepth() {
return _maxRecursionDepth; }
47 const uint32_t& maxRecursionDepth()
const {
return _maxRecursionDepth; }
50 void compile(Context& context);
53 void release(uint32_t deviceID) { _implementation[deviceID] = {}; }
54 void release() { _implementation.clear(); }
56 VkPipeline vk(uint32_t deviceID)
const {
return _implementation[deviceID]->_pipeline; }
59 virtual ~RayTracingPipeline();
70 ShaderStages _shaderStages;
71 RayTracingShaderGroups _shaderGroups;
77 ShaderStages _shaderStages;
78 RayTracingShaderGroups _rayTracingShaderGroups;
79 uint32_t _maxRecursionDepth = 1;
91 void read(
Input& input)
override;
92 void write(
Output& output)
const override;
96 const RayTracingPipeline* getPipeline()
const {
return _pipeline; }
98 void record(CommandBuffer& commandBuffer)
const override;
101 void compile(Context& context)
override;
103 virtual void release();
106 virtual ~BindRayTracingPipeline();
108 ref_ptr<RayTracingPipeline> _pipeline;
BindRayTracingPipeline state command encapsulates vkCmdBindPipeline for a RayTracingPipeline.
Definition: RayTracingPipeline.h:85
int compare(const Object &rhs_object) const override
compare two objects, return -1 if this object is less than rhs, return 0 if it's equal,...
PipelineLayout encapsulates VkPipelineLayout and the VkPipelineLayoutCreateInfo settings used to set ...
Definition: PipelineLayout.h:27
Definition: RayTracingPipeline.h:26
int compare(const Object &rhs_object) const override
compare two objects, return -1 if this object is less than rhs, return 0 if it's equal,...
Definition: RayTracingPipeline.h:62
vk_buffer that manages a single logical device supported.
Definition: vk_buffer.h:28