VK: Don't assert when it fails to set debug object name. (#3499)

* VK: Don't assert when it fails to set debug object name.

* VK: Show VkResult as decimal to match vulkan.h.
This commit is contained in:
Branimir Karadžić
2025-11-18 11:39:19 -08:00
committed by GitHub
parent ee2072d02f
commit df6e5ced62
2 changed files with 39 additions and 31 deletions

View File

@@ -894,8 +894,6 @@ VK_IMPORT_DEVICE
VKENUM(VK_INCOMPLETE);
VKENUM(VK_ERROR_OUT_OF_HOST_MEMORY);
VKENUM(VK_ERROR_OUT_OF_DEVICE_MEMORY);
VKENUM(VK_ERROR_OUT_OF_POOL_MEMORY);
VKENUM(VK_ERROR_FRAGMENTED_POOL);
VKENUM(VK_ERROR_INITIALIZATION_FAILED);
VKENUM(VK_ERROR_DEVICE_LOST);
VKENUM(VK_ERROR_MEMORY_MAP_FAILED);
@@ -905,12 +903,20 @@ VK_IMPORT_DEVICE
VKENUM(VK_ERROR_INCOMPATIBLE_DRIVER);
VKENUM(VK_ERROR_TOO_MANY_OBJECTS);
VKENUM(VK_ERROR_FORMAT_NOT_SUPPORTED);
VKENUM(VK_ERROR_FRAGMENTED_POOL);
VKENUM(VK_ERROR_UNKNOWN);
VKENUM(VK_ERROR_VALIDATION_FAILED);
VKENUM(VK_ERROR_OUT_OF_POOL_MEMORY);
VKENUM(VK_ERROR_INVALID_EXTERNAL_HANDLE);
VKENUM(VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS);
VKENUM(VK_ERROR_FRAGMENTATION);
VKENUM(VK_PIPELINE_COMPILE_REQUIRED);
VKENUM(VK_ERROR_NOT_PERMITTED);
VKENUM(VK_ERROR_SURFACE_LOST_KHR);
VKENUM(VK_ERROR_NATIVE_WINDOW_IN_USE_KHR);
VKENUM(VK_SUBOPTIMAL_KHR);
VKENUM(VK_ERROR_OUT_OF_DATE_KHR);
VKENUM(VK_ERROR_INCOMPATIBLE_DISPLAY_KHR);
VKENUM(VK_ERROR_VALIDATION_FAILED_EXT);
#undef VKENUM
default: break;
}
@@ -922,26 +928,26 @@ VK_IMPORT_DEVICE
template<typename Ty>
constexpr VkObjectType getType();
template<> VkObjectType getType<VkBuffer >() { return VK_OBJECT_TYPE_BUFFER; }
template<> VkObjectType getType<VkCommandPool >() { return VK_OBJECT_TYPE_COMMAND_POOL; }
template<> VkObjectType getType<VkDescriptorPool >() { return VK_OBJECT_TYPE_DESCRIPTOR_POOL; }
template<> VkObjectType getType<VkDescriptorSet >() { return VK_OBJECT_TYPE_DESCRIPTOR_SET; }
template<> VkObjectType getType<VkDescriptorSetLayout>() { return VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT; }
template<> VkObjectType getType<VkDeviceMemory >() { return VK_OBJECT_TYPE_DEVICE_MEMORY; }
template<> VkObjectType getType<VkFence >() { return VK_OBJECT_TYPE_FENCE; }
template<> VkObjectType getType<VkFramebuffer >() { return VK_OBJECT_TYPE_FRAMEBUFFER; }
template<> VkObjectType getType<VkImage >() { return VK_OBJECT_TYPE_IMAGE; }
template<> VkObjectType getType<VkImageView >() { return VK_OBJECT_TYPE_IMAGE_VIEW; }
template<> VkObjectType getType<VkPipeline >() { return VK_OBJECT_TYPE_PIPELINE; }
template<> VkObjectType getType<VkPipelineCache >() { return VK_OBJECT_TYPE_PIPELINE_CACHE; }
template<> VkObjectType getType<VkPipelineLayout >() { return VK_OBJECT_TYPE_PIPELINE_LAYOUT; }
template<> VkObjectType getType<VkQueryPool >() { return VK_OBJECT_TYPE_QUERY_POOL; }
template<> VkObjectType getType<VkRenderPass >() { return VK_OBJECT_TYPE_RENDER_PASS; }
template<> VkObjectType getType<VkSampler >() { return VK_OBJECT_TYPE_SAMPLER; }
template<> VkObjectType getType<VkSemaphore >() { return VK_OBJECT_TYPE_SEMAPHORE; }
template<> VkObjectType getType<VkShaderModule >() { return VK_OBJECT_TYPE_SHADER_MODULE; }
template<> VkObjectType getType<VkSurfaceKHR >() { return VK_OBJECT_TYPE_SURFACE_KHR; }
template<> VkObjectType getType<VkSwapchainKHR >() { return VK_OBJECT_TYPE_SWAPCHAIN_KHR; }
template<> constexpr VkObjectType getType<VkBuffer >() { return VK_OBJECT_TYPE_BUFFER; }
template<> constexpr VkObjectType getType<VkCommandPool >() { return VK_OBJECT_TYPE_COMMAND_POOL; }
template<> constexpr VkObjectType getType<VkDescriptorPool >() { return VK_OBJECT_TYPE_DESCRIPTOR_POOL; }
template<> constexpr VkObjectType getType<VkDescriptorSet >() { return VK_OBJECT_TYPE_DESCRIPTOR_SET; }
template<> constexpr VkObjectType getType<VkDescriptorSetLayout>() { return VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT; }
template<> constexpr VkObjectType getType<VkDeviceMemory >() { return VK_OBJECT_TYPE_DEVICE_MEMORY; }
template<> constexpr VkObjectType getType<VkFence >() { return VK_OBJECT_TYPE_FENCE; }
template<> constexpr VkObjectType getType<VkFramebuffer >() { return VK_OBJECT_TYPE_FRAMEBUFFER; }
template<> constexpr VkObjectType getType<VkImage >() { return VK_OBJECT_TYPE_IMAGE; }
template<> constexpr VkObjectType getType<VkImageView >() { return VK_OBJECT_TYPE_IMAGE_VIEW; }
template<> constexpr VkObjectType getType<VkPipeline >() { return VK_OBJECT_TYPE_PIPELINE; }
template<> constexpr VkObjectType getType<VkPipelineCache >() { return VK_OBJECT_TYPE_PIPELINE_CACHE; }
template<> constexpr VkObjectType getType<VkPipelineLayout >() { return VK_OBJECT_TYPE_PIPELINE_LAYOUT; }
template<> constexpr VkObjectType getType<VkQueryPool >() { return VK_OBJECT_TYPE_QUERY_POOL; }
template<> constexpr VkObjectType getType<VkRenderPass >() { return VK_OBJECT_TYPE_RENDER_PASS; }
template<> constexpr VkObjectType getType<VkSampler >() { return VK_OBJECT_TYPE_SAMPLER; }
template<> constexpr VkObjectType getType<VkSemaphore >() { return VK_OBJECT_TYPE_SEMAPHORE; }
template<> constexpr VkObjectType getType<VkShaderModule >() { return VK_OBJECT_TYPE_SHADER_MODULE; }
template<> constexpr VkObjectType getType<VkSurfaceKHR >() { return VK_OBJECT_TYPE_SURFACE_KHR; }
template<> constexpr VkObjectType getType<VkSwapchainKHR >() { return VK_OBJECT_TYPE_SWAPCHAIN_KHR; }
template<typename Ty>
static BX_NO_INLINE void setDebugObjectName(VkDevice _device, Ty _object, const char* _format, ...)
@@ -963,7 +969,7 @@ VK_IMPORT_DEVICE
ni.objectHandle = uint64_t(_object.vk);
ni.pObjectName = temp;
VK_CHECK(vkSetDebugUtilsObjectNameEXT(_device, &ni) );
VK_CHECK_W(vkSetDebugUtilsObjectNameEXT(_device, &ni) );
}
}

View File

@@ -245,17 +245,19 @@
VK_DESTROY_FUNC(ShaderModule); \
VK_DESTROY_FUNC(SwapchainKHR); \
#define _VK_CHECK(_check, _call) \
BX_MACRO_BLOCK_BEGIN \
/*BX_TRACE(#_call);*/ \
VkResult vkresult = _call; \
_check(VK_SUCCESS == vkresult, #_call "; VK error 0x%x: %s", vkresult, getName(vkresult) ); \
#define _VK_CHECK(_check, _call) \
BX_MACRO_BLOCK_BEGIN \
/*BX_TRACE(#_call);*/ \
VkResult vkresult = _call; \
_check(VK_SUCCESS == vkresult, #_call "; VK error %d: %s", vkresult, getName(vkresult) ); \
BX_MACRO_BLOCK_END
#if BGFX_CONFIG_DEBUG
# define VK_CHECK(_call) _VK_CHECK(BX_ASSERT, _call)
# define VK_CHECK(_call) _VK_CHECK(BX_ASSERT, _call)
# define VK_CHECK_W(_call) _VK_CHECK(BX_WARN, _call)
#else
# define VK_CHECK(_call) _call
# define VK_CHECK(_call) _call
# define VK_CHECK_W(_call) _call
#endif // BGFX_CONFIG_DEBUG
#if BGFX_CONFIG_DEBUG_ANNOTATION