SpiecsEngine
 
Loading...
Searching...
No Matches
Spices::Renderer::RayTracingRenderBehaveBuilder Class Reference

This class helps to bind pipeline and bind buffer. Specific for RayTracing Renderer. Only instanced during Render(). More...

#include <Renderer.h>

Inheritance diagram for Spices::Renderer::RayTracingRenderBehaveBuilder:
Spices::Renderer::RenderBehaveBuilder

Public Member Functions

 RayTracingRenderBehaveBuilder (Renderer *renderer, VulkanRayTracing *rayTracing, uint32_t currentFrame, uint32_t currentImage)
 Constructor Function. Bind pipeline and all buffer type descriptor set.
 
virtual ~RayTracingRenderBehaveBuilder () override=default
 Destructor Function.
 
virtual std::shared_ptr< RendererSubPass > & GetStatisticsRendererPass () override
 Get RenderPass in statistics. @reutrn Return RenderPass.
 
virtual void BeginRenderPass () override
 Begin this Renderer's RenderPass.
 
virtual void EndRenderPass () override
 End this Renderer's RenderPass.
 
virtual void BeginNextSubPass (const std::string &subPassName) override
 End a preview sub pass and stat next sub pass.
 
virtual void BindPipeline (const std::string &materialName, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR) override
 Bind the pipeline created by CreatePipeline(). Called on RenderBehaveBuilder instanced.
 
virtual void BindPipeline (VkPipeline pipeline, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR) override
 Bind the pipeline created by CreatePipeline(). Called on RenderBehaveBuilder instanced.
 
virtual void BindPipelineAsync (const std::string &materialName, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR) override
 Bind the pipeline created by CreatePipeline() Async. Called on RenderBehaveBuilder instanced.
 
virtual void BindDescriptorSet (const DescriptorSetInfo &infos, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR) override
 Binding DescriptorSet with DescriptorSetInfo. For Binding a Renderer DescriptorSet.
 
virtual void BindDescriptorSetAsync (const DescriptorSetInfo &infos, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR) override
 Binding DescriptorSet with DescriptorSetInfo Async. For Binding a Renderer DescriptorSet.
 
virtual void BindDescriptorSet (const DescriptorSetInfo &infos, const std::string &name, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR) override
 Binding DescriptorSet with DescriptorSetInfo and name. For Binding a Material DescriptorSet.
 
virtual void BindDescriptorSetAsync (const DescriptorSetInfo &infos, const std::string &name, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR) override
 Binding DescriptorSet with DescriptorSetInfo and name Async. For Binding a Material DescriptorSet.
 
void TraceRays () const
 Call vkCmdTraceRaysKHR here.
 
void TraceRays (const VkStridedDeviceAddressRegionKHR *rgenRegion, const VkStridedDeviceAddressRegionKHR *missRegion, const VkStridedDeviceAddressRegionKHR *hitRegion, const VkStridedDeviceAddressRegionKHR *callRegion) const
 Call vkCmdTraceRaysKHR here.
 
void TraceRaysAsync (const VkStridedDeviceAddressRegionKHR *rgenRegion, const VkStridedDeviceAddressRegionKHR *missRegion, const VkStridedDeviceAddressRegionKHR *hitRegion, const VkStridedDeviceAddressRegionKHR *callRegion) const
 Call vkCmdTraceRaysKHR here Async.
 
void Recording (const std::string &caption) const
 Recording all this behaves does.
 
void EndRecording () const
 End recording all this behaveS does.
 
std::future< VkCommandBuffer > Async (std::function< void(const VkCommandBuffer &cmdBuffer)> func) const
 Async Commands.
 
void Await (std::function< void(const VkCommandBuffer &cmdBuffer)> func) const
 Await Async Commands.
 
void Wait (std::future< VkCommandBuffer > &futureCmdBuffer) const
 Wait for merge secondary commandBuffers.
 
void Wait (std::vector< std::future< VkCommandBuffer > > &futureCmdBuffers) const
 Wait for merge secondary commandBuffer.
 
void SetViewPort (const VkCommandBuffer &cmdBuffer=VK_NULL_HANDLE) const
 DynamicState Set Viewport and Scissor.
 
void SetViewPortAsync () const
 DynamicState Set Viewport and Scissor Async.
 
void RunDGC (VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) const
 Run DGC Buffer.
 
void RunDGCAsync () const
 Run DGC Buffer Async.
 
void PreprocessDGC_NV (VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) const
 Preprocess Device Generated CommandsBuffer.
 
void PreprocessDGCAsync_NV () const
 Preprocess Device Generated CommandsBuffer Async.
 
void ExecuteDGC_NV (const VkCommandBuffer &cmdBuffer=VK_NULL_HANDLE) const
 Execute Device Generated CommandsBuffer.
 
void ExecuteDGCAsync_NV () const
 Execute Device Generated CommandsBuffer Async.
 
void DrawFullScreenTriangle (const VkCommandBuffer &cmdBuffer=VK_NULL_HANDLE) const
 Draw a Triangle full screen.
 
void DrawFullScreenTriangleAsync () const
 Draw a Triangle full screen Async.
 
template<typename T , typename F >
void UpdatePushConstant (F func, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE)
 Update local push constant buffer.
 
template<typename T >
void UpdatePushConstant (void *data, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) const
 Update local push constant buffer.
 
template<typename T , typename F >
void UpdatePushConstantAsync (F func)
 Update local push constant buffer Async.
 
template<typename T >
void UpdatePushConstantAsync (void *data) const
 Update local push constant buffer Async.
 
template<typename T , typename F >
void UpdateUniformBuffer (uint32_t set, uint32_t binding, F func)
 Update a local buffer.
 
void UpdateUniformBuffer (uint32_t set, uint32_t binding, void *data) const
 Update a local buffer.
 
template<typename T , typename F >
void UpdateStorageBuffer (uint32_t set, uint32_t binding, F func)
 Update a local buffer.
 
void UpdateStorageBuffer (uint32_t set, uint32_t binding, void *data, uint64_t size=VK_WHOLE_SIZE, uint64_t offset=0) const
 Update a local buffer.
 
void UpdateStorageBuffer (uint32_t set, uint32_t binding, std::shared_ptr< VulkanBuffer > buffer) const
 Update a local buffer.
 
void UpdateAccelerationStructure (uint32_t set, uint32_t binding, const VkAccelerationStructureKHR &accel) const
 Update AccelerationStructure in descriptorSet.
 
void BeginNextSubPassAsync (const std::string &subPassName)
 End a preview sub pass and stat next sub pass.
 
void BeginRenderPassAsync ()
 Begin this Renderer's RenderPass Async.
 
virtual void AddBarriers (VulkanImage *image, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t srcQueueFamilyIndex=VulkanRenderBackend::GetState().m_ComputeQueueFamily, uint32_t dstQueueFamilyIndex=VulkanRenderBackend::GetState().m_GraphicQueueFamily, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE)
 Add a Image Barrier from compute queue to this graphic queue.
 
virtual void AddBarriers (VkBuffer buffer, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t srcQueueFamilyIndex=VulkanRenderBackend::GetState().m_GraphicQueueFamily, uint32_t dstQueueFamilyIndex=VulkanRenderBackend::GetState().m_ComputeQueueFamily, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE)
 Add a Buffer Barrier from compute queue to this graphic queue.
 
virtual void ReleaseBarriers (VulkanImage *image, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t srcQueueFamilyIndex=VulkanRenderBackend::GetState().m_GraphicQueueFamily, uint32_t dstQueueFamilyIndex=VulkanRenderBackend::GetState().m_ComputeQueueFamily, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE)
 Add a Image Barrier from this graphic queue to compute queue.
 
virtual void ReleaseBarriers (VkBuffer buffer, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t srcQueueFamilyIndex=VulkanRenderBackend::GetState().m_ComputeQueueFamily, uint32_t dstQueueFamilyIndex=VulkanRenderBackend::GetState().m_GraphicQueueFamily, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE)
 Add a Buffer Barrier from this graphic queue to compute queue.
 
virtual void InternalBarriers (VulkanImage *image, VkAccessFlags srcAccessMask=VK_ACCESS_SHADER_WRITE_BIT, VkAccessFlags dstAccessMask=VK_ACCESS_SHADER_READ_BIT, VkPipelineStageFlags srcStageMask=VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VkPipelineStageFlags dstStageMask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE)
 Add a Image Barrier from this queue to this queue.
 
virtual void InternalBarriers (VkBuffer buffer, VkAccessFlags srcAccessMask=VK_ACCESS_SHADER_WRITE_BIT, VkAccessFlags dstAccessMask=VK_ACCESS_SHADER_READ_BIT, VkPipelineStageFlags srcStageMask=VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VkPipelineStageFlags dstStageMask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE)
 Add a Buffer Barrier from this queue to this queue.
 
virtual void InternalBarriers (VkAccessFlags srcAccessMask=VK_ACCESS_SHADER_WRITE_BIT, VkAccessFlags dstAccessMask=VK_ACCESS_SHADER_READ_BIT, VkPipelineStageFlags srcStageMask=VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VkPipelineStageFlags dstStageMask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE)
 Add a Memory Barrier from this queue to this queue.
 
void InternalRegionBarrier (VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) const
 Add a memory Barrier.
 
void InternalRegionBarrierAsync (VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask) const
 Add a memory Barrier.
 
uint32_t GetSubPassIndex () const
 Get current subPass index in renderPass.
 

Public Attributes

Rendererm_Renderer
 Specific Renderer pointer. Passed while this class instanced.
 
uint32_t m_CurrentFrame
 Current frame index. Passed while this class instanced.
 
uint32_t m_CurrentImage
 Current frame index. Passed while this class instanced.
 
uint32_t m_SubPassIndex = 0
 Current subPass Index.
 
VkCommandBuffer m_CommandBuffer
 Current CommandBuffer.
 
std::shared_ptr< RendererSubPassm_HandledSubPass
 Handled Sub pass.
 
std::shared_ptr< VulkanDeviceGeneratedCommandsNVm_HandledDGCData
 Current subPass DGCData.
 

Private Attributes

VulkanRayTracingm_VulkanRayTracing
 Referenced VulkanRayTracing.
 

Detailed Description

This class helps to bind pipeline and bind buffer. Specific for RayTracing Renderer. Only instanced during Render().

Definition at line 1557 of file Renderer.h.


The documentation for this class was generated from the following files: