mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-19 07:08:05 +02:00
radv: fix copying acceleration structure with DAC
Because buffer is NULL.
Fixes: a97c889a7b ("radv: implement VK_KHR_device_address_commands")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41505>
This commit is contained in:
parent
116a0eacd1
commit
d1fd6b1ef1
1 changed files with 20 additions and 4 deletions
|
|
@ -1120,8 +1120,16 @@ radv_CmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer, const VkCopy
|
|||
cmd_buffer->state.flush_bits |= radv_dst_access_flush(cmd_buffer, VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,
|
||||
VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, 0, NULL, NULL);
|
||||
|
||||
radv_CmdDispatchIndirect(commandBuffer, vk_buffer_to_handle(src->buffer),
|
||||
src->offset + offsetof(struct radv_accel_struct_header, copy_dispatch_size));
|
||||
const uint64_t offset = offsetof(struct radv_accel_struct_header, copy_dispatch_size);
|
||||
|
||||
const VkDispatchIndirect2InfoKHR info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DISPATCH_INDIRECT_2_INFO_KHR,
|
||||
.addressRange.address = vk_acceleration_structure_get_va(src) + offset,
|
||||
.addressRange.size = 12,
|
||||
.addressFlags = src->buffer ? src->buffer->address_flags : 0,
|
||||
};
|
||||
|
||||
radv_CmdDispatchIndirect2KHR(commandBuffer, &info);
|
||||
|
||||
radv_meta_end(cmd_buffer);
|
||||
}
|
||||
|
|
@ -1202,8 +1210,16 @@ radv_CmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,
|
|||
cmd_buffer->state.flush_bits |= radv_dst_access_flush(cmd_buffer, VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,
|
||||
VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, 0, NULL, NULL);
|
||||
|
||||
radv_CmdDispatchIndirect(commandBuffer, vk_buffer_to_handle(src->buffer),
|
||||
src->offset + offsetof(struct radv_accel_struct_header, copy_dispatch_size));
|
||||
const uint64_t offset = offsetof(struct radv_accel_struct_header, copy_dispatch_size);
|
||||
|
||||
const VkDispatchIndirect2InfoKHR info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DISPATCH_INDIRECT_2_INFO_KHR,
|
||||
.addressRange.address = vk_acceleration_structure_get_va(src) + offset,
|
||||
.addressRange.size = 12,
|
||||
.addressFlags = src->buffer ? src->buffer->address_flags : 0,
|
||||
};
|
||||
|
||||
radv_CmdDispatchIndirect2KHR(commandBuffer, &info);
|
||||
|
||||
if (radv_use_bvh8(pdev)) {
|
||||
/* Wait for the main copy dispatch to finish. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue