radv: replace radv_copy_flags by VkAddressCopyFlagsKHR

Same meaning.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40386>
This commit is contained in:
Samuel Pitoiset 2025-06-03 15:34:49 +02:00 committed by Marge Bot
parent 72ac5e6d29
commit 479a992b02
7 changed files with 43 additions and 47 deletions

View file

@ -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;
}

View file

@ -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)

View file

@ -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);

View file

@ -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;

View file

@ -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);

View file

@ -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 &&

View file

@ -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