From: Jason Ekstrand Date: Thu, 17 Dec 2015 21:58:35 +0000 (-0800) Subject: buffer_view.create: Separate usage and features bits X-Git-Tag: upstream/0.1.0~812^2~430^2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=250f87d49c49cd75b70d0b3bb1749d072bfda76b;p=platform%2Fupstream%2FVK-GL-CTS.git buffer_view.create: Separate usage and features bits In the Vulkan API, VkFormatFeatureFlags and VkBufferUsageFlags are separate bitfields. The tests were comparing BufferUsageFlags to the FormatFeatureFlags that it got from the driver so it would try and create invalid buffer views. This commit splits these apart so the tests are now properly querying the driver. This fixes #108 --- diff --git a/external/vulkancts/modules/vulkan/api/vktApiBufferViewCreateTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiBufferViewCreateTests.cpp index a33159e..39aef7e 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiBufferViewCreateTests.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiBufferViewCreateTests.cpp @@ -54,11 +54,12 @@ namespace struct BufferViewCaseParameters { - VkFormat format; - VkDeviceSize offset; - VkDeviceSize range; - VkBufferUsageFlags usage; - bool beforeAllocateMemory; + VkFormat format; + VkDeviceSize offset; + VkDeviceSize range; + VkBufferUsageFlags usage; + VkFormatFeatureFlags features; + bool beforeAllocateMemory; }; class BufferViewTestInstance : public TestInstance @@ -119,7 +120,7 @@ tcu::TestStatus BufferViewTestInstance::iterate (void) }; m_context.getInstanceInterface().getPhysicalDeviceFormatProperties(m_context.getPhysicalDevice(), m_testCase.format, &properties); - if (!(properties.bufferFeatures & m_testCase.usage)) + if (!(properties.bufferFeatures & m_testCase.features)) TCU_THROW(NotSupportedError, "Format not supported"); if (vk.createBuffer(vkDevice, &bufferParams, (const VkAllocationCallbacks*)DE_NULL, &testBuffer) != VK_SUCCESS) @@ -229,6 +230,7 @@ tcu::TestStatus BufferViewTestInstance::iterate (void) 0, // VkDeviceSize offset; range, // VkDeviceSize range; VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, // VkBufferUsageFlags usage; + VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT, // VkFormatFeatureFlags flags; false // beforeAlloceMemory bool; }; bufferViewTests->addChild(new BufferViewTestCase(testCtx, testName.str() + "_before_uniform", testDescription.str(), testParams)); @@ -240,6 +242,7 @@ tcu::TestStatus BufferViewTestInstance::iterate (void) 0, // VkDeviceSize offset; range, // VkDeviceSize range; VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, // VkBufferUsageFlags usage; + VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT, // VkFormatFeatureFlags flags; true // beforeAlloceMemory bool; }; bufferViewTests->addChild(new BufferViewTestCase(testCtx, testName.str() + "_after_uniform", testDescription.str(), testParams)); @@ -251,6 +254,7 @@ tcu::TestStatus BufferViewTestInstance::iterate (void) 0, // VkDeviceSize offset; range, // VkDeviceSize range; VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, // VkBufferUsageFlags usage; + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT, // VkFormatFeatureFlags flags; false // beforeAlloceMemory bool; }; bufferViewTests->addChild(new BufferViewTestCase(testCtx, testName.str() + "_before_storage", testDescription.str(), testParams)); @@ -262,6 +266,7 @@ tcu::TestStatus BufferViewTestInstance::iterate (void) 0, // VkDeviceSize offset; range, // VkDeviceSize range; VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, // VkBufferUsageFlags usage; + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT, // VkFormatFeatureFlags flags; true // beforeAlloceMemory bool; }; bufferViewTests->addChild(new BufferViewTestCase(testCtx, testName.str() + "_after_storage", testDescription.str(), testParams));