From 2ab66390f8a461b074cb3cf6073b8f9d60875436 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 3 Jan 2022 20:17:57 +0100 Subject: [PATCH] Vulkan: Check for vkSetDebugUtilsObjectNameEXT before using it Fixes a crash that has been present on Android (and probably also macOS) since f6883a0. --- Source/Core/VideoBackends/Vulkan/VKShader.cpp | 4 ++-- Source/Core/VideoBackends/Vulkan/VKTexture.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoBackends/Vulkan/VKShader.cpp b/Source/Core/VideoBackends/Vulkan/VKShader.cpp index 3d5beae387..650ac85120 100644 --- a/Source/Core/VideoBackends/Vulkan/VKShader.cpp +++ b/Source/Core/VideoBackends/Vulkan/VKShader.cpp @@ -17,7 +17,7 @@ VKShader::VKShader(ShaderStage stage, std::vector spv, VkShaderModule mod, : AbstractShader(stage), m_spv(std::move(spv)), m_module(mod), m_compute_pipeline(VK_NULL_HANDLE), m_name(name) { - if (!m_name.empty()) + if (!m_name.empty() && vkSetDebugUtilsObjectNameEXT) { VkDebugUtilsObjectNameInfoEXT name_info = {}; name_info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT; @@ -32,7 +32,7 @@ VKShader::VKShader(std::vector spv, VkPipeline compute_pipeline, std::strin : AbstractShader(ShaderStage::Compute), m_spv(std::move(spv)), m_module(VK_NULL_HANDLE), m_compute_pipeline(compute_pipeline), m_name(name) { - if (!m_name.empty()) + if (!m_name.empty() && vkSetDebugUtilsObjectNameEXT) { VkDebugUtilsObjectNameInfoEXT name_info = {}; name_info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT; diff --git a/Source/Core/VideoBackends/Vulkan/VKTexture.cpp b/Source/Core/VideoBackends/Vulkan/VKTexture.cpp index 98128c85f6..b47a5d6362 100644 --- a/Source/Core/VideoBackends/Vulkan/VKTexture.cpp +++ b/Source/Core/VideoBackends/Vulkan/VKTexture.cpp @@ -29,7 +29,7 @@ VKTexture::VKTexture(const TextureConfig& tex_config, VkDeviceMemory device_memo : AbstractTexture(tex_config), m_device_memory(device_memory), m_image(image), m_layout(layout), m_compute_layout(compute_layout), m_name(name) { - if (!m_name.empty()) + if (!m_name.empty() && vkSetDebugUtilsObjectNameEXT) { VkDebugUtilsObjectNameInfoEXT name_info = {}; name_info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;