summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/VKMain.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2023-01-28 15:12:28 +1300
committerScott Mansell <phiren@gmail.com>2023-01-31 19:41:23 +1300
commit2a2014af09a6d3a569f6f74f4d12b9fb02c6dffb (patch)
tree8260bca36d469bbace6f42f77df3b5123e4e6eb3 /Source/Core/VideoBackends/Vulkan/VKMain.cpp
parent58b70b2fb2abac12dddd947a69f7fa5b41b1a8b7 (diff)
Implement AbstractGfx for Vulkan
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/VKMain.cpp')
-rw-r--r--Source/Core/VideoBackends/Vulkan/VKMain.cpp33
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;
}