mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-07 16:58:20 +02:00
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:
parent
72ac5e6d29
commit
479a992b02
7 changed files with 43 additions and 47 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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 &&
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue