WIP: Vulkan: Workbench #107886

Closed
Jeroen Bakker wants to merge 88 commits from Jeroen-Bakker:vulkan-draw-manager-workbench into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
2 changed files with 16 additions and 40 deletions
Showing only changes of commit 3366a34625 - Show all commits

View File

@ -221,25 +221,12 @@ VKDebuggingTools::~VKDebuggingTools()
{ {
BLI_assert(vk_debug_utils_messenger == nullptr); BLI_assert(vk_debug_utils_messenger == nullptr);
}; };
void VKDebuggingTools::print_vulkan_version()
{
uint32_t instanceVersion = VK_API_VERSION_1_0;
vkEnumerateInstanceVersion(&instanceVersion);
uint32_t major = VK_VERSION_MAJOR(instanceVersion);
uint32_t minor = VK_VERSION_MINOR(instanceVersion);
uint32_t patch = VK_VERSION_PATCH(instanceVersion);
printf("Vulkan Version:%u.%u.%u\n", major, minor, patch);
}
void VKDebuggingTools::print_labels(const VkDebugUtilsMessengerCallbackDataEXT *callback_data) void VKDebuggingTools::print_labels(const VkDebugUtilsMessengerCallbackDataEXT *callback_data)
{ {
std::stringstream ss; std::stringstream ss;
if (callback_data->objectCount > 0) {
ss << std::endl;
ss << callback_data->objectCount << " Object[s] related \n";
for (uint32_t object = 0; object < callback_data->objectCount; ++object) { for (uint32_t object = 0; object < callback_data->objectCount; ++object) {
ss << "ObjectType[" << to_string(callback_data->pObjects[object].objectType) << "],"; ss << " - ObjectType[" << to_string(callback_data->pObjects[object].objectType) << "],";
ss << "Handle[0x" << std::hex ss << "Handle[0x" << std::hex
<< static_cast<uintptr_t>(callback_data->pObjects[object].objectHandle) << "]"; << static_cast<uintptr_t>(callback_data->pObjects[object].objectHandle) << "]";
if (callback_data->pObjects[object].pObjectName) { if (callback_data->pObjects[object].pObjectName) {
@ -247,27 +234,18 @@ void VKDebuggingTools::print_labels(const VkDebugUtilsMessengerCallbackDataEXT *
} }
ss << std::endl; ss << std::endl;
} }
}
if (callback_data->cmdBufLabelCount > 0) {
ss << std::endl;
ss << callback_data->cmdBufLabelCount << " Command Buffer Label[s] " << std::endl;
for (uint32_t label = 0; label < callback_data->cmdBufLabelCount; ++label) { for (uint32_t label = 0; label < callback_data->cmdBufLabelCount; ++label) {
if (callback_data->pCmdBufLabels[label].pLabelName) { if (callback_data->pCmdBufLabels[label].pLabelName) {
ss << "CmdBufLabelName : " << callback_data->pCmdBufLabels[label].pLabelName << std::endl; ss << " - CommandBuffer : " << callback_data->pCmdBufLabels[label].pLabelName << std::endl;
} }
} }
}
if (callback_data->queueLabelCount > 0) {
ss << std::endl;
ss << callback_data->queueLabelCount << " Queue Label[s]\n";
for (uint32_t label = 0; label < callback_data->queueLabelCount; ++label) { for (uint32_t label = 0; label < callback_data->queueLabelCount; ++label) {
if (callback_data->pQueueLabels[label].pLabelName) { if (callback_data->pQueueLabels[label].pLabelName) {
ss << "QueueLabelName : " << callback_data->pQueueLabels[label].pLabelName << std::endl; ss << " - Queue : " << callback_data->pQueueLabels[label].pLabelName << std::endl;
} }
} }
} ss << std::endl;
printf("%s\n", ss.str().c_str()); printf("%s", ss.str().c_str());
fflush(stdout);
} }
VKAPI_ATTR VkBool32 VKAPI_CALL VKAPI_ATTR VkBool32 VKAPI_CALL
messenger_callback(VkDebugUtilsMessageSeverityFlagBitsEXT message_severity, messenger_callback(VkDebugUtilsMessageSeverityFlagBitsEXT message_severity,
@ -349,7 +327,6 @@ messenger_callback(VkDebugUtilsMessageSeverityFlagBitsEXT message_severity,
VkResult VKDebuggingTools::init_messenger(VkInstance vk_instance) VkResult VKDebuggingTools::init_messenger(VkInstance vk_instance)
{ {
print_vulkan_version();
vk_message_id_number_ignored.clear(); vk_message_id_number_ignored.clear();
BLI_assert(enabled); BLI_assert(enabled);

View File

@ -54,7 +54,6 @@ class VKDebuggingTools {
VkDebugUtilsMessengerEXT vk_debug_utils_messenger = nullptr; VkDebugUtilsMessengerEXT vk_debug_utils_messenger = nullptr;
Set<int32_t> vk_message_id_number_ignored; Set<int32_t> vk_message_id_number_ignored;
std::mutex ignore_mutex; std::mutex ignore_mutex;
void print_vulkan_version();
void add_group(int32_t id_number); void add_group(int32_t id_number);
void remove_group(int32_t id_number); void remove_group(int32_t id_number);
}; };