vulkan.h: V108 -- Static Types, Bug# 13919
diff --git a/layers/screenshot.cpp b/layers/screenshot.cpp
index 757c00c..a102169 100644
--- a/layers/screenshot.cpp
+++ b/layers/screenshot.cpp
@@ -119,7 +119,6 @@
     VkFormat format = imageMap[image1]->format;
     const VkImageSubresource sr = {VK_IMAGE_ASPECT_COLOR, 0, 0};
     VkSubresourceLayout sr_layout;
-    size_t data_size = sizeof(sr_layout);
     const VkImageCreateInfo imgCreateInfo = {
         VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
         NULL,
@@ -162,7 +161,6 @@
         {width, height, 1}
     };
     VkMemoryRequirements memRequirements;
-    size_t memRequirementsSize = sizeof(memRequirements);
     uint32_t num_allocations = 0;
     size_t num_alloc_size = sizeof(num_allocations);
     VkLayerDispatchTable* pTableDevice = screenshot_device_table_map[device];
@@ -183,10 +181,9 @@
     err = pTableDevice->CreateImage(device, &imgCreateInfo, &image2);
     assert(!err);
 
-    err = pTableDevice->GetObjectInfo(device,
+    err = pTableDevice->GetObjectMemoryRequirements(device,
                           VK_OBJECT_TYPE_IMAGE, image2,
-                          VK_OBJECT_INFO_TYPE_MEMORY_REQUIREMENTS,
-                          &memRequirementsSize, &memRequirements);
+                          &memRequirements);
     assert(!err);
 
     memAllocInfo.allocationSize = memRequirements.size;
@@ -220,9 +217,7 @@
     err =  pTableDevice->DeviceWaitIdle(device);
     assert(!err);
 
-    err =  pTableDevice->GetImageSubresourceInfo(device, image2, &sr,
-                                     VK_SUBRESOURCE_INFO_TYPE_LAYOUT,
-                                     &data_size, &sr_layout);
+    err =  pTableDevice->GetImageSubresourceLayout(device, image2, &sr, &sr_layout);
     assert(!err);
 
     err = pTableDevice->MapMemory(device, mem2, 0, 0, 0, (void **) &ptr );
@@ -342,81 +337,43 @@
     }
 
 };
-
-VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo(
-    VkExtensionInfoType  infoType,
-    uint32_t             extensionIndex,
-    size_t              *pDataSize,
-    void                *pData)
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionCount(
+        uint32_t*    pCount)
 {
-    // This entrypoint is NOT going to init its own dispatch table since loader calls here early
-    uint32_t *count;
-
-    if (pDataSize == NULL) {
-        return VK_ERROR_INVALID_POINTER;
-    }
-
-    switch (infoType) {
-        case VK_EXTENSION_INFO_TYPE_COUNT:
-            *pDataSize = sizeof(uint32_t);
-            if (pData == NULL) {
-                return VK_SUCCESS;
-            }
-            count = (uint32_t *) pData;
-            *count = SCREENSHOT_LAYER_EXT_ARRAY_SIZE;
-            break;
-        case VK_EXTENSION_INFO_TYPE_PROPERTIES:
-            *pDataSize = sizeof(VkExtensionProperties);
-            if (pData == NULL) {
-                return VK_SUCCESS;
-            }
-            if (extensionIndex >= SCREENSHOT_LAYER_EXT_ARRAY_SIZE) {
-                return VK_ERROR_INVALID_VALUE;
-            }
-            memcpy((VkExtensionProperties *) pData, &ssExts[extensionIndex], sizeof(VkExtensionProperties));
-            break;
-        default:
-            return VK_ERROR_INVALID_VALUE;
-    };
-
+    *pCount = SCREENSHOT_LAYER_EXT_ARRAY_SIZE;
     return VK_SUCCESS;
 }
 
-VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionInfo(
-    VkPhysicalDevice     physical_device,
-    VkExtensionInfoType  infoType,
-    uint32_t             extensionIndex,
-    size_t              *pDataSize,
-    void                *pData)
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(
+        uint32_t extensionIndex,
+        VkExtensionProperties*    pProperties)
 {
-    uint32_t *count;
+    /* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
+    if (extensionIndex >= SCREENSHOT_LAYER_EXT_ARRAY_SIZE)
+        return VK_ERROR_INVALID_VALUE;
 
-    if (pDataSize == NULL) {
-        return VK_ERROR_INVALID_POINTER;
-    }
+    memcpy(pProperties, &ssExts[extensionIndex], sizeof(VkExtensionProperties));
 
-    switch (infoType) {
-        case VK_EXTENSION_INFO_TYPE_COUNT:
-            *pDataSize = sizeof(uint32_t);
-            if (pData == NULL) {
-                return VK_SUCCESS;
-            }
-            count = (uint32_t *) pData;
-            *count = SCREENSHOT_LAYER_EXT_ARRAY_SIZE;
-            break;
-        case VK_EXTENSION_INFO_TYPE_PROPERTIES:
-            *pDataSize = sizeof(VkExtensionProperties);
-            if (pData == NULL) {
-                return VK_SUCCESS;
-            }
-            if (extensionIndex >= SCREENSHOT_LAYER_EXT_ARRAY_SIZE) {
-                return VK_ERROR_INVALID_VALUE;
-            }
-            memcpy((VkExtensionProperties *) pData, &ssExts[extensionIndex], sizeof(VkExtensionProperties));
-            break;
-        default:
-            return VK_ERROR_INVALID_VALUE;
-    }
+    return VK_SUCCESS;
+}
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionCount(
+                                               VkPhysicalDevice gpu,
+                                               uint32_t* pCount)
+{
+    *pCount = SCREENSHOT_LAYER_EXT_ARRAY_SIZE;
+    return VK_SUCCESS;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
+                                               VkPhysicalDevice gpu,
+                                               uint32_t extensionIndex,
+                                               VkExtensionProperties* pProperties)
+{
+    /* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
+
+    if (extensionIndex >= SCREENSHOT_LAYER_EXT_ARRAY_SIZE)
+        return VK_ERROR_INVALID_VALUE;
+    memcpy(pProperties, &ssExts[extensionIndex], sizeof(VkExtensionProperties));
 
     return VK_SUCCESS;
 }
@@ -613,6 +570,18 @@
     if (!strcmp(funcName, "vkGetDeviceQueue"))
         return (void*) vkGetDeviceQueue;
 
+    if (!strcmp(funcName, "vkGetGlobalExtensionCount"))
+        return (void*) vkGetGlobalExtensionCount;
+
+    if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionCount"))
+        return (void*) vkGetPhysicalDeviceExtensionCount;
+
+    if (!strcmp(funcName, "vkGetGlobalExtensionProperties"))
+        return (void*) vkGetGlobalExtensionProperties;
+
+    if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionProperties"))
+        return (void*) vkGetPhysicalDeviceExtensionProperties;
+
     VkLayerDispatchTable *pDisp =  get_dispatch_table(screenshot_device_table_map, dev);
     if (deviceExtMap.size() == 0 || deviceExtMap[pDisp].wsi_lunarg_enabled)
     {