issue 83 - check for supported formats in buffer_view.create tests
authorJeff Bolz <jbolz@nvidia.com>
Sat, 12 Dec 2015 03:19:52 +0000 (03:19 +0000)
committerJeff Bolz <jbolz@nvidia.com>
Sat, 12 Dec 2015 03:19:52 +0000 (03:19 +0000)
external/vulkancts/modules/vulkan/api/vktApiBufferViewCreateTests.cpp

index d9a4ef7..a33159e 100644 (file)
@@ -105,7 +105,8 @@ tcu::TestStatus BufferViewTestInstance::iterate (void)
        const VkDeviceSize                      size                                    = 16 * 1024;
        VkBuffer                                        testBuffer;
        VkMemoryRequirements            memReqs;
-       const VkBufferCreateInfo        bufferParams                    =
+       VkFormatProperties                      properties;
+       const VkBufferCreateInfo        bufferParams =
        {
                VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,           //      VkStructureType                 sType;
                DE_NULL,                                                                        //      const void*                             pNext;
@@ -117,6 +118,10 @@ tcu::TestStatus BufferViewTestInstance::iterate (void)
                &queueFamilyIndex,                                                      //      const deUint32*                 pQueueFamilyIndices;
        };
 
+       m_context.getInstanceInterface().getPhysicalDeviceFormatProperties(m_context.getPhysicalDevice(), m_testCase.format, &properties);
+       if (!(properties.bufferFeatures & m_testCase.usage))
+               TCU_THROW(NotSupportedError, "Format not supported");
+
        if (vk.createBuffer(vkDevice, &bufferParams, (const VkAllocationCallbacks*)DE_NULL, &testBuffer) != VK_SUCCESS)
                return tcu::TestStatus::fail("Buffer creation failed!");