mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
vkd3d: Use VK_SHARING_MODE_CONCURRENT only when queue family count > 1.
The Vulkan spec states: If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1. Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
1bfe8a2c54
commit
5259a89138
@ -536,9 +536,18 @@ HRESULT vkd3d_create_buffer(struct d3d12_device *device,
|
|||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (device->queue_family_count > 1)
|
||||||
|
{
|
||||||
buffer_info.sharingMode = VK_SHARING_MODE_CONCURRENT;
|
buffer_info.sharingMode = VK_SHARING_MODE_CONCURRENT;
|
||||||
buffer_info.queueFamilyIndexCount = device->queue_family_count;
|
buffer_info.queueFamilyIndexCount = device->queue_family_count;
|
||||||
buffer_info.pQueueFamilyIndices = device->queue_family_indices;
|
buffer_info.pQueueFamilyIndices = device->queue_family_indices;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
buffer_info.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
|
||||||
|
buffer_info.queueFamilyIndexCount = 0;
|
||||||
|
buffer_info.pQueueFamilyIndices = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if ((vr = VK_CALL(vkCreateBuffer(device->vk_device, &buffer_info, NULL, vk_buffer))) < 0)
|
if ((vr = VK_CALL(vkCreateBuffer(device->vk_device, &buffer_info, NULL, vk_buffer))) < 0)
|
||||||
{
|
{
|
||||||
@ -626,7 +635,7 @@ static HRESULT vkd3d_create_image(struct d3d12_device *device,
|
|||||||
if (!(desc->Flags & D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE))
|
if (!(desc->Flags & D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE))
|
||||||
image_info.usage |= VK_IMAGE_USAGE_SAMPLED_BIT;
|
image_info.usage |= VK_IMAGE_USAGE_SAMPLED_BIT;
|
||||||
|
|
||||||
if (desc->Flags & D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS)
|
if ((desc->Flags & D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS) && device->queue_family_count > 1)
|
||||||
{
|
{
|
||||||
TRACE("Creating image with VK_SHARING_MODE_CONCURRENT.\n");
|
TRACE("Creating image with VK_SHARING_MODE_CONCURRENT.\n");
|
||||||
image_info.sharingMode = VK_SHARING_MODE_CONCURRENT;
|
image_info.sharingMode = VK_SHARING_MODE_CONCURRENT;
|
||||||
|
Loading…
Reference in New Issue
Block a user