SpiecsEngine
 
Loading...
Searching...
No Matches

◆ BeginRenderPassAsync()

void Spices::Renderer::RenderBehaveBuilder::BeginRenderPassAsync ( )

Begin this Renderer's RenderPass Async.

Instance a VkRenderPassBeginInfo.

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

Begin RenderPass Statistics.

This command not allow async.

Instance a VkRenderPassBeginInfo.

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

Begin RenderPass Statistics.

This command not allow async.

Definition at line 925 of file Renderer.cpp.

926 {
928
929 m_HandledSubPass = *m_Renderer->m_Pass->GetSubPasses()->first();
930 m_SubPassIndex = 0;
932
936 VkRenderPassBeginInfo renderPassInfo{};
937 renderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
938 renderPassInfo.renderPass = m_Renderer->m_Pass->Get();
939 renderPassInfo.framebuffer = m_Renderer->m_Pass->GetFramebuffer(m_CurrentImage);
940 renderPassInfo.renderArea.offset = { 0, 0 };
941
945 if (m_Renderer->m_Pass->IsUseSwapChain() || !SlateSystem::GetRegister())
946 {
947 renderPassInfo.renderArea.extent = m_Renderer->m_Device->GetSwapChainSupport().surfaceSize;
948 }
949 else
950 {
951 const ImVec2 size = SlateSystem::GetRegister()->GetViewPort()->GetPanelSize();
952 const VkExtent2D extent = { static_cast<uint32_t>(size.x) , static_cast<uint32_t>(size.y) };
953 renderPassInfo.renderArea.extent = extent;
954 }
955
956 renderPassInfo.clearValueCount = static_cast<uint32_t>(m_Renderer->m_Pass->GetClearValues().size());
957 renderPassInfo.pClearValues = m_Renderer->m_Pass->GetClearValues().data();
958
959 NSIGHTPERF_GPUPROFILERREPORF_PUSHRANGE(m_CommandBuffer, m_Renderer->m_Pass->GetName())
960 NSIGHTPERF_GPUPROFILERREPORF_PUSHRANGE(m_CommandBuffer, m_HandledSubPass->GetName())
961
962 NSIGHTPERF_GPUPROFILERONESHOT_BEGINRANGE(m_CommandBuffer, m_Renderer->m_Pass->GetName(), 1, m_CurrentFrame)
963 NSIGHTPERF_GPUPROFILERONESHOT_BEGINRANGE(m_CommandBuffer, m_HandledSubPass->GetName(), 2, m_CurrentFrame)
964
965 DEBUGUTILS_BEGINLABEL(m_CommandBuffer, m_Renderer->m_Pass->GetName())
966 DEBUGUTILS_BEGINLABEL(m_CommandBuffer, m_HandledSubPass->GetName())
967
968 NSIGHTAFTERMATH_GPUCRASHTRACKER_SETCHECKPOINT(m_CommandBuffer, m_Renderer->m_VulkanState.m_VkFunc, "Enter Pass:" + m_Renderer->m_Pass->GetName())
969
973 RENDERPASS_STATISTICS_BEGINSTATISTICS(this, m_CommandBuffer)
974
978 vkCmdBeginRenderPass(m_CommandBuffer, &renderPassInfo, VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS);
979 }
#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::BasePassRenderer::Render().