Fixes AHB image tests feature check
authorMatthew Netsch <quic_mnetsch@quicinc.com>
Mon, 1 Oct 2018 15:27:44 +0000 (11:27 -0400)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Mon, 1 Oct 2018 15:27:44 +0000 (11:27 -0400)
Test now checks for protected feature
before adding protected flag to test set.

Components: Vulkan
VK-GL-CTS issue: 1396

Affects:
dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.*

Change-Id: Icf174789d95a73c454aac33802b8a74d9e13c0cc

external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp

index 135bea9..bc6806a 100644 (file)
@@ -3856,6 +3856,17 @@ tcu::TestStatus testAndroidHardwareBufferImageFormat  (Context& context, vk::VkF
        const vk::DeviceDriver                                            vkd                                   (vkp, *instance, *device);
        TestLog&                                                                          log                             = context.getTestContext().getLog();
 
+       vk::VkPhysicalDeviceProtectedMemoryFeatures             protectedFeatures;
+       protectedFeatures.sType                         = vk::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
+       protectedFeatures.pNext                         = DE_NULL;
+       protectedFeatures.protectedMemory       = VK_FALSE;
+
+       vk::VkPhysicalDeviceFeatures2                                   deviceFeatures;
+       deviceFeatures.sType            = vk::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+       deviceFeatures.pNext            = &protectedFeatures;
+
+       vki.getPhysicalDeviceFeatures2(physicalDevice, &deviceFeatures);
+
        const vk::VkImageUsageFlagBits                            usageFlags[]            =
        {
                vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
@@ -3899,6 +3910,9 @@ tcu::TestStatus testAndroidHardwareBufferImageFormat  (Context& context, vk::VkF
                        const size_t    bit     = numOfUsageFlags + createFlagNdx;
                        if ((combo & (1u << bit)) == 0)
                                continue;
+                       if (((createFlags[createFlagNdx] & vk::VK_IMAGE_CREATE_PROTECTED_BIT) == vk::VK_IMAGE_CREATE_PROTECTED_BIT ) &&
+                               (protectedFeatures.protectedMemory == VK_FALSE))
+                               continue;
                        createFlag |= createFlags[createFlagNdx];
                        requiredAhbUsage |= ahbApi->vkCreateToAhbUsage(createFlags[createFlagNdx]);
                }