Merge branch '79-bufferview-sparse_binding' into 'master'
authorPyry Haulos <phaulos@google.com>
Thu, 17 Dec 2015 16:29:12 +0000 (11:29 -0500)
committerPyry Haulos <phaulos@google.com>
Thu, 17 Dec 2015 16:29:12 +0000 (11:29 -0500)
79 BufferView test: check if sparseBinding feature is enabled

This fixes issue #79

See merge request !130

1  2 
external/vulkancts/modules/vulkan/api/vktApiBufferViewCreateTests.cpp

index a33159eea58ffa7b0d16781b7f0e87d7974c574b,a01adf44992df67860040c03cd3aa2869f270dab..6b4348b0a2641c4f793f600348293f0b418bd521
@@@ -105,23 -111,18 +111,23 @@@ tcu::TestStatus BufferViewTestInstance:
        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;
-               VK_BUFFER_CREATE_SPARSE_BINDING_BIT,            //      VkBufferCreateFlags             flags;
-               size,                                                                           //      VkDeviceSize                    size;
-               m_testCase.usage,                                                       //      VkBufferUsageFlags              usage;
-               VK_SHARING_MODE_EXCLUSIVE,                                      //      VkSharingMode                   sharingMode;
-               1u,                                                                                     //      deUint32                                queueFamilyCount;
-               &queueFamilyIndex,                                                      //      const deUint32*                 pQueueFamilyIndices;
+               VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,                                                                                                   //      VkStructureType                 sType;
+               DE_NULL,                                                                                                                                                                //      const void*                             pNext;
+               m_testCase.beforeAllocateMemory == true ? 0 : VK_BUFFER_CREATE_SPARSE_BINDING_BIT,              //      VkBufferCreateFlags             flags;
+               size,                                                                                                                                                                   //      VkDeviceSize                    size;
+               m_testCase.usage,                                                                                                                                               //      VkBufferUsageFlags              usage;
+               VK_SHARING_MODE_EXCLUSIVE,                                                                                                                              //      VkSharingMode                   sharingMode;
+               1u,                                                                                                                                                                             //      deUint32                                queueFamilyCount;
+               &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!");