vkd3d: Allocate memory for resource if heap memory cannot be used.

Anvil has additional restrictions for index and vertex buffers.

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:
Józef Kucia 2018-10-01 13:57:10 +02:00 committed by Alexandre Julliard
parent 296833e5ab
commit 0463588591

View File

@ -1121,9 +1121,10 @@ static HRESULT vkd3d_bind_heap_memory(struct d3d12_device *device,
if (!(requirements.memoryTypeBits & (1u << heap->vk_memory_type))) if (!(requirements.memoryTypeBits & (1u << heap->vk_memory_type)))
{ {
FIXME("Memory type %u cannot be bound to resource %p (allowed types %#x).\n", FIXME("Memory type %u cannot be bound to resource %p (allowed types %#x), "
"allocating device memory.\n",
heap->vk_memory_type, resource, requirements.memoryTypeBits); heap->vk_memory_type, resource, requirements.memoryTypeBits);
return E_NOTIMPL; return vkd3d_allocate_resource_memory(device, resource, &heap->desc.Properties, heap->desc.Flags);
} }
if (d3d12_resource_is_buffer(resource)) if (d3d12_resource_is_buffer(resource))