db1c4b125f
This validation error is spammed on some titles, asserting that VkDescriptorSet 0x0[] was destroyed. This is likely a validation layer bug when using VK_KHR_push_descriptor, which can avoid using traditional VkDescriptorSet. It should be safe to ignore for now.
55 lines
2.4 KiB
C++
55 lines
2.4 KiB
C++
// Copyright 2020 yuzu Emulator Project
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#include <string_view>
|
|
#include "common/logging/log.h"
|
|
#include "video_core/vulkan_common/vulkan_debug_callback.h"
|
|
|
|
namespace Vulkan {
|
|
namespace {
|
|
VkBool32 Callback(VkDebugUtilsMessageSeverityFlagBitsEXT severity,
|
|
VkDebugUtilsMessageTypeFlagsEXT type,
|
|
const VkDebugUtilsMessengerCallbackDataEXT* data,
|
|
[[maybe_unused]] void* user_data) {
|
|
// Skip logging known false-positive validation errors
|
|
switch (static_cast<u32>(data->messageIdNumber)) {
|
|
case 0x682a878au: // VUID-vkCmdBindVertexBuffers2EXT-pBuffers-parameter
|
|
case 0x99fb7dfdu: // UNASSIGNED-RequiredParameter (vkCmdBindVertexBuffers2EXT pBuffers[0])
|
|
case 0xe8616bf2u: // Bound VkDescriptorSet 0x0[] was destroyed. Likely push_descriptor related
|
|
return VK_FALSE;
|
|
default:
|
|
break;
|
|
}
|
|
const std::string_view message{data->pMessage};
|
|
if (severity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) {
|
|
LOG_CRITICAL(Render_Vulkan, "{}", message);
|
|
} else if (severity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) {
|
|
LOG_WARNING(Render_Vulkan, "{}", message);
|
|
} else if (severity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT) {
|
|
LOG_INFO(Render_Vulkan, "{}", message);
|
|
} else if (severity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) {
|
|
LOG_DEBUG(Render_Vulkan, "{}", message);
|
|
}
|
|
return VK_FALSE;
|
|
}
|
|
} // Anonymous namespace
|
|
|
|
vk::DebugUtilsMessenger CreateDebugCallback(const vk::Instance& instance) {
|
|
return instance.CreateDebugUtilsMessenger(VkDebugUtilsMessengerCreateInfoEXT{
|
|
.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
|
|
.pNext = nullptr,
|
|
.flags = 0,
|
|
.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT |
|
|
VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT |
|
|
VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT |
|
|
VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
|
|
.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |
|
|
VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT |
|
|
VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,
|
|
.pfnUserCallback = Callback,
|
|
.pUserData = nullptr,
|
|
});
|
|
}
|
|
|
|
} // namespace Vulkan
|