vulkan.h: Update features/limits structures (#12827, v125)

- Add infrastructure in vulkaninfo to dump features/limits. To be filled
  out to dump everything interesting.
- Move existing limits from VkPhysicalDeviceInfo to
  VkPhysicalDeviceLimits, and drop those that no longer exist.
- Adjust the drivers to fill out the above in their new location.
  Other new features/limits still to be exposed by nulldrv and the intel
  ICD.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
diff --git a/icd/intel/gpu.c b/icd/intel/gpu.c
index 4a82374..0bdaa7c 100644
--- a/icd/intel/gpu.c
+++ b/icd/intel/gpu.c
@@ -236,22 +236,6 @@
         name_len = sizeof(props->deviceName) - 1;
     memcpy(props->deviceName, name, name_len);
     props->deviceName[name_len] = '\0';
-
-    props->maxBoundDescriptorSets = 1;
-    props->maxThreadGroupSize = 512;
-
-    /* incremented every 80ns */
-    props->timestampFrequency = 1000 * 1000 * 1000 / 80;
-
-    props->multiColorAttachmentClears = false;
-
-    /* hardware is limited to 16 viewports */
-    props->maxViewports = INTEL_MAX_VIEWPORTS;
-
-    props->maxColorAttachments = INTEL_MAX_RENDER_TARGETS;
-
-    /* ? */
-    props->maxDescriptorSets = 2;
 }
 
 void intel_gpu_get_perf(const struct intel_gpu *gpu,
@@ -497,6 +481,22 @@
     /* TODO: fill out limits */
     memset(pLimits, 0, sizeof(*pLimits));
 
+    /* no size limit, but no bounded buffer could exceed 2GB */
+    pLimits->maxInlineMemoryUpdateSize = 2u << 30;
+    pLimits->maxBoundDescriptorSets = 1;
+    pLimits->maxComputeWorkGroupInvocations = 512;
+
+    /* incremented every 80ns */
+    pLimits->timestampFrequency = 1000 * 1000 * 1000 / 80;
+
+    /* hardware is limited to 16 viewports */
+    pLimits->maxViewports = INTEL_MAX_VIEWPORTS;
+
+    pLimits->maxColorAttachments = INTEL_MAX_RENDER_TARGETS;
+
+    /* ? */
+    pLimits->maxDescriptorSets = 2;
+
     return ret;
 }