Procházet zdrojové kódy

vulkan: show debug info about memory

rdb před 7 roky
rodič
revize
c6689fc4f8
1 změnil soubory, kde provedl 20 přidání a 1 odebrání
  1. 20 1
      panda/src/vulkandisplay/vulkanGraphicsPipe.cxx

+ 20 - 1
panda/src/vulkandisplay/vulkanGraphicsPipe.cxx

@@ -261,8 +261,9 @@ VulkanGraphicsPipe() {
 
 
     // Show supported queue families
     // Show supported queue families
     vulkandisplay_cat.debug() << "Supported queue families:\n";
     vulkandisplay_cat.debug() << "Supported queue families:\n";
+    uint32_t i = 0;
     for (const VkQueueFamilyProperties &props : _queue_families) {
     for (const VkQueueFamilyProperties &props : _queue_families) {
-      vulkandisplay_cat.debug() << "  ";
+      vulkandisplay_cat.debug() << "  " << (i++) << ": ";
       if (props.queueFlags & VK_QUEUE_GRAPHICS_BIT) {
       if (props.queueFlags & VK_QUEUE_GRAPHICS_BIT) {
         vulkandisplay_cat.debug(false) << "GRAPHICS ";
         vulkandisplay_cat.debug(false) << "GRAPHICS ";
       }
       }
@@ -279,6 +280,22 @@ VulkanGraphicsPipe() {
         << " queue" << ((props.queueCount != 1) ? "s" : "") << ")\n";
         << " queue" << ((props.queueCount != 1) ? "s" : "") << ")\n";
     }
     }
 
 
+    // Show memory heaps.
+    vulkandisplay_cat.debug() << "Available memory heaps:\n";
+    for (uint32_t i = 0; i < _memory_properties.memoryHeapCount; ++i) {
+      VkMemoryHeap &heap = _memory_properties.memoryHeaps[i];
+      size_t size_mb = heap.size >> 20u;
+      vulkandisplay_cat.debug() << "  " << i << ": " << (size_mb) << " MiB";
+
+      if (heap.flags & VK_MEMORY_HEAP_DEVICE_LOCAL_BIT) {
+        vulkandisplay_cat.debug(false) << ", device-local";
+      }
+      if (heap.flags & VK_MEMORY_HEAP_MULTI_INSTANCE_BIT) {
+        vulkandisplay_cat.debug(false) << ", multi-instance";
+      }
+      vulkandisplay_cat.debug(false) << "\n";
+    }
+
     // Enumerate supported extensions.
     // Enumerate supported extensions.
     uint32_t num_inst_extensions = 0, num_dev_extensions = 0;
     uint32_t num_inst_extensions = 0, num_dev_extensions = 0;
     vkEnumerateInstanceExtensionProperties(nullptr, &num_inst_extensions, nullptr);
     vkEnumerateInstanceExtensionProperties(nullptr, &num_inst_extensions, nullptr);
@@ -539,6 +556,8 @@ VulkanGraphicsPipe() {
       << _gpu_properties.limits.maxMemoryAllocationCount << "\n";
       << _gpu_properties.limits.maxMemoryAllocationCount << "\n";
     vulkandisplay_cat.debug() << "maxSamplerAllocationCount = "
     vulkandisplay_cat.debug() << "maxSamplerAllocationCount = "
       << _gpu_properties.limits.maxSamplerAllocationCount << "\n";
       << _gpu_properties.limits.maxSamplerAllocationCount << "\n";
+    vulkandisplay_cat.debug() << "bufferImageGranularity = "
+      << _gpu_properties.limits.bufferImageGranularity << "\n";
     vulkandisplay_cat.debug() << "maxColorAttachments = "
     vulkandisplay_cat.debug() << "maxColorAttachments = "
       << _gpu_properties.limits.maxColorAttachments << "\n";
       << _gpu_properties.limits.maxColorAttachments << "\n";
     vulkandisplay_cat.debug() << "maxDrawIndexedIndexValue = "
     vulkandisplay_cat.debug() << "maxDrawIndexedIndexValue = "