[PATCH vkd3d 05/10] vkd3d: Use ALLOW_ONLY_BUFFERS for committed buffer resources.

Conor McCarthy cmccarthy at codeweavers.com
Fri Sep 17 10:37:03 CDT 2021


Otherwise, we may end up failing to allocate memory on Tier 1
hardware, and also fail to use dedicated allocations in some
cases.

Based on a vkd3d-proton patch by Philip Rebohle.

Signed-off-by: Conor McCarthy <cmccarthy at codeweavers.com>
---
 libs/vkd3d/resource.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c
index f6c1851b..e950868b 100644
--- a/libs/vkd3d/resource.c
+++ b/libs/vkd3d/resource.c
@@ -611,7 +611,7 @@ static HRESULT d3d12_heap_init(struct d3d12_heap *heap,
         if (d3d12_resource_is_buffer(resource))
         {
             hr = vkd3d_allocate_buffer_memory(device, resource->u.vk_buffer,
-                    &heap->desc.Properties, heap->desc.Flags,
+                    &heap->desc.Properties, heap->desc.Flags | D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS,
                     &heap->vk_memory, &heap->vk_memory_type, &vk_memory_size);
         }
         else
@@ -4004,7 +4004,7 @@ HRESULT vkd3d_init_null_resources(struct vkd3d_null_resources *null_resources,
     resource_desc.SampleDesc.Count = 1;
     resource_desc.SampleDesc.Quality = 0;
     resource_desc.Layout = D3D12_TEXTURE_LAYOUT_ROW_MAJOR;
-    resource_desc.Flags = D3D12_RESOURCE_FLAG_NONE;
+    resource_desc.Flags = D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS;
 
     if (FAILED(hr = vkd3d_create_buffer(device, &heap_properties, D3D12_HEAP_FLAG_NONE,
             &resource_desc, &null_resources->vk_buffer)))
@@ -4020,7 +4020,7 @@ HRESULT vkd3d_init_null_resources(struct vkd3d_null_resources *null_resources,
             &resource_desc, &null_resources->vk_storage_buffer)))
         goto fail;
     if (!use_sparse_resources && FAILED(hr = vkd3d_allocate_buffer_memory(device, null_resources->vk_storage_buffer,
-            &heap_properties, D3D12_HEAP_FLAG_NONE, &null_resources->vk_storage_buffer_memory, NULL, NULL)))
+            &heap_properties, D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS, &null_resources->vk_storage_buffer_memory, NULL, NULL)))
         goto fail;
 
     /* 2D SRV */
-- 
2.32.0




More information about the wine-devel mailing list