diff options
| author | Scott Mansell <phiren@gmail.com> | 2023-01-28 15:12:28 +1300 |
|---|---|---|
| committer | Scott Mansell <phiren@gmail.com> | 2023-01-31 19:41:23 +1300 |
| commit | 2a2014af09a6d3a569f6f74f4d12b9fb02c6dffb (patch) | |
| tree | 8260bca36d469bbace6f42f77df3b5123e4e6eb3 /Source/Core/VideoBackends/Vulkan/VKMain.cpp | |
| parent | 58b70b2fb2abac12dddd947a69f7fa5b41b1a8b7 (diff) | |
Implement AbstractGfx for Vulkan
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/VKMain.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/VKMain.cpp | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/VKMain.cpp b/Source/Core/VideoBackends/Vulkan/VKMain.cpp index 13379aebed..a61b9d210a 100644 --- a/Source/Core/VideoBackends/Vulkan/VKMain.cpp +++ b/Source/Core/VideoBackends/Vulkan/VKMain.cpp @@ -12,8 +12,9 @@ #include "VideoBackends/Vulkan/Constants.h" #include "VideoBackends/Vulkan/ObjectCache.h" #include "VideoBackends/Vulkan/StateTracker.h" +#include "VideoBackends/Vulkan/VKBoundingBox.h" +#include "VideoBackends/Vulkan/VKGfx.h" #include "VideoBackends/Vulkan/VKPerfQuery.h" -#include "VideoBackends/Vulkan/VKRenderer.h" #include "VideoBackends/Vulkan/VKSwapChain.h" #include "VideoBackends/Vulkan/VKVertexManager.h" #include "VideoBackends/Vulkan/VulkanContext.h" @@ -193,8 +194,7 @@ bool VideoBackend::Initialize(const WindowSystemInfo& wsi) g_Config.backend_info.bSupportsExclusiveFullscreen = enable_surface && g_vulkan_context->SupportsExclusiveFullscreen(wsi, surface); - // With the backend information populated, we can now initialize videocommon. - InitializeShared(); + UpdateActiveConfig(); // Create command buffers. We do this separately because the other classes depend on it. g_command_buffer_mgr = std::make_unique<CommandBufferManager>(g_Config.bBackendMultithreading); @@ -234,24 +234,23 @@ bool VideoBackend::Initialize(const WindowSystemInfo& wsi) return false; } - // Create main wrapper instances. - g_renderer = std::make_unique<Renderer>(std::move(swap_chain), wsi.render_surface_scale); - g_vertex_manager = std::make_unique<VertexManager>(); - g_shader_cache = std::make_unique<VideoCommon::ShaderCache>(); - g_framebuffer_manager = std::make_unique<FramebufferManager>(); - g_texture_cache = std::make_unique<TextureCacheBase>(); - g_perf_query = std::make_unique<PerfQuery>(); - - if (!g_vertex_manager->Initialize() || !g_shader_cache->Initialize() || - !g_renderer->Initialize() || !g_framebuffer_manager->Initialize() || - !g_texture_cache->Initialize() || !PerfQuery::GetInstance()->Initialize()) + auto gfx = std::make_unique<VKGfx>(std::move(swap_chain), wsi.render_surface_scale); + auto vertex_manager = std::make_unique<VertexManager>(); + auto perf_query = std::make_unique<PerfQuery>(); + auto bounding_box = std::make_unique<VKBoundingBox>(); + + if (!InitializeShared(std::move(gfx), std::move(vertex_manager), std::move(perf_query), + std::move(bounding_box))) { - PanicAlertFmt("Failed to initialize renderer classes"); - Shutdown(); return false; } - g_shader_cache->InitializeShaderCache(); + if (!PerfQuery::GetInstance()->Initialize()) + { + PanicAlertFmt("Failed to initialize PerfQuery"); + return false; + } + return true; } |
