vulkan: add an enum for the build step

For Anv this will make more sense than strings.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kevin Chuang <kaiwenjon23@gmail.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32483>
This commit is contained in:
Lionel Landwerlin 2024-12-04 16:08:12 +02:00 committed by Marge Bot
parent 877a296b2c
commit 4c32469fa4
2 changed files with 40 additions and 11 deletions

View file

@ -452,6 +452,7 @@ vk_fill_geometry_data(VkAccelerationStructureTypeKHR type, uint32_t first_id, ui
void
vk_accel_struct_cmd_begin_debug_marker(VkCommandBuffer commandBuffer,
enum vk_acceleration_structure_build_step step,
const char *format, ...)
{
VK_FROM_HANDLE(vk_command_buffer, cmd_buffer, commandBuffer);
@ -517,8 +518,11 @@ build_leaves(VkCommandBuffer commandBuffer,
if (result != VK_SUCCESS)
return result;
if (args->emit_markers)
device->as_build_ops->begin_debug_marker(commandBuffer, "build_leaves");
if (args->emit_markers) {
device->as_build_ops->begin_debug_marker(commandBuffer,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_BUILD_LEAVES,
"build_leaves");
}
const struct vk_device_dispatch_table *disp = &device->dispatch_table;
disp->CmdBindPipeline(
@ -576,8 +580,11 @@ morton_generate(VkCommandBuffer commandBuffer, struct vk_device *device,
if (result != VK_SUCCESS)
return result;
if (args->emit_markers)
device->as_build_ops->begin_debug_marker(commandBuffer, "morton_generate");
if (args->emit_markers) {
device->as_build_ops->begin_debug_marker(commandBuffer,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_MORTON_GENERATE,
"morton_generate");
}
const struct vk_device_dispatch_table *disp = &device->dispatch_table;
disp->CmdBindPipeline(
@ -611,8 +618,11 @@ morton_sort(VkCommandBuffer commandBuffer, struct vk_device *device,
{
const struct vk_device_dispatch_table *disp = &device->dispatch_table;
if (args->emit_markers)
device->as_build_ops->begin_debug_marker(commandBuffer, "morton_sort");
if (args->emit_markers) {
device->as_build_ops->begin_debug_marker(commandBuffer,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_MORTON_SORT,
"morton_sort");
}
/* Copyright 2019 The Fuchsia Authors. */
const radix_sort_vk_t *rs = args->radix_sort;
@ -856,8 +866,11 @@ lbvh_build_internal(VkCommandBuffer commandBuffer,
if (result != VK_SUCCESS)
return result;
if (args->emit_markers)
device->as_build_ops->begin_debug_marker(commandBuffer, "lbvh_build_internal");
if (args->emit_markers) {
device->as_build_ops->begin_debug_marker(commandBuffer,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_LBVH_BUILD_INTERNAL,
"lbvh_build_internal");
}
const struct vk_device_dispatch_table *disp = &device->dispatch_table;
disp->CmdBindPipeline(
@ -937,8 +950,11 @@ ploc_build_internal(VkCommandBuffer commandBuffer,
if (result != VK_SUCCESS)
return result;
if (args->emit_markers)
device->as_build_ops->begin_debug_marker(commandBuffer, "ploc_build_internal");
if (args->emit_markers) {
device->as_build_ops->begin_debug_marker(commandBuffer,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_PLOC_BUILD_INTERNAL,
"ploc_build_internal");
}
const struct vk_device_dispatch_table *disp = &device->dispatch_table;
disp->CmdBindPipeline(
@ -992,6 +1008,7 @@ vk_cmd_build_acceleration_structures(VkCommandBuffer commandBuffer,
if (args->emit_markers) {
device->as_build_ops->begin_debug_marker(commandBuffer,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_TOP,
"vkCmdBuildAccelerationStructuresKHR(%u)",
infoCount);
}

View file

@ -32,6 +32,15 @@
extern "C" {
#endif
enum vk_acceleration_structure_build_step {
VK_ACCELERATION_STRUCTURE_BUILD_STEP_TOP,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_BUILD_LEAVES,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_MORTON_GENERATE,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_MORTON_SORT,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_LBVH_BUILD_INTERNAL,
VK_ACCELERATION_STRUCTURE_BUILD_STEP_PLOC_BUILD_INTERNAL,
};
struct vk_acceleration_structure {
struct vk_object_base base;
@ -49,7 +58,9 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(vk_acceleration_structure, base, VkAccelerationSt
#define MAX_UPDATE_PASSES 2
struct vk_acceleration_structure_build_ops {
void (*begin_debug_marker)(VkCommandBuffer commandBuffer, const char *format, ...);
void (*begin_debug_marker)(VkCommandBuffer commandBuffer,
enum vk_acceleration_structure_build_step step,
const char *format, ...);
void (*end_debug_marker)(VkCommandBuffer commandBuffer);
VkDeviceSize (*get_as_size)(VkDevice device,
const VkAccelerationStructureBuildGeometryInfoKHR *pBuildInfo,
@ -128,6 +139,7 @@ vk_fill_geometry_data(VkAccelerationStructureTypeKHR type, uint32_t first_id, ui
const VkAccelerationStructureBuildRangeInfoKHR *build_range_info);
void vk_accel_struct_cmd_begin_debug_marker(VkCommandBuffer commandBuffer,
enum vk_acceleration_structure_build_step step,
const char *format, ...);
void vk_accel_struct_cmd_end_debug_marker(VkCommandBuffer commandBuffer);