diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c index 6a1134f8ad1..10890413a3f 100644 --- a/src/amd/vulkan/radv_image.c +++ b/src/amd/vulkan/radv_image.c @@ -2308,9 +2308,9 @@ radv_image_queue_family_mask(const struct radv_image *image, { if (!image->exclusive) return image->queue_family_mask; - if (family == VK_QUEUE_FAMILY_EXTERNAL || family == VK_QUEUE_FAMILY_FOREIGN_EXT) + if (family == RADV_QUEUE_FOREIGN) return ((1u << RADV_MAX_QUEUE_FAMILIES) - 1u) | (1u << RADV_QUEUE_FOREIGN); - if (family == VK_QUEUE_FAMILY_IGNORED) + if (family == RADV_QUEUE_IGNORED) return 1u << queue_family; return 1u << family; } diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index 04afcd07d46..e0473e85412 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -258,6 +258,7 @@ enum radv_queue_family { RADV_QUEUE_TRANSFER, RADV_MAX_QUEUE_FAMILIES, RADV_QUEUE_FOREIGN = RADV_MAX_QUEUE_FAMILIES, + RADV_QUEUE_IGNORED, }; struct radv_physical_device { @@ -699,9 +700,14 @@ struct radv_meta_state { struct radv_deferred_queue_submission; static inline enum radv_queue_family -vk_queue_to_radv(struct radv_physical_device *phys_dev, - int queue_family_index) +vk_queue_to_radv(const struct radv_physical_device *phys_dev, int queue_family_index) { + if (queue_family_index == VK_QUEUE_FAMILY_EXTERNAL || + queue_family_index == VK_QUEUE_FAMILY_FOREIGN_EXT) + return RADV_QUEUE_FOREIGN; + if (queue_family_index == VK_QUEUE_FAMILY_IGNORED) + return RADV_QUEUE_IGNORED; + assert(queue_family_index < RADV_MAX_QUEUE_FAMILIES); return phys_dev->vk_queue_to_radv[queue_family_index]; }