vkd3d: Add VKD3D_RESOURCE_SIMULTANEOUS_ACCESS.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
Hans-Kristian Arntzen 2021-06-21 21:48:05 +02:00
parent 02398c4eef
commit 177679a766
2 changed files with 6 additions and 1 deletions

View File

@ -565,6 +565,9 @@ static HRESULT vkd3d_create_image(struct d3d12_device *device,
}
else
resource->common_layout = vk_common_image_layout_from_d3d12_desc(desc);
if (desc->Flags & D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS)
resource->flags |= VKD3D_RESOURCE_SIMULTANEOUS_ACCESS;
}
if ((vr = VK_CALL(vkCreateImage(device->vk_device, &image_info, NULL, vk_image))) < 0)

View File

@ -734,6 +734,7 @@ enum vkd3d_resource_flag
VKD3D_RESOURCE_LINEAR_TILING = (1u << 4),
VKD3D_RESOURCE_EXTERNAL = (1u << 5),
VKD3D_RESOURCE_ACCELERATION_STRUCTURE = (1u << 6),
VKD3D_RESOURCE_SIMULTANEOUS_ACCESS = (1u << 7),
};
struct d3d12_sparse_image_region
@ -836,7 +837,8 @@ static inline bool d3d12_resource_is_texture(const struct d3d12_resource *resour
static inline VkImageLayout d3d12_resource_pick_layout(const struct d3d12_resource *resource, VkImageLayout layout)
{
return resource->flags & VKD3D_RESOURCE_LINEAR_TILING ? VK_IMAGE_LAYOUT_GENERAL : layout;
return resource->flags & (VKD3D_RESOURCE_LINEAR_TILING | VKD3D_RESOURCE_SIMULTANEOUS_ACCESS) ?
resource->common_layout : layout;
}
LONG64 vkd3d_allocate_cookie();