SpiecsEngine
 
Loading...
Searching...
No Matches

◆ VulkanRenderBackend() [1/2]

Spices::VulkanRenderBackend::VulkanRenderBackend ( )

Constructor Function.

Init NsightAftermath GpuCrashTracker.

Create basic Vulkan Objects.

Init Debuggers

Create VulkanDescriptorPool.

Create RendererResourcePool.

Todo
Move to

Create CmdBuffers ThreadPool.

Create all Specific Renderer.

Init NsightAftermath GpuCrashTracker.

Create basic Vulkan Objects.

Init Debuggers

Create VulkanDescriptorPool.

Create RendererResourcePool.

Todo
Move to

Create CmdBuffers ThreadPool.

Create all Specific Renderer.

Definition at line 44 of file VulkanRenderBackend.cpp.

45 {
47
51 {
52 NSIGHTAFTERMATH_GPUCRASHTRACKER_INIT
53 }
54
58 {
59 m_VulkanWindows = std::make_unique<VulkanWindows> (m_VulkanState, initInfo);
60 m_VulkanInstance = std::make_unique<VulkanInstance> (m_VulkanState, "app", "engine");
61 m_VulkanDevice = std::make_shared<VulkanDevice> (m_VulkanState);
62
66 {
67
69 NSIGHTPERF_GPUPROFILERREPORT_CREATEINSTANCE(m_VulkanState)
70 NSIGHTPERF_GPUPROFILERONESHOT_CREATEINSTANCE(m_VulkanState)
71 NSIGHTPERF_GPUPROFILERCONTINUOUS_CREATEINSTANCE(m_VulkanState)
72 NSIGHTPERF_GPUPROFILERHUD_CREATEINSTANCE(m_VulkanState)
73 }
74
75 m_VmaAllocator = std::make_shared<VulkanMemoryAllocator>(m_VulkanState);
76 m_VulkanCommandPool = std::make_unique<VulkanCommandPool> (m_VulkanState);
77 m_VulkanCommandBuffer = std::make_unique<VulkanCommandBuffer> (m_VulkanState);
78 m_VulkanSwapChain = std::make_unique<VulkanSwapChain> (m_VulkanState, m_VulkanDevice);
79 }
80
84 {
85 m_VulkanDescriptorPool = VulkanDescriptorPool::Builder()
86 .SetPoolFlags(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT | VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT)
87 .AddPoolSize(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1000)
88 .AddPoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1000)
89 .AddPoolSize(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1000)
90 .AddPoolSize(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1000)
91 .AddPoolSize(VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, 1000)
92 .Build(m_VulkanState);
93 }
94
99 {
100 m_RendererResourcePool = std::make_shared<RendererResourcePool>();
101 }
102
106 {
107 ThreadModel::Get()->InitRHIThreadPool([&](std::shared_ptr<VulkanCmdThreadPool>& ptr) {
108 ptr = std::make_shared<VulkanCmdThreadPool>(m_VulkanState, "RHIT");
109 });
110 }
111
115 {
118
119 /* @brief Ray Tracing Renderer */
122
123 /* @brief Rasterization Renderer */
131 //.Push<ParticleRenderer> (m_VulkanState, m_VulkanDescriptorPool, m_VulkanDevice, m_RendererResourcePool)
134 }
135 }
#define SPICES_PROFILE_GPU_CREATEINSTANCE(...)
#define SPICES_PROFILE_ZONE
static RendererManager & Get()
Get Static RendererManager.
RendererManager & Push(Args &&... args)
Push a renderer to this manager, and initialize it.
static std::shared_ptr< ThreadModel > Get()
Get ThreadModel single instance.
std::shared_ptr< VulkanMemoryAllocator > m_VmaAllocator
VulkanMemoryAllocator.
std::unique_ptr< VulkanSwapChain > m_VulkanSwapChain
VulkanSwapChain.
std::unique_ptr< VulkanCommandPool > m_VulkanCommandPool
VulkanCommandPool.
static VulkanState m_VulkanState
The VulkanState in use.
std::unique_ptr< VulkanCommandBuffer > m_VulkanCommandBuffer
VulkanCommandBuffer.
static std::shared_ptr< VulkanDescriptorPool > m_VulkanDescriptorPool
The VulkanDescriptorPool in use.
static std::shared_ptr< RendererResourcePool > m_RendererResourcePool
The RendererResourcePool in use.
std::unique_ptr< VulkanWindows > m_VulkanWindows
VulkanWindows.
std::shared_ptr< VulkanDevice > m_VulkanDevice
VulkanDevice.
std::unique_ptr< VulkanInstance > m_VulkanInstance
VulkanInstance.
const WindowInfo initInfo
Window create parameter.

References m_VulkanState.