vkd3d: Fix queue creation for queue family -1.
Fixes validation error on Intel where we are trying to create CONCURRENT family with {0, -1}. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
parent
ebe589d622
commit
51199752dd
|
@ -2193,6 +2193,9 @@ static HRESULT d3d12_device_create_vkd3d_queues(struct d3d12_device *device,
|
||||||
{
|
{
|
||||||
struct vkd3d_queue_family_info *info;
|
struct vkd3d_queue_family_info *info;
|
||||||
|
|
||||||
|
if (queue_info->family_index[i] == VK_QUEUE_FAMILY_IGNORED)
|
||||||
|
continue;
|
||||||
|
|
||||||
for (j = 0; j < i; j++)
|
for (j = 0; j < i; j++)
|
||||||
{
|
{
|
||||||
if (queue_info->family_index[i] == queue_info->family_index[j])
|
if (queue_info->family_index[i] == queue_info->family_index[j])
|
||||||
|
@ -2208,22 +2211,19 @@ static HRESULT d3d12_device_create_vkd3d_queues(struct d3d12_device *device,
|
||||||
goto out_destroy_queues;
|
goto out_destroy_queues;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (queue_info->family_index[i] != VK_QUEUE_FAMILY_IGNORED)
|
info->queue_count = queue_info->vk_queue_create_info[k++].queueCount;
|
||||||
|
|
||||||
|
if (!(info->queues = vkd3d_calloc(info->queue_count, sizeof(*info->queues))))
|
||||||
{
|
{
|
||||||
info->queue_count = queue_info->vk_queue_create_info[k++].queueCount;
|
hr = E_OUTOFMEMORY;
|
||||||
|
goto out_destroy_queues;
|
||||||
|
}
|
||||||
|
|
||||||
if (!(info->queues = vkd3d_calloc(info->queue_count, sizeof(*info->queues))))
|
for (j = 0; j < info->queue_count; j++)
|
||||||
{
|
{
|
||||||
hr = E_OUTOFMEMORY;
|
if (FAILED((hr = vkd3d_queue_create(device, queue_info->family_index[i],
|
||||||
|
j, &queue_info->vk_properties[i], &info->queues[j]))))
|
||||||
goto out_destroy_queues;
|
goto out_destroy_queues;
|
||||||
}
|
|
||||||
|
|
||||||
for (j = 0; j < info->queue_count; j++)
|
|
||||||
{
|
|
||||||
if (FAILED((hr = vkd3d_queue_create(device, queue_info->family_index[i],
|
|
||||||
j, &queue_info->vk_properties[i], &info->queues[j]))))
|
|
||||||
goto out_destroy_queues;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
info->vk_family_index = queue_info->family_index[i];
|
info->vk_family_index = queue_info->family_index[i];
|
||||||
|
@ -5357,6 +5357,7 @@ static D3D12_TILED_RESOURCES_TIER d3d12_device_determine_tiled_resources_tier(st
|
||||||
if (!features->sparseBinding || !features->sparseResidencyAliased ||
|
if (!features->sparseBinding || !features->sparseResidencyAliased ||
|
||||||
!features->sparseResidencyBuffer || !features->sparseResidencyImage2D ||
|
!features->sparseResidencyBuffer || !features->sparseResidencyImage2D ||
|
||||||
!sparse_properties->residencyStandard2DBlockShape ||
|
!sparse_properties->residencyStandard2DBlockShape ||
|
||||||
|
!device->queue_families[VKD3D_QUEUE_FAMILY_SPARSE_BINDING] ||
|
||||||
!device->queue_families[VKD3D_QUEUE_FAMILY_SPARSE_BINDING]->queue_count)
|
!device->queue_families[VKD3D_QUEUE_FAMILY_SPARSE_BINDING]->queue_count)
|
||||||
return D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED;
|
return D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue