Просмотр исходного кода

vulkan_surface: Pass only window info for surface creation

We don't need the whole EmuWindow when creating a surface,
and it creates onerous requirements outside of typical usage for
creating a surface elsewhere.
lat9nq 3 лет назад
Родитель
Сommit
c6c11c1553

+ 1 - 1
src/video_core/renderer_vulkan/renderer_vulkan.cpp

@@ -88,7 +88,7 @@ RendererVulkan::RendererVulkan(Core::TelemetrySession& telemetry_session_,
       instance(CreateInstance(library, dld, VK_API_VERSION_1_1, render_window.GetWindowInfo().type,
                               Settings::values.renderer_debug.GetValue())),
       debug_callback(Settings::values.renderer_debug ? CreateDebugCallback(instance) : nullptr),
-      surface(CreateSurface(instance, render_window)),
+      surface(CreateSurface(instance, render_window.GetWindowInfo())),
       device(CreateDevice(instance, dld, *surface)), memory_allocator(device, false),
       state_tracker(), scheduler(device, state_tracker),
       swapchain(*surface, device, scheduler, render_window.GetFramebufferLayout().width,

+ 3 - 3
src/video_core/vulkan_common/vulkan_surface.cpp

@@ -23,10 +23,10 @@
 
 namespace Vulkan {
 
-vk::SurfaceKHR CreateSurface(const vk::Instance& instance,
-                             const Core::Frontend::EmuWindow& emu_window) {
+vk::SurfaceKHR CreateSurface(
+    const vk::Instance& instance,
+    [[maybe_unused]] const Core::Frontend::EmuWindow::WindowSystemInfo& window_info) {
     [[maybe_unused]] const vk::InstanceDispatch& dld = instance.Dispatch();
-    [[maybe_unused]] const auto& window_info = emu_window.GetWindowInfo();
     VkSurfaceKHR unsafe_surface = nullptr;
 
 #ifdef _WIN32

+ 3 - 6
src/video_core/vulkan_common/vulkan_surface.h

@@ -3,15 +3,12 @@
 
 #pragma once
 
+#include "core/frontend/emu_window.h"
 #include "video_core/vulkan_common/vulkan_wrapper.h"
 
-namespace Core::Frontend {
-class EmuWindow;
-}
-
 namespace Vulkan {
 
-[[nodiscard]] vk::SurfaceKHR CreateSurface(const vk::Instance& instance,
-                                           const Core::Frontend::EmuWindow& emu_window);
+[[nodiscard]] vk::SurfaceKHR CreateSurface(
+    const vk::Instance& instance, const Core::Frontend::EmuWindow::WindowSystemInfo& window_info);
 
 } // namespace Vulkan