diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_swapchain.cpp | 5 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vk_enum_string_helper.h | 8 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_wrapper.cpp | 107 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_wrapper.h | 3 |
5 files changed, 15 insertions, 110 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index 5ed0ad0ed..ae7065e2a 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt | |||
| @@ -304,7 +304,7 @@ target_link_options(video_core PRIVATE ${FFmpeg_LDFLAGS}) | |||
| 304 | 304 | ||
| 305 | add_dependencies(video_core host_shaders) | 305 | add_dependencies(video_core host_shaders) |
| 306 | target_include_directories(video_core PRIVATE ${HOST_SHADERS_INCLUDE}) | 306 | target_include_directories(video_core PRIVATE ${HOST_SHADERS_INCLUDE}) |
| 307 | target_link_libraries(video_core PRIVATE sirit Vulkan::Headers GPUOpen::VulkanMemoryAllocator) | 307 | target_link_libraries(video_core PRIVATE sirit Vulkan::Headers Vulkan::UtilityHeaders GPUOpen::VulkanMemoryAllocator) |
| 308 | 308 | ||
| 309 | if (ENABLE_NSIGHT_AFTERMATH) | 309 | if (ENABLE_NSIGHT_AFTERMATH) |
| 310 | if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK}) | 310 | if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK}) |
diff --git a/src/video_core/renderer_vulkan/vk_swapchain.cpp b/src/video_core/renderer_vulkan/vk_swapchain.cpp index 86a30dcd1..4f1d3b4e3 100644 --- a/src/video_core/renderer_vulkan/vk_swapchain.cpp +++ b/src/video_core/renderer_vulkan/vk_swapchain.cpp | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include "core/core.h" | 12 | #include "core/core.h" |
| 13 | #include "video_core/renderer_vulkan/vk_scheduler.h" | 13 | #include "video_core/renderer_vulkan/vk_scheduler.h" |
| 14 | #include "video_core/renderer_vulkan/vk_swapchain.h" | 14 | #include "video_core/renderer_vulkan/vk_swapchain.h" |
| 15 | #include "video_core/vulkan_common/vk_enum_string_helper.h" | ||
| 15 | #include "video_core/vulkan_common/vulkan_device.h" | 16 | #include "video_core/vulkan_common/vulkan_device.h" |
| 16 | #include "video_core/vulkan_common/vulkan_wrapper.h" | 17 | #include "video_core/vulkan_common/vulkan_wrapper.h" |
| 17 | #include "vulkan/vulkan_core.h" | 18 | #include "vulkan/vulkan_core.h" |
| @@ -151,7 +152,7 @@ bool Swapchain::AcquireNextImage() { | |||
| 151 | vk::Check(result); | 152 | vk::Check(result); |
| 152 | break; | 153 | break; |
| 153 | default: | 154 | default: |
| 154 | LOG_ERROR(Render_Vulkan, "vkAcquireNextImageKHR returned {}", vk::ToString(result)); | 155 | LOG_ERROR(Render_Vulkan, "vkAcquireNextImageKHR returned {}", string_VkResult(result)); |
| 155 | break; | 156 | break; |
| 156 | } | 157 | } |
| 157 | 158 | ||
| @@ -187,7 +188,7 @@ void Swapchain::Present(VkSemaphore render_semaphore) { | |||
| 187 | vk::Check(result); | 188 | vk::Check(result); |
| 188 | break; | 189 | break; |
| 189 | default: | 190 | default: |
| 190 | LOG_CRITICAL(Render_Vulkan, "Failed to present with error {}", vk::ToString(result)); | 191 | LOG_CRITICAL(Render_Vulkan, "Failed to present with error {}", string_VkResult(result)); |
| 191 | break; | 192 | break; |
| 192 | } | 193 | } |
| 193 | ++frame_index; | 194 | ++frame_index; |
diff --git a/src/video_core/vulkan_common/vk_enum_string_helper.h b/src/video_core/vulkan_common/vk_enum_string_helper.h new file mode 100644 index 000000000..a1515814c --- /dev/null +++ b/src/video_core/vulkan_common/vk_enum_string_helper.h | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project | ||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | ||
| 3 | |||
| 4 | #pragma once | ||
| 5 | |||
| 6 | #include "video_core/vulkan_common/vulkan.h" | ||
| 7 | |||
| 8 | #include <vulkan/vk_enum_string_helper.h> | ||
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp index 3966bd61e..f1aa45551 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.cpp +++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | 9 | ||
| 10 | #include "common/common_types.h" | 10 | #include "common/common_types.h" |
| 11 | #include "common/logging/log.h" | 11 | #include "common/logging/log.h" |
| 12 | #include "video_core/vulkan_common/vk_enum_string_helper.h" | ||
| 12 | #include "video_core/vulkan_common/vma.h" | 13 | #include "video_core/vulkan_common/vma.h" |
| 13 | #include "video_core/vulkan_common/vulkan_wrapper.h" | 14 | #include "video_core/vulkan_common/vulkan_wrapper.h" |
| 14 | 15 | ||
| @@ -298,109 +299,7 @@ bool Load(VkInstance instance, InstanceDispatch& dld) noexcept { | |||
| 298 | } | 299 | } |
| 299 | 300 | ||
| 300 | const char* Exception::what() const noexcept { | 301 | const char* Exception::what() const noexcept { |
| 301 | return ToString(result); | 302 | return string_VkResult(result); |
| 302 | } | ||
| 303 | |||
| 304 | const char* ToString(VkResult result) noexcept { | ||
| 305 | switch (result) { | ||
| 306 | case VkResult::VK_SUCCESS: | ||
| 307 | return "VK_SUCCESS"; | ||
| 308 | case VkResult::VK_NOT_READY: | ||
| 309 | return "VK_NOT_READY"; | ||
| 310 | case VkResult::VK_TIMEOUT: | ||
| 311 | return "VK_TIMEOUT"; | ||
| 312 | case VkResult::VK_EVENT_SET: | ||
| 313 | return "VK_EVENT_SET"; | ||
| 314 | case VkResult::VK_EVENT_RESET: | ||
| 315 | return "VK_EVENT_RESET"; | ||
| 316 | case VkResult::VK_INCOMPLETE: | ||
| 317 | return "VK_INCOMPLETE"; | ||
| 318 | case VkResult::VK_ERROR_OUT_OF_HOST_MEMORY: | ||
| 319 | return "VK_ERROR_OUT_OF_HOST_MEMORY"; | ||
| 320 | case VkResult::VK_ERROR_OUT_OF_DEVICE_MEMORY: | ||
| 321 | return "VK_ERROR_OUT_OF_DEVICE_MEMORY"; | ||
| 322 | case VkResult::VK_ERROR_INITIALIZATION_FAILED: | ||
| 323 | return "VK_ERROR_INITIALIZATION_FAILED"; | ||
| 324 | case VkResult::VK_ERROR_DEVICE_LOST: | ||
| 325 | return "VK_ERROR_DEVICE_LOST"; | ||
| 326 | case VkResult::VK_ERROR_MEMORY_MAP_FAILED: | ||
| 327 | return "VK_ERROR_MEMORY_MAP_FAILED"; | ||
| 328 | case VkResult::VK_ERROR_LAYER_NOT_PRESENT: | ||
| 329 | return "VK_ERROR_LAYER_NOT_PRESENT"; | ||
| 330 | case VkResult::VK_ERROR_EXTENSION_NOT_PRESENT: | ||
| 331 | return "VK_ERROR_EXTENSION_NOT_PRESENT"; | ||
| 332 | case VkResult::VK_ERROR_FEATURE_NOT_PRESENT: | ||
| 333 | return "VK_ERROR_FEATURE_NOT_PRESENT"; | ||
| 334 | case VkResult::VK_ERROR_INCOMPATIBLE_DRIVER: | ||
| 335 | return "VK_ERROR_INCOMPATIBLE_DRIVER"; | ||
| 336 | case VkResult::VK_ERROR_TOO_MANY_OBJECTS: | ||
| 337 | return "VK_ERROR_TOO_MANY_OBJECTS"; | ||
| 338 | case VkResult::VK_ERROR_FORMAT_NOT_SUPPORTED: | ||
| 339 | return "VK_ERROR_FORMAT_NOT_SUPPORTED"; | ||
| 340 | case VkResult::VK_ERROR_FRAGMENTED_POOL: | ||
| 341 | return "VK_ERROR_FRAGMENTED_POOL"; | ||
| 342 | case VkResult::VK_ERROR_OUT_OF_POOL_MEMORY: | ||
| 343 | return "VK_ERROR_OUT_OF_POOL_MEMORY"; | ||
| 344 | case VkResult::VK_ERROR_INVALID_EXTERNAL_HANDLE: | ||
| 345 | return "VK_ERROR_INVALID_EXTERNAL_HANDLE"; | ||
| 346 | case VkResult::VK_ERROR_SURFACE_LOST_KHR: | ||
| 347 | return "VK_ERROR_SURFACE_LOST_KHR"; | ||
| 348 | case VkResult::VK_ERROR_NATIVE_WINDOW_IN_USE_KHR: | ||
| 349 | return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR"; | ||
| 350 | case VkResult::VK_SUBOPTIMAL_KHR: | ||
| 351 | return "VK_SUBOPTIMAL_KHR"; | ||
| 352 | case VkResult::VK_ERROR_OUT_OF_DATE_KHR: | ||
| 353 | return "VK_ERROR_OUT_OF_DATE_KHR"; | ||
| 354 | case VkResult::VK_ERROR_INCOMPATIBLE_DISPLAY_KHR: | ||
| 355 | return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR"; | ||
| 356 | case VkResult::VK_ERROR_VALIDATION_FAILED_EXT: | ||
| 357 | return "VK_ERROR_VALIDATION_FAILED_EXT"; | ||
| 358 | case VkResult::VK_ERROR_INVALID_SHADER_NV: | ||
| 359 | return "VK_ERROR_INVALID_SHADER_NV"; | ||
| 360 | case VkResult::VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR: | ||
| 361 | return "VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR"; | ||
| 362 | case VkResult::VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR: | ||
| 363 | return "VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR"; | ||
| 364 | case VkResult::VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR: | ||
| 365 | return "VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR"; | ||
| 366 | case VkResult::VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR: | ||
| 367 | return "VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR"; | ||
| 368 | case VkResult::VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR: | ||
| 369 | return "VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR"; | ||
| 370 | case VkResult::VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR: | ||
| 371 | return "VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR"; | ||
| 372 | case VkResult::VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT: | ||
| 373 | return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT"; | ||
| 374 | case VkResult::VK_ERROR_FRAGMENTATION_EXT: | ||
| 375 | return "VK_ERROR_FRAGMENTATION_EXT"; | ||
| 376 | case VkResult::VK_ERROR_NOT_PERMITTED_EXT: | ||
| 377 | return "VK_ERROR_NOT_PERMITTED_EXT"; | ||
| 378 | case VkResult::VK_ERROR_INVALID_DEVICE_ADDRESS_EXT: | ||
| 379 | return "VK_ERROR_INVALID_DEVICE_ADDRESS_EXT"; | ||
| 380 | case VkResult::VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT: | ||
| 381 | return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT"; | ||
| 382 | case VkResult::VK_ERROR_UNKNOWN: | ||
| 383 | return "VK_ERROR_UNKNOWN"; | ||
| 384 | case VkResult::VK_THREAD_IDLE_KHR: | ||
| 385 | return "VK_THREAD_IDLE_KHR"; | ||
| 386 | case VkResult::VK_THREAD_DONE_KHR: | ||
| 387 | return "VK_THREAD_DONE_KHR"; | ||
| 388 | case VkResult::VK_OPERATION_DEFERRED_KHR: | ||
| 389 | return "VK_OPERATION_DEFERRED_KHR"; | ||
| 390 | case VkResult::VK_OPERATION_NOT_DEFERRED_KHR: | ||
| 391 | return "VK_OPERATION_NOT_DEFERRED_KHR"; | ||
| 392 | case VkResult::VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR: | ||
| 393 | return "VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR"; | ||
| 394 | case VkResult::VK_PIPELINE_COMPILE_REQUIRED_EXT: | ||
| 395 | return "VK_PIPELINE_COMPILE_REQUIRED_EXT"; | ||
| 396 | case VkResult::VK_RESULT_MAX_ENUM: | ||
| 397 | return "VK_RESULT_MAX_ENUM"; | ||
| 398 | case VkResult::VK_ERROR_COMPRESSION_EXHAUSTED_EXT: | ||
| 399 | return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT"; | ||
| 400 | case VkResult::VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT: | ||
| 401 | return "VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT"; | ||
| 402 | } | ||
| 403 | return "Unknown"; | ||
| 404 | } | 303 | } |
| 405 | 304 | ||
| 406 | void Destroy(VkInstance instance, const InstanceDispatch& dld) noexcept { | 305 | void Destroy(VkInstance instance, const InstanceDispatch& dld) noexcept { |
| @@ -1067,7 +966,7 @@ u32 AvailableVersion(const InstanceDispatch& dld) noexcept { | |||
| 1067 | u32 version; | 966 | u32 version; |
| 1068 | if (const VkResult result = vkEnumerateInstanceVersion(&version); result != VK_SUCCESS) { | 967 | if (const VkResult result = vkEnumerateInstanceVersion(&version); result != VK_SUCCESS) { |
| 1069 | LOG_ERROR(Render_Vulkan, "vkEnumerateInstanceVersion returned {}, assuming Vulkan 1.1", | 968 | LOG_ERROR(Render_Vulkan, "vkEnumerateInstanceVersion returned {}, assuming Vulkan 1.1", |
| 1070 | ToString(result)); | 969 | string_VkResult(result)); |
| 1071 | return VK_API_VERSION_1_1; | 970 | return VK_API_VERSION_1_1; |
| 1072 | } | 971 | } |
| 1073 | return version; | 972 | return version; |
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h index a0c70797f..757f3c8af 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.h +++ b/src/video_core/vulkan_common/vulkan_wrapper.h | |||
| @@ -125,9 +125,6 @@ private: | |||
| 125 | VkResult result; | 125 | VkResult result; |
| 126 | }; | 126 | }; |
| 127 | 127 | ||
| 128 | /// Converts a VkResult enum into a rodata string | ||
| 129 | const char* ToString(VkResult) noexcept; | ||
| 130 | |||
| 131 | /// Throws a Vulkan exception if result is not success. | 128 | /// Throws a Vulkan exception if result is not success. |
| 132 | inline void Check(VkResult result) { | 129 | inline void Check(VkResult result) { |
| 133 | if (result != VK_SUCCESS) { | 130 | if (result != VK_SUCCESS) { |