Turnip: VKD3D can't run due to lack of memory property flag
This is a tracking issue for someone to look in to if this can be fixed correctly or not.
VKD3D needs VK_MEMORY_PROPERTY_HOST_CACHED_BIT
to be visible on the memory type to work.
Adreno only provides a memory type of VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
Adding the VK_MEMORY_PROPERTY_HOST_CACHED_BIT
flag to the memory type gets VKD3D running, but I don't know if this is correct or not to implement.
This needs someone to look in to if this is a correct patch or not.
diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c
index bcce1f06fcc..531cc903eeb 100644
--- a/src/freedreno/vulkan/tu_device.c
+++ b/src/freedreno/vulkan/tu_device.c
@@ -1585,6 +1585,7 @@ tu_GetPhysicalDeviceMemoryProperties2(VkPhysicalDevice pdev,
props->memoryTypes[0].propertyFlags =
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT |
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
+ VK_MEMORY_PROPERTY_HOST_CACHED_BIT |
VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
props->memoryTypes[0].heapIndex = 0;
Once in place, VKD3D then works as expected, and seems to work pretty well.