vulkan.h: V108 -- Static Types, Bug# 13919
diff --git a/icd/intel/gpu.c b/icd/intel/gpu.c
index 31ae5b8..8fe4f7c 100644
--- a/icd/intel/gpu.c
+++ b/icd/intel/gpu.c
@@ -407,67 +407,62 @@
     return type;
 }
 
-ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceInfo(
-    VkPhysicalDevice                            gpu_,
-    VkPhysicalDeviceInfoType                  infoType,
-    size_t*                                     pDataSize,
-    void*                                       pData)
+ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceProperties(
+    VkPhysicalDevice gpu_,
+    VkPhysicalDeviceProperties* pProperties)
 {
     struct intel_gpu *gpu = intel_gpu(gpu_);
-    VkResult ret = VK_SUCCESS;
 
-    switch (infoType) {
-    case VK_PHYSICAL_DEVICE_INFO_TYPE_PROPERTIES:
-        *pDataSize = sizeof(VkPhysicalDeviceProperties);
-        if (pData == NULL) {
-            return ret;
-        }
-        intel_gpu_get_props(gpu, pData);
-        break;
+    intel_gpu_get_props(gpu, pProperties);
+    return VK_SUCCESS;
+}
 
-    case VK_PHYSICAL_DEVICE_INFO_TYPE_PERFORMANCE:
-        *pDataSize = sizeof(VkPhysicalDevicePerformance);
-        if (pData == NULL) {
-            return ret;
-        }
-        intel_gpu_get_perf(gpu, pData);
-        break;
+ICD_EXPORT VkResult VKAPI vkGetPhysicalDevicePerformance(
+    VkPhysicalDevice gpu_,
+    VkPhysicalDevicePerformance* pPerformance)
+{
+    struct intel_gpu *gpu = intel_gpu(gpu_);
 
-    case VK_PHYSICAL_DEVICE_INFO_TYPE_QUEUE_PROPERTIES:
-        /*
-         * Vulkan Programmers guide, page 33:
-         * to determine the data size an application calls
-         * vkGetPhysicalDeviceInfo() with a NULL data pointer. The
-         * expected data size for all queue property structures
-         * is returned in pDataSize
-         */
-        *pDataSize = sizeof(VkPhysicalDeviceQueueProperties) *
-            INTEL_GPU_ENGINE_COUNT;
-        if (pData != NULL) {
-            VkPhysicalDeviceQueueProperties *dst = pData;
-            int engine;
+    intel_gpu_get_perf(gpu, pPerformance);
 
-            for (engine = 0; engine < INTEL_GPU_ENGINE_COUNT; engine++) {
-                intel_gpu_get_queue_props(gpu, engine, dst);
-                dst++;
-            }
-        }
-        break;
+    return VK_SUCCESS;
+}
 
-    case VK_PHYSICAL_DEVICE_INFO_TYPE_MEMORY_PROPERTIES:
-        *pDataSize = sizeof(VkPhysicalDeviceMemoryProperties);
-        if (pData == NULL) {
-            return ret;
-        }
-        intel_gpu_get_memory_props(gpu, pData);
-        break;
+ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceQueueCount(
+    VkPhysicalDevice gpu_,
+    uint32_t* pCount)
+{
+    *pCount = INTEL_GPU_ENGINE_COUNT;
 
-    default:
-        ret = intel_wsi_gpu_get_info(gpu, infoType, pDataSize, pData);
-        break;
-    }
+    return VK_SUCCESS;
+}
 
-    return ret;
+ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceQueueProperties(
+    VkPhysicalDevice gpu_,
+    uint32_t count,
+    VkPhysicalDeviceQueueProperties* pProperties)
+{
+   struct intel_gpu *gpu = intel_gpu(gpu_);
+   int engine;
+
+   if (count > INTEL_GPU_ENGINE_COUNT)
+       return VK_ERROR_INVALID_VALUE;
+
+   for (engine = 0; engine < count; engine++) {
+       intel_gpu_get_queue_props(gpu, engine, pProperties);
+       pProperties++;
+   }
+   return VK_SUCCESS;
+}
+
+ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceMemoryProperties(
+    VkPhysicalDevice gpu_,
+    VkPhysicalDeviceMemoryProperties* pProperties)
+{
+   struct intel_gpu *gpu = intel_gpu(gpu_);
+
+   intel_gpu_get_memory_props(gpu, pProperties);
+   return VK_SUCCESS;
 }
 
 ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceFeatures(
@@ -494,47 +489,22 @@
     return ret;
 }
 
-ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionInfo(
+ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionCount(
                                                VkPhysicalDevice gpu,
-                                               VkExtensionInfoType infoType,
-                                               uint32_t extensionIndex,
-                                               size_t*  pDataSize,
-                                               void*    pData)
+                                               uint32_t* pCount)
 {
-    /*
-     * If/when we have device-specific extensions, should retrieve them
-     * based on the passed-in physical device
-     *
-     *VkExtensionProperties *ext_props;
-     */
-    uint32_t *count;
+    *pCount =  INTEL_PHY_DEV_EXT_COUNT;
+    return VK_SUCCESS;
+}
 
-    if (pDataSize == NULL)
-        return VK_ERROR_INVALID_POINTER;
+ICD_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
+                                               VkPhysicalDevice gpu,
+                                               uint32_t extensionIndex,
+                                               VkExtensionProperties* pProperties)
+{
+    if (extensionIndex >= INTEL_PHY_DEV_EXT_COUNT)
+        return VK_ERROR_INVALID_VALUE;
 
-    switch (infoType) {
-        case VK_EXTENSION_INFO_TYPE_COUNT:
-            *pDataSize = sizeof(uint32_t);
-            if (pData == NULL)
-                return VK_SUCCESS;
-            count = (uint32_t *) pData;
-            *count = INTEL_PHY_DEV_EXT_COUNT;
-            break;
-        case VK_EXTENSION_INFO_TYPE_PROPERTIES:
-            *pDataSize = sizeof(VkExtensionProperties);
-            if (pData == NULL)
-                return VK_SUCCESS;
-
-            *pDataSize = sizeof(VkExtensionProperties);
-            if (pData == NULL)
-                return VK_SUCCESS;
-            if (extensionIndex >= INTEL_PHY_DEV_EXT_COUNT)
-                return VK_ERROR_INVALID_VALUE;
-            memcpy((VkExtensionProperties *) pData, &intel_phy_dev_gpu_exts[extensionIndex], sizeof(VkExtensionProperties));
-            break;
-        default:
-            return VK_ERROR_INVALID_VALUE;
-    };
-
+    memcpy(pProperties, &intel_phy_dev_gpu_exts[extensionIndex], sizeof(VkExtensionProperties));
     return VK_SUCCESS;
 }