[PATCH] vkd3d: Handle CPUPageProperty options for D3D12_HEAP_TYPE_CUSTOM.
Conor McCarthy
cmccarthy at codeweavers.com
Tue Oct 22 09:11:56 CDT 2019
Signed-off-by: Conor McCarthy <cmccarthy at codeweavers.com>
---
libs/vkd3d/resource.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c
index 626772e..ddd8bfc 100644
--- a/libs/vkd3d/resource.c
+++ b/libs/vkd3d/resource.c
@@ -58,9 +58,19 @@ static unsigned int vkd3d_select_memory_type(struct d3d12_device *device, uint32
break;
case D3D12_HEAP_TYPE_CUSTOM:
- FIXME("Custom heaps not supported yet.\n");
- flags[count++] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
- | VK_MEMORY_PROPERTY_HOST_CACHED_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
+ switch (heap_properties->CPUPageProperty)
+ {
+ case D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE:
+ flags[count++] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
+ break;
+ default:
+ WARN("Invalid CPU page property.\n");
+ /* Fall through. */
+ case D3D12_CPU_PAGE_PROPERTY_WRITE_BACK:
+ flags[count++] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
+ | VK_MEMORY_PROPERTY_HOST_CACHED_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
+ break;
+ }
flags[count++] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
flags[count++] = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
break;
--
2.23.0
More information about the wine-devel
mailing list