radv: Use radv_CmdUpdateBuffer instead of radv_update_buffer_cp for geometry info writes
This fixes some hangs and avoids an assert if geometry infos are bigger than 1KB.
Fixes: 97ffaea5
("radv: Add Radeon Raytracing Analyzer capturing layer")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18370>
This commit is contained in:

committed by
Marge Bot

parent
e55b60d0bb
commit
4f846468e1
@@ -944,9 +944,13 @@ radv_CmdBuildAccelerationStructuresKHR(
|
|||||||
radv_update_buffer_cp(cmd_buffer,
|
radv_update_buffer_cp(cmd_buffer,
|
||||||
radv_buffer_get_va(accel_struct->bo) + accel_struct->mem_offset + base,
|
radv_buffer_get_va(accel_struct->bo) + accel_struct->mem_offset + base,
|
||||||
(const char *)&header + base, sizeof(header) - base);
|
(const char *)&header + base, sizeof(header) - base);
|
||||||
radv_update_buffer_cp(cmd_buffer,
|
|
||||||
radv_accel_struct_get_va(accel_struct) + bvh_states[i].node_offset,
|
struct radv_buffer accel_struct_buffer;
|
||||||
geometry_infos, geometry_infos_size);
|
radv_buffer_init(&accel_struct_buffer, cmd_buffer->device, accel_struct->bo,
|
||||||
|
accel_struct->size, accel_struct->mem_offset);
|
||||||
|
radv_CmdUpdateBuffer(commandBuffer, radv_buffer_to_handle(&accel_struct_buffer),
|
||||||
|
bvh_states[i].node_offset, geometry_infos_size, geometry_infos);
|
||||||
|
radv_buffer_finish(&accel_struct_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
Reference in New Issue
Block a user