diff --git a/src/amd/vulkan/meta/radv_meta.c b/src/amd/vulkan/meta/radv_meta.c index 463502a92f4..d73019db877 100644 --- a/src/amd/vulkan/meta/radv_meta.c +++ b/src/amd/vulkan/meta/radv_meta.c @@ -455,15 +455,15 @@ radv_meta_bind_descriptors(struct radv_cmd_buffer *cmd_buffer, VkPipelineBindPoi radv_CmdSetDescriptorBufferOffsets2EXT(radv_cmd_buffer_to_handle(cmd_buffer), &descriptor_buffer_offsets); } -enum radv_copy_flags +VkAddressCopyFlagsKHR radv_get_copy_flags_from_bo(const struct radeon_winsys_bo *bo) { - enum radv_copy_flags copy_flags = 0; + VkAddressCopyFlagsKHR copy_flags = 0; if (bo->initial_domain & RADEON_DOMAIN_VRAM) - copy_flags |= RADV_COPY_FLAGS_DEVICE_LOCAL; + copy_flags |= VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR; if (bo->is_virtual) - copy_flags |= RADV_COPY_FLAGS_SPARSE; + copy_flags |= VK_ADDRESS_COPY_SPARSE_BIT_KHR; return copy_flags; } diff --git a/src/amd/vulkan/meta/radv_meta.h b/src/amd/vulkan/meta/radv_meta.h index a86b80efa4f..4aef0a3e237 100644 --- a/src/amd/vulkan/meta/radv_meta.h +++ b/src/amd/vulkan/meta/radv_meta.h @@ -42,11 +42,6 @@ enum radv_meta_save_flags { RADV_META_SAVE_COMPUTE_PIPELINE = (1 << 5), }; -enum radv_copy_flags { - RADV_COPY_FLAGS_DEVICE_LOCAL = 1 << 0, - RADV_COPY_FLAGS_SPARSE = 1 << 1, -}; - extern const VkFormat radv_fs_key_format_exemplars[NUM_META_FS_KEYS]; enum radv_meta_object_key_type { @@ -246,7 +241,7 @@ struct radv_meta_blit2d_buffer { uint32_t offset; uint32_t pitch; VkFormat format; - enum radv_copy_flags copy_flags; + VkAddressCopyFlagsKHR copy_flags; }; VkFormat vk_format_for_size(int bs); @@ -325,7 +320,7 @@ uint32_t radv_clear_hiz(struct radv_cmd_buffer *cmd_buffer, struct radv_image *i void radv_update_memory_cp(struct radv_cmd_buffer *cmd_buffer, uint64_t va, const void *data, uint64_t size); void radv_update_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t va, uint64_t size, const void *data, - enum radv_copy_flags dst_copy_flags); + VkAddressCopyFlagsKHR dst_copy_flags); void radv_meta_decode_etc(struct radv_cmd_buffer *cmd_buffer, struct radv_image *image, VkImageLayout layout, const VkImageSubresourceLayers *subresource, VkOffset3D offset, VkExtent3D extent); @@ -339,13 +334,13 @@ uint32_t radv_fill_buffer(struct radv_cmd_buffer *cmd_buffer, struct radeon_wins uint32_t value); uint32_t radv_fill_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t va, uint64_t size, uint32_t value, - enum radv_copy_flags copy_flags); + VkAddressCopyFlagsKHR copy_flags); uint32_t radv_fill_image(struct radv_cmd_buffer *cmd_buffer, const struct radv_image *image, uint64_t offset, uint64_t size, uint32_t value); void radv_copy_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t src_va, uint64_t dst_va, uint64_t size, - enum radv_copy_flags src_copy_flags, enum radv_copy_flags dst_copy_flags); + VkAddressCopyFlagsKHR src_copy_flags, VkAddressCopyFlagsKHR dst_copy_flags); void radv_cmd_buffer_clear_attachment(struct radv_cmd_buffer *cmd_buffer, const VkClearAttachment *attachment); @@ -355,7 +350,7 @@ void radv_cmd_buffer_resolve_rendering(struct radv_cmd_buffer *cmd_buffer, const VkResult radv_meta_get_noop_pipeline_layout(struct radv_device *device, VkPipelineLayout *layout_out); -enum radv_copy_flags radv_get_copy_flags_from_bo(const struct radeon_winsys_bo *bo); +VkAddressCopyFlagsKHR radv_get_copy_flags_from_bo(const struct radeon_winsys_bo *bo); static inline unsigned radv_get_image_stride_for_96bit(const struct radv_device *device, const struct radv_image *image) diff --git a/src/amd/vulkan/meta/radv_meta_buffer.c b/src/amd/vulkan/meta/radv_meta_buffer.c index a670b6d10b7..1c4b376cf94 100644 --- a/src/amd/vulkan/meta/radv_meta_buffer.c +++ b/src/amd/vulkan/meta/radv_meta_buffer.c @@ -223,14 +223,15 @@ radv_compute_copy_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t src_va, ui } static bool -radv_prefer_compute_or_cp_dma(const struct radv_device *device, uint64_t size, enum radv_copy_flags src_copy_flags, - enum radv_copy_flags dst_copy_flags) +radv_prefer_compute_or_cp_dma(const struct radv_device *device, uint64_t size, VkAddressCopyFlagsKHR src_copy_flags, + VkAddressCopyFlagsKHR dst_copy_flags) { const struct radv_physical_device *pdev = radv_device_physical(device); bool use_compute = size >= RADV_BUFFER_OPS_CS_THRESHOLD; if (pdev->info.gfx_level >= GFX10 && pdev->info.has_dedicated_vram) { - if (!(src_copy_flags & RADV_COPY_FLAGS_DEVICE_LOCAL) || !(dst_copy_flags & RADV_COPY_FLAGS_DEVICE_LOCAL)) { + if (!(src_copy_flags & VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR) || + !(dst_copy_flags & VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR)) { /* Prefer CP DMA for GTT on dGPUS due to slow PCIe. */ use_compute = false; } @@ -240,19 +241,19 @@ radv_prefer_compute_or_cp_dma(const struct radv_device *device, uint64_t size, e } static bool -radv_is_compute_required(const struct radv_device *device, enum radv_copy_flags src_copy_flags, - enum radv_copy_flags dst_copy_flags) +radv_is_compute_required(const struct radv_device *device, VkAddressCopyFlagsKHR src_copy_flags, + VkAddressCopyFlagsKHR dst_copy_flags) { const struct radv_physical_device *pdev = radv_device_physical(device); /* Use compute when CP DMA doesn't support sparse. */ return !pdev->info.cp_dma_supports_sparse && - ((src_copy_flags & RADV_COPY_FLAGS_SPARSE) || (dst_copy_flags & RADV_COPY_FLAGS_SPARSE)); + ((src_copy_flags & VK_ADDRESS_COPY_SPARSE_BIT_KHR) || (dst_copy_flags & VK_ADDRESS_COPY_SPARSE_BIT_KHR)); } static uint32_t radv_fill_memory_internal(struct radv_cmd_buffer *cmd_buffer, const struct radv_image *image, uint64_t va, - uint64_t size, uint32_t value, enum radv_copy_flags copy_flags) + uint64_t size, uint32_t value, VkAddressCopyFlagsKHR copy_flags) { struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); const bool use_compute = radv_is_compute_required(device, copy_flags, copy_flags) || @@ -278,7 +279,7 @@ radv_fill_memory_internal(struct radv_cmd_buffer *cmd_buffer, const struct radv_ uint32_t radv_fill_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t va, uint64_t size, uint32_t value, - enum radv_copy_flags copy_flags) + VkAddressCopyFlagsKHR copy_flags) { return radv_fill_memory_internal(cmd_buffer, NULL, va, size, value, copy_flags); } @@ -290,7 +291,7 @@ radv_fill_image(struct radv_cmd_buffer *cmd_buffer, const struct radv_image *ima struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); const uint64_t va = image->bindings[0].addr + offset; struct radeon_winsys_bo *bo = image->bindings[0].bo; - const enum radv_copy_flags copy_flags = radv_get_copy_flags_from_bo(bo); + const VkAddressCopyFlagsKHR copy_flags = radv_get_copy_flags_from_bo(bo); struct radv_cmd_stream *cs = cmd_buffer->cs; radv_cs_add_buffer(device->ws, cs->b, bo); @@ -303,7 +304,7 @@ radv_fill_buffer(struct radv_cmd_buffer *cmd_buffer, struct radeon_winsys_bo *bo uint32_t value) { struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); - const enum radv_copy_flags copy_flags = radv_get_copy_flags_from_bo(bo); + const VkAddressCopyFlagsKHR copy_flags = radv_get_copy_flags_from_bo(bo); struct radv_cmd_stream *cs = cmd_buffer->cs; radv_cs_add_buffer(device->ws, cs->b, bo); @@ -333,7 +334,7 @@ radv_CmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSi void radv_copy_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t src_va, uint64_t dst_va, uint64_t size, - enum radv_copy_flags src_copy_flags, enum radv_copy_flags dst_copy_flags) + VkAddressCopyFlagsKHR src_copy_flags, VkAddressCopyFlagsKHR dst_copy_flags) { struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); const bool use_compute = radv_is_compute_required(device, src_copy_flags, dst_copy_flags) || @@ -358,8 +359,8 @@ radv_CmdCopyBuffer2(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2 *pCop struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); struct radv_cmd_stream *cs = cmd_buffer->cs; - const enum radv_copy_flags src_copy_flags = radv_get_copy_flags_from_bo(src_buffer->bo); - const enum radv_copy_flags dst_copy_flags = radv_get_copy_flags_from_bo(dst_buffer->bo); + const VkAddressCopyFlagsKHR src_copy_flags = radv_get_copy_flags_from_bo(src_buffer->bo); + const VkAddressCopyFlagsKHR dst_copy_flags = radv_get_copy_flags_from_bo(dst_buffer->bo); radv_suspend_conditional_rendering(cmd_buffer); @@ -402,7 +403,7 @@ radv_update_memory_cp(struct radv_cmd_buffer *cmd_buffer, uint64_t va, const voi void radv_update_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t va, uint64_t size, const void *data, - enum radv_copy_flags dst_copy_flags) + VkAddressCopyFlagsKHR dst_copy_flags) { assert(!(size & 3)); assert(!(va & 3)); @@ -417,7 +418,7 @@ radv_update_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t va, uint64_t siz radv_cmd_buffer_upload_data(cmd_buffer, size, data, &buf_offset); - const enum radv_copy_flags src_copy_flags = radv_get_copy_flags_from_bo(cmd_buffer->upload.upload_bo); + const VkAddressCopyFlagsKHR src_copy_flags = radv_get_copy_flags_from_bo(cmd_buffer->upload.upload_bo); const uint64_t src_va = radv_buffer_get_va(cmd_buffer->upload.upload_bo) + buf_offset; radv_copy_memory(cmd_buffer, src_va, va, size, src_copy_flags, dst_copy_flags); @@ -434,7 +435,7 @@ radv_CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDevice const uint64_t dst_va = vk_buffer_address(&dst_buffer->vk, dstOffset); struct radv_cmd_stream *cs = cmd_buffer->cs; - const enum radv_copy_flags dst_copy_flags = radv_get_copy_flags_from_bo(dst_buffer->bo); + const VkAddressCopyFlagsKHR dst_copy_flags = radv_get_copy_flags_from_bo(dst_buffer->bo); radv_suspend_conditional_rendering(cmd_buffer); diff --git a/src/amd/vulkan/meta/radv_meta_bufimage.c b/src/amd/vulkan/meta/radv_meta_bufimage.c index 831973c97a8..6452290ce43 100644 --- a/src/amd/vulkan/meta/radv_meta_bufimage.c +++ b/src/amd/vulkan/meta/radv_meta_bufimage.c @@ -477,7 +477,7 @@ fixup_gfx9_cs_copy(struct radv_cmd_buffer *cmd_buffer, const struct radv_meta_bl const struct radeon_surf *surf = &image->planes[0].surface; const struct radeon_info *gpu_info = &pdev->info; struct ac_surf_info surf_info = radv_get_ac_surf_info(device, image); - enum radv_copy_flags img_copy_flags = 0, mem_copy_flags = 0; + VkAddressCopyFlagsKHR img_copy_flags = 0, mem_copy_flags = 0; if (gpu_info->gfx_level < GFX9 || gpu_info->gfx_level >= GFX12) return; diff --git a/src/amd/vulkan/meta/radv_meta_copy.c b/src/amd/vulkan/meta/radv_meta_copy.c index 9c0fe5c1df1..b59f17a7633 100644 --- a/src/amd/vulkan/meta/radv_meta_copy.c +++ b/src/amd/vulkan/meta/radv_meta_copy.c @@ -76,16 +76,16 @@ alloc_transfer_temp_bo(struct radv_cmd_buffer *cmd_buffer) } static void gfx_or_compute_copy_memory_to_image(struct radv_cmd_buffer *cmd_buffer, uint64_t buffer_addr, - uint64_t buffer_size, enum radv_copy_flags src_copy_flags, + uint64_t buffer_size, VkAddressCopyFlagsKHR src_copy_flags, struct radv_image *image, VkImageLayout layout, const VkBufferImageCopy2 *region, const bool use_compute); static void compute_copy_image_to_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t buffer_addr, uint64_t buffer_size, - enum radv_copy_flags dst_copy_flags, struct radv_image *image, + VkAddressCopyFlagsKHR dst_copy_flags, struct radv_image *image, VkImageLayout layout, const VkBufferImageCopy2 *region); static void transfer_copy_memory_image(struct radv_cmd_buffer *cmd_buffer, uint64_t buffer_va, uint64_t buffer_size, - enum radv_copy_flags buffer_flags, struct radv_image *image, const VkImageLayout layout, + VkAddressCopyFlagsKHR buffer_flags, struct radv_image *image, const VkImageLayout layout, const VkBufferImageCopy2 *region, bool to_image) { const struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); @@ -193,8 +193,8 @@ radv_fixup_copy_dst_htile_metadata(struct radv_cmd_buffer *cmd_buffer, struct ra static void gfx_or_compute_copy_memory_to_image(struct radv_cmd_buffer *cmd_buffer, uint64_t buffer_addr, uint64_t buffer_size, - enum radv_copy_flags src_copy_flags, struct radv_image *image, VkImageLayout layout, - const VkBufferImageCopy2 *region, const bool use_compute) + VkAddressCopyFlagsKHR src_copy_flags, struct radv_image *image, + VkImageLayout layout, const VkBufferImageCopy2 *region, const bool use_compute) { struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); const struct radv_physical_device *pdev = radv_device_physical(device); @@ -306,7 +306,7 @@ radv_CmdCopyBufferToImage2(VkCommandBuffer commandBuffer, const VkCopyBufferToIm const struct radv_physical_device *pdev = radv_device_physical(device); struct radv_cmd_stream *cs = cmd_buffer->cs; - const enum radv_copy_flags src_copy_flags = radv_get_copy_flags_from_bo(src_buffer->bo); + const VkAddressCopyFlagsKHR src_copy_flags = radv_get_copy_flags_from_bo(src_buffer->bo); radv_suspend_conditional_rendering(cmd_buffer); @@ -362,7 +362,7 @@ radv_CmdCopyBufferToImage2(VkCommandBuffer commandBuffer, const VkCopyBufferToIm static void compute_copy_image_to_memory(struct radv_cmd_buffer *cmd_buffer, uint64_t buffer_addr, uint64_t buffer_size, - enum radv_copy_flags dst_copy_flags, struct radv_image *image, VkImageLayout layout, + VkAddressCopyFlagsKHR dst_copy_flags, struct radv_image *image, VkImageLayout layout, const VkBufferImageCopy2 *region) { struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); @@ -454,7 +454,7 @@ radv_CmdCopyImageToBuffer2(VkCommandBuffer commandBuffer, const VkCopyImageToBuf struct radv_device *device = radv_cmd_buffer_device(cmd_buffer); struct radv_cmd_stream *cs = cmd_buffer->cs; - const enum radv_copy_flags dst_copy_flags = radv_get_copy_flags_from_bo(dst_buffer->bo); + const VkAddressCopyFlagsKHR dst_copy_flags = radv_get_copy_flags_from_bo(dst_buffer->bo); radv_suspend_conditional_rendering(cmd_buffer); diff --git a/src/amd/vulkan/meta/radv_meta_fmask_copy.c b/src/amd/vulkan/meta/radv_meta_fmask_copy.c index c4a89dbe524..806ce531b31 100644 --- a/src/amd/vulkan/meta/radv_meta_fmask_copy.c +++ b/src/amd/vulkan/meta/radv_meta_fmask_copy.c @@ -93,7 +93,7 @@ static void radv_fixup_copy_dst_metadata(struct radv_cmd_buffer *cmd_buffer, const struct radv_image *src_image, const struct radv_image *dst_image) { - enum radv_copy_flags src_copy_flags = 0, dst_copy_flags = 0; + VkAddressCopyFlagsKHR src_copy_flags = 0, dst_copy_flags = 0; uint64_t src_va, dst_va, size; assert(src_image->planes[0].surface.cmask_size == dst_image->planes[0].surface.cmask_size && diff --git a/src/amd/vulkan/radv_acceleration_structure.c b/src/amd/vulkan/radv_acceleration_structure.c index 3afba3c2493..8f78168a132 100644 --- a/src/amd/vulkan/radv_acceleration_structure.c +++ b/src/amd/vulkan/radv_acceleration_structure.c @@ -738,7 +738,7 @@ radv_init_update_scratch(VkCommandBuffer commandBuffer, const struct vk_accelera /* Prepare ready counts for internal nodes */ radv_fill_memory(cmd_buffer, scratch + layout.internal_ready_count_offset, - layout.size - layout.internal_ready_count_offset, 0x0, RADV_COPY_FLAGS_DEVICE_LOCAL); + layout.size - layout.internal_ready_count_offset, 0x0, VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR); /* geometryCount == 1 passes the data as push constant. */ if (radv_use_bvh8(pdev) && !(state->config.update_key[0] & RADV_BUILD_FLAG_UPDATE_SINGLE_GEOMETRY)) { @@ -762,7 +762,7 @@ radv_init_update_scratch(VkCommandBuffer commandBuffer, const struct vk_accelera } radv_update_memory(cmd_buffer, scratch + layout.geometry_data_offset, data_size, data, - RADV_COPY_FLAGS_DEVICE_LOCAL); + VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR); free(data); } @@ -822,8 +822,8 @@ radv_update_as(VkCommandBuffer commandBuffer, const struct vk_acceleration_struc const uint64_t src_va = vk_acceleration_structure_get_va(src); const uint64_t dst_va = vk_acceleration_structure_get_va(dst); - radv_copy_memory(cmd_buffer, src_va, dst_va, layout.bvh_offset, RADV_COPY_FLAGS_DEVICE_LOCAL, - RADV_COPY_FLAGS_DEVICE_LOCAL); + radv_copy_memory(cmd_buffer, src_va, dst_va, layout.bvh_offset, VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR, + VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR); } struct update_scratch_layout layout; @@ -869,8 +869,8 @@ radv_update_as_gfx12(VkCommandBuffer commandBuffer, const struct vk_acceleration const uint64_t src_va = vk_acceleration_structure_get_va(src); const uint64_t dst_va = vk_acceleration_structure_get_va(dst); - radv_copy_memory(cmd_buffer, src_va, dst_va, layout.bvh_offset, RADV_COPY_FLAGS_DEVICE_LOCAL, - RADV_COPY_FLAGS_DEVICE_LOCAL); + radv_copy_memory(cmd_buffer, src_va, dst_va, layout.bvh_offset, VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR, + VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR); } struct update_scratch_layout layout; @@ -946,7 +946,7 @@ static void radv_cmd_fill_buffer_addr(VkCommandBuffer commandBuffer, VkDeviceAddress addr, VkDeviceSize size, uint32_t data) { VK_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer); - radv_fill_memory(cmd_buffer, addr, size, data, RADV_COPY_FLAGS_DEVICE_LOCAL); + radv_fill_memory(cmd_buffer, addr, size, data, VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR); } VkResult