SpiecsEngine
 
Loading...
Searching...
No Matches

◆ BeginRenderPass()

void Spices::Renderer::RenderBehaveBuilder::BeginRenderPass ( )
virtual

Begin this Renderer's RenderPass.

Instance a VkRenderPassBeginInfo.

In the first frame, we use window size rather than viewport size.

Begin RenderPass Statistics.

Instance a VkRenderPassBeginInfo.

In the first frame, we use window size rather than viewport size.

Begin RenderPass Statistics.

Reimplemented in Spices::Renderer::RayTracingRenderBehaveBuilder, and Spices::Renderer::ComputeRenderBehaveBuilder.

Definition at line 840 of file Renderer.cpp.

841 {
843
844 m_HandledSubPass = *m_Renderer->m_Pass->GetSubPasses()->first();
845 m_SubPassIndex = 0;
847
851 VkRenderPassBeginInfo renderPassInfo{};
852 renderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
853 renderPassInfo.renderPass = m_Renderer->m_Pass->Get();
854 renderPassInfo.framebuffer = m_Renderer->m_Pass->GetFramebuffer(m_CurrentImage);
855 renderPassInfo.renderArea.offset = { 0, 0 };
856
860 if (m_Renderer->m_Pass->IsUseSwapChain() || !SlateSystem::GetRegister())
861 {
862 renderPassInfo.renderArea.extent = m_Renderer->m_Device->GetSwapChainSupport().surfaceSize;
863 }
864 else
865 {
866 const ImVec2 size = SlateSystem::GetRegister()->GetViewPort()->GetPanelSize();
867 const VkExtent2D extent = { static_cast<uint32_t>(size.x) , static_cast<uint32_t>(size.y) };
868 renderPassInfo.renderArea.extent = extent;
869 }
870
871 renderPassInfo.clearValueCount = static_cast<uint32_t>(m_Renderer->m_Pass->GetClearValues().size());
872 renderPassInfo.pClearValues = m_Renderer->m_Pass->GetClearValues().data();
873
874 NSIGHTPERF_GPUPROFILERREPORF_PUSHRANGE(m_CommandBuffer, m_Renderer->m_Pass->GetName())
875 NSIGHTPERF_GPUPROFILERREPORF_PUSHRANGE(m_CommandBuffer, m_HandledSubPass->GetName())
876
877 NSIGHTPERF_GPUPROFILERONESHOT_BEGINRANGE(m_CommandBuffer, m_Renderer->m_Pass->GetName(), 1, m_CurrentFrame)
878 NSIGHTPERF_GPUPROFILERONESHOT_BEGINRANGE(m_CommandBuffer, m_HandledSubPass->GetName(), 2, m_CurrentFrame)
879
880 DEBUGUTILS_BEGINLABEL(m_CommandBuffer, m_Renderer->m_Pass->GetName())
881 DEBUGUTILS_BEGINLABEL(m_CommandBuffer, m_HandledSubPass->GetName())
882
883 NSIGHTAFTERMATH_GPUCRASHTRACKER_SETCHECKPOINT(m_CommandBuffer, m_Renderer->m_VulkanState.m_VkFunc, "Enter Pass:" + m_Renderer->m_Pass->GetName())
884
888 RENDERPASS_STATISTICS_BEGINSTATISTICS(this, m_CommandBuffer)
889
890 vkCmdBeginRenderPass(m_CommandBuffer, &renderPassInfo, VK_SUBPASS_CONTENTS_INLINE);
891 }
#define SPICES_PROFILE_ZONE
std::shared_ptr< VulkanDeviceGeneratedCommandsNV > m_HandledDGCData
Current subPass DGCData.
Definition Renderer.h:1549
uint32_t m_CurrentFrame
Current frame index. Passed while this class instanced.
Definition Renderer.h:1522
std::shared_ptr< RendererSubPass > m_HandledSubPass
Handled Sub pass.
Definition Renderer.h:1544
uint32_t m_CurrentImage
Current frame index. Passed while this class instanced.
Definition Renderer.h:1529
uint32_t m_SubPassIndex
Current subPass Index.
Definition Renderer.h:1534
Renderer * m_Renderer
Specific Renderer pointer. Passed while this class instanced.
Definition Renderer.h:1515
VkCommandBuffer m_CommandBuffer
Current CommandBuffer.
Definition Renderer.h:1539
std::shared_ptr< RendererPass > m_Pass
RendererPass.
Definition Renderer.h:2012
std::shared_ptr< VulkanDevice > m_Device
VulkanDevice , Passed by instanced.
Definition Renderer.h:2002
VulkanState & m_VulkanState
This variable is passed while renderer instanced.
Definition Renderer.h:1992
std::unordered_map< std::string, std::shared_ptr< VulkanDeviceGeneratedCommandsNV > > m_DGCData
Data of dgc DGC Draw.
Definition Renderer.h:2042
static std::shared_ptr< SlateRegister > GetRegister()
Get slate register.
Definition SlateSystem.h:67

References m_SubPassIndex.

Referenced by Spices::PreRenderer::Render(), Spices::RayTracingComposeRenderer::Render(), Spices::SceneComposeRenderer::Render(), Spices::SlateRenderer::Render(), Spices::SpriteRenderer::Render(), Spices::TestRenderer::Render(), Spices::ViewportGridRenderer::Render(), Spices::WorldPickRenderer::Render(), and Spices::WorldPickStage2Renderer::Render().