From: Józef Kucia jkucia@codeweavers.com
Anvil has additional restrictions for index and vertex buffers.
Signed-off-by: Józef Kucia jkucia@codeweavers.com ---
Index and vertex buffers can be allocated only from the 32-bit heap in Anvil because of a Vertex Fetch cache bug.
--- libs/vkd3d/resource.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index d6330941127a..68c189ad5bd4 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -1121,9 +1121,10 @@ static HRESULT vkd3d_bind_heap_memory(struct d3d12_device *device,
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); - return E_NOTIMPL; + return vkd3d_allocate_resource_memory(device, resource, &heap->desc.Properties, heap->desc.Flags); }
if (d3d12_resource_is_buffer(resource))