radv: Fix vk_queue_to_radv for radv_image_queue_family_mask.

radv_image_queue_family_mask was still using queue family index values
for the special cases, while being passes a radv_queue_family enum.

This adds the bits to the enum and vk_queue_to_radv so we can implement
radv_image_queue_family_mask completely in terms of the enum.

Fixes: 1ec4e568 ("radv: abstract queue family away from queue family index.")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15423>
This commit is contained in:
Bas Nieuwenhuizen
2022-03-17 03:34:23 +01:00
committed by Marge Bot
parent d43e6a9a49
commit 9632e6eefa
2 changed files with 10 additions and 4 deletions
+2 -2
View File
@@ -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;
}
+8 -2
View File
@@ -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];
}