summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorGravatar liamwhite2023-09-10 13:40:18 -0400
committerGravatar GitHub2023-09-10 13:40:18 -0400
commitb011ce023decd6e8fdd4e6311f2fb5d39ee32e8e (patch)
tree0aa00226283cb4a22b8e8d6206993faf7d1e3398 /src/video_core/renderer_vulkan
parentvk_buffer_cache: Respect max vertex bindings in BindVertexBuffers (#11471) (diff)
parentrenderer_vulkan: Remove debug report (diff)
downloadyuzu-b011ce023decd6e8fdd4e6311f2fb5d39ee32e8e.tar.gz
yuzu-b011ce023decd6e8fdd4e6311f2fb5d39ee32e8e.tar.xz
yuzu-b011ce023decd6e8fdd4e6311f2fb5d39ee32e8e.zip
Merge pull request #11470 from GPUCode/bundle-vvl
android: Add option to bundle validation layer
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/renderer_vulkan.cpp18
-rw-r--r--src/video_core/renderer_vulkan/renderer_vulkan.h4
2 files changed, 3 insertions, 19 deletions
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
index 454bb66a4..c4c30d807 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
@@ -66,21 +66,6 @@ std::string BuildCommaSeparatedExtensions(
66 return fmt::format("{}", fmt::join(available_extensions, ",")); 66 return fmt::format("{}", fmt::join(available_extensions, ","));
67} 67}
68 68
69DebugCallback MakeDebugCallback(const vk::Instance& instance, const vk::InstanceDispatch& dld) {
70 if (!Settings::values.renderer_debug) {
71 return DebugCallback{};
72 }
73 const std::optional properties = vk::EnumerateInstanceExtensionProperties(dld);
74 const auto it = std::ranges::find_if(*properties, [](const auto& prop) {
75 return std::strcmp(VK_EXT_DEBUG_UTILS_EXTENSION_NAME, prop.extensionName) == 0;
76 });
77 if (it != properties->end()) {
78 return CreateDebugUtilsCallback(instance);
79 } else {
80 return CreateDebugReportCallback(instance);
81 }
82}
83
84} // Anonymous namespace 69} // Anonymous namespace
85 70
86Device CreateDevice(const vk::Instance& instance, const vk::InstanceDispatch& dld, 71Device CreateDevice(const vk::Instance& instance, const vk::InstanceDispatch& dld,
@@ -103,7 +88,8 @@ RendererVulkan::RendererVulkan(Core::TelemetrySession& telemetry_session_,
103 cpu_memory(cpu_memory_), gpu(gpu_), library(OpenLibrary(context.get())), 88 cpu_memory(cpu_memory_), gpu(gpu_), library(OpenLibrary(context.get())),
104 instance(CreateInstance(*library, dld, VK_API_VERSION_1_1, render_window.GetWindowInfo().type, 89 instance(CreateInstance(*library, dld, VK_API_VERSION_1_1, render_window.GetWindowInfo().type,
105 Settings::values.renderer_debug.GetValue())), 90 Settings::values.renderer_debug.GetValue())),
106 debug_callback(MakeDebugCallback(instance, dld)), 91 debug_messenger(Settings::values.renderer_debug ? CreateDebugUtilsCallback(instance)
92 : vk::DebugUtilsMessenger{}),
107 surface(CreateSurface(instance, render_window.GetWindowInfo())), 93 surface(CreateSurface(instance, render_window.GetWindowInfo())),
108 device(CreateDevice(instance, dld, *surface)), memory_allocator(device), state_tracker(), 94 device(CreateDevice(instance, dld, *surface)), memory_allocator(device), state_tracker(),
109 scheduler(device, state_tracker), 95 scheduler(device, state_tracker),
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h
index 89e98425e..590bc1c64 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.h
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.h
@@ -35,8 +35,6 @@ class GPU;
35 35
36namespace Vulkan { 36namespace Vulkan {
37 37
38using DebugCallback = std::variant<vk::DebugUtilsMessenger, vk::DebugReportCallback>;
39
40Device CreateDevice(const vk::Instance& instance, const vk::InstanceDispatch& dld, 38Device CreateDevice(const vk::Instance& instance, const vk::InstanceDispatch& dld,
41 VkSurfaceKHR surface); 39 VkSurfaceKHR surface);
42 40
@@ -75,7 +73,7 @@ private:
75 vk::InstanceDispatch dld; 73 vk::InstanceDispatch dld;
76 74
77 vk::Instance instance; 75 vk::Instance instance;
78 DebugCallback debug_callback; 76 vk::DebugUtilsMessenger debug_messenger;
79 vk::SurfaceKHR surface; 77 vk::SurfaceKHR surface;
80 78
81 ScreenInfo screen_info; 79 ScreenInfo screen_info;