turnip: Report a memory type and heap.
authorBas Nieuwenhuizen <basni@chromium.org>
Fri, 10 Aug 2018 11:30:08 +0000 (13:30 +0200)
committerChia-I Wu <olvaffe@gmail.com>
Mon, 11 Mar 2019 17:01:33 +0000 (10:01 -0700)
src/freedreno/vulkan/tu_device.c

index e0c27166818ac709f4bf5747850ab691bf573e1a..cbcc797754440dce3b0c525cb6cae563be81ae0c 100644 (file)
@@ -874,12 +874,28 @@ tu_GetPhysicalDeviceQueueFamilyProperties2(
    assert(*pCount <= 1);
 }
 
+static uint64_t
+tu_get_system_memory_size()
+{
+   uint64_t pages = sysconf(_SC_PHYS_PAGES);
+   uint64_t page_size = sysconf(_SC_PAGE_SIZE);
+   return pages * page_size;
+}
+
 void
 tu_GetPhysicalDeviceMemoryProperties(
   VkPhysicalDevice physicalDevice,
   VkPhysicalDeviceMemoryProperties *pMemoryProperties)
 {
-   stub();
+   pMemoryProperties->memoryHeapCount = 1;
+   pMemoryProperties->memoryHeaps[0].size = tu_get_system_memory_size();
+   pMemoryProperties->memoryHeaps[0].flags = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT;
+
+   pMemoryProperties->memoryTypeCount = 1;
+   pMemoryProperties->memoryTypes[0].propertyFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT |
+                                                     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
+                                                     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
+   pMemoryProperties->memoryTypes[0].heapIndex = 0;
 }
 
 void