vulkan.h: Remove vkGetFormatInfo, add features/limits (#12827, v125)

NOTES:

1/ Some layers impact from vkGetFormatInfo ->
vkGetPhysicalDeviceFormatInfo; some checks are currently disabled in
ParamChecker pending discussion on the best way to do this. Similar
checks in Image layer implemented via additional layer_data member
to link back from VkDevice -> VkPhysicalDevice.

2/ VkPhysicalDeviceFeatures, VkPhysicalDeviceLimits members all zero
for now; also some further churn to be done to the contents of these
structures.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
diff --git a/tests/blit_tests.cpp b/tests/blit_tests.cpp
index b2a13ec..058f47f 100644
--- a/tests/blit_tests.cpp
+++ b/tests/blit_tests.cpp
@@ -1337,13 +1337,11 @@
          it != test_formats_.end(); it++) {
         const float color[4] = { 0.0f, 1.0f, 0.0f, 1.0f };
         VkFormatProperties props;
-        size_t size = sizeof(props);
         VkResult err;
 
-        err = vkGetFormatInfo(dev_.obj(), it->format,
-                               VK_FORMAT_INFO_TYPE_PROPERTIES,
-                               &size, &props);
+        err = vkGetPhysicalDeviceFormatInfo(dev_.gpu().obj(), it->format, &props);
         ASSERT_EQ(err, VK_SUCCESS);
+
         if (it->tiling == VK_IMAGE_TILING_LINEAR && !(props.linearTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT))
             continue;
 
@@ -1387,13 +1385,11 @@
          it != test_formats_.end(); it++) {
         const uint32_t color[4] = { 0x11111111, 0x22222222, 0x33333333, 0x44444444 };
         VkFormatProperties props;
-        size_t size = sizeof(props);
         VkResult err;
 
-        err = vkGetFormatInfo(dev_.obj(), it->format,
-                               VK_FORMAT_INFO_TYPE_PROPERTIES,
-                               &size, &props);
+        err = vkGetPhysicalDeviceFormatInfo(dev_.gpu().obj(), it->format, &props);
         ASSERT_EQ(err, VK_SUCCESS);
+
         if (it->tiling == VK_IMAGE_TILING_LINEAR && !(props.linearTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT))
             continue;
 
@@ -1571,13 +1567,11 @@
     for (std::vector<vk_testing::Device::Format>::const_iterator it = test_formats_.begin();
          it != test_formats_.end(); it++) {
         VkFormatProperties props;
-        size_t size = sizeof(props);
         VkResult err;
 
-        err = vkGetFormatInfo(dev_.obj(), it->format,
-                               VK_FORMAT_INFO_TYPE_PROPERTIES,
-                               &size, &props);
+        err = vkGetPhysicalDeviceFormatInfo(dev_.gpu().obj(), it->format, &props);
         ASSERT_EQ(err, VK_SUCCESS);
+
         if (it->tiling == VK_IMAGE_TILING_LINEAR && !(props.linearTilingFeatures & VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT))
             continue;
 
diff --git a/tests/image_tests.cpp b/tests/image_tests.cpp
index 7a6fbd5..e28ff61 100644
--- a/tests/image_tests.cpp
+++ b/tests/image_tests.cpp
@@ -124,7 +124,6 @@
 {
     VkResult err;
     uint32_t mipCount;
-    size_t size;
     VkFormat fmt;
     VkFormatProperties image_fmt;
 
@@ -149,10 +148,7 @@
      * amount of data may vary and that doesn't work well for using a
      * fixed structure.
      */
-    size = sizeof(image_fmt);
-    err = vkGetFormatInfo(this->device(), fmt,
-                           VK_FORMAT_INFO_TYPE_PROPERTIES,
-                           &size, &image_fmt);
+    err = vkGetPhysicalDeviceFormatInfo(this->objs[0], fmt, &image_fmt);
     ASSERT_VK_SUCCESS(err);
 
     //    typedef struct VkImageCreateInfo_
diff --git a/tests/init.cpp b/tests/init.cpp
index f353fad..cb0c445 100644
--- a/tests/init.cpp
+++ b/tests/init.cpp
@@ -350,7 +350,6 @@
     VkResult err;
     VkImage image;
     uint32_t w, h, mipCount;
-    size_t size;
     VkFormat fmt;
     VkFormatProperties image_fmt;
     size_t data_size;
@@ -379,10 +378,7 @@
      * fixed structure.
      */
 
-    size = sizeof(image_fmt);
-    err = vkGetFormatInfo(device(), fmt,
-                           VK_FORMAT_INFO_TYPE_PROPERTIES,
-                           &size, &image_fmt);
+    err = vkGetPhysicalDeviceFormatInfo(objs[m_device_id], fmt, &image_fmt);
     ASSERT_VK_SUCCESS(err);
 
 //    typedef struct VkImageCreateInfo_
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index b598be7..7c3fa4a 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -306,12 +306,9 @@
         VkImageObj *img = new VkImageObj(m_device);
 
         VkFormatProperties props;
-        size_t size = sizeof(props);
         VkResult err;
 
-        err = vkGetFormatInfo(m_device->obj(), m_render_target_fmt,
-            VK_FORMAT_INFO_TYPE_PROPERTIES,
-            &size, &props);
+        err = vkGetPhysicalDeviceFormatInfo(m_device->gpu().obj(), m_render_target_fmt, &props);
         ASSERT_VK_SUCCESS(err);
 
         if (props.linearTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) {
@@ -651,7 +648,6 @@
     VkFormatProperties image_fmt;
     VkImageTiling tiling;
     VkResult err;
-    size_t size;
 
     mipCount = 0;
 
@@ -664,10 +660,7 @@
         mipCount++;
     }
 
-    size = sizeof(image_fmt);
-    err = vkGetFormatInfo(m_device->obj(), fmt,
-        VK_FORMAT_INFO_TYPE_PROPERTIES,
-        &size, &image_fmt);
+    err = vkGetPhysicalDeviceFormatInfo(m_device->gpu().obj(), fmt, &image_fmt);
     ASSERT_VK_SUCCESS(err);
 
     if (requested_tiling == VK_IMAGE_TILING_LINEAR) {
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index d0526c3..1689f6a 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -417,10 +417,8 @@
 
 VkFormatProperties Device::format_properties(VkFormat format)
 {
-    const VkFormatInfoType type = VK_FORMAT_INFO_TYPE_PROPERTIES;
     VkFormatProperties data;
-    size_t size = sizeof(data);
-    if (!EXPECT(vkGetFormatInfo(obj(), format, type, &size, &data) == VK_SUCCESS && size == sizeof(data)))
+    if (!EXPECT(vkGetPhysicalDeviceFormatInfo(gpu().obj(), format, &data) == VK_SUCCESS))
         memset(&data, 0, sizeof(data));
 
     return data;