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;