Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
[platform/upstream/VK-GL-CTS.git] / external / vulkancts / modules / vulkan / api / vktApiFeatureInfo.cpp
index 1e53cd9..a1eb7dc 100644 (file)
@@ -472,14 +472,14 @@ bool validateFeatureLimits(VkPhysicalDeviceProperties* properties, VkPhysicalDev
                }
        }
 
-       if (limits->viewportBoundsRange[0] > -2 * limits->maxViewportDimensions[0])
+       if (limits->viewportBoundsRange[0] > float(-2 * limits->maxViewportDimensions[0]))
        {
                log << TestLog::Message << "limit validation failed, viewPortBoundsRange[0] of " << limits->viewportBoundsRange[0]
                        << "is larger than -2*maxViewportDimension[0] of " << -2*limits->maxViewportDimensions[0] << TestLog::EndMessage;
                limitsOk = false;
        }
 
-       if (limits->viewportBoundsRange[1] < 2 * limits->maxViewportDimensions[1] - 1)
+       if (limits->viewportBoundsRange[1] < float(2 * limits->maxViewportDimensions[1] - 1))
        {
                log << TestLog::Message << "limit validation failed, viewportBoundsRange[1] of " << limits->viewportBoundsRange[1]
                        << "is less than 2*maxViewportDimension[1] of " << 2*limits->maxViewportDimensions[1] << TestLog::EndMessage;
@@ -671,6 +671,8 @@ void checkDeviceExtensions (tcu::ResultCollector& results, const vector<string>&
                "VK_KHR_sampler_mirror_clamp_to_edge",
                "VK_KHR_shader_draw_parameters",
                "VK_KHR_maintenance1",
+               "VK_KHR_push_descriptor",
+               "VK_KHR_descriptor_update_template",
        };
 
        checkKhrExtensions(results, extensions, DE_LENGTH_OF_ARRAY(s_allowedDeviceKhrExtensions), s_allowedDeviceKhrExtensions);
@@ -1887,6 +1889,10 @@ bool isRequiredImageParameterCombination (const VkPhysicalDeviceFeatures&        device
        if (isCompressedFormat(format) && (imageType == VK_IMAGE_TYPE_1D || imageType == VK_IMAGE_TYPE_3D))
                return false;
 
+       // Support for 1D and 3D depth/stencil textures is optional
+       if (isDepthStencilFormat(format) && (imageType == VK_IMAGE_TYPE_1D || imageType == VK_IMAGE_TYPE_3D))
+               return false;
+
        DE_ASSERT(deviceFeatures.sparseBinding || (createFlags & (VK_IMAGE_CREATE_SPARSE_BINDING_BIT|VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT)) == 0);
        DE_ASSERT(deviceFeatures.sparseResidencyAliased || (createFlags & VK_IMAGE_CREATE_SPARSE_ALIASED_BIT) == 0);
 
@@ -2418,7 +2424,7 @@ tcu::TestStatus imageFormatProperties2 (Context& context, const VkFormat format,
        {
                const VkPhysicalDevice  physicalDevice  = devices[deviceNdx];
 
-               for (VkImageUsageFlags curUsageFlags = 0; curUsageFlags <= allUsageFlags; curUsageFlags++)
+               for (VkImageUsageFlags curUsageFlags = (VkImageUsageFlags)1; curUsageFlags <= allUsageFlags; curUsageFlags++)
                {
                        for (VkImageCreateFlags curCreateFlags = 0; curCreateFlags <= allCreateFlags; curCreateFlags++)
                        {
@@ -2487,11 +2493,9 @@ tcu::TestStatus sparseImageFormatProperties2 (Context& context, const VkFormat f
        {
                const VkPhysicalDevice  physicalDevice  = devices[deviceNdx];
 
-               for (deUint32 sampleCount = 1; sampleCount <= 64; sampleCount++)
+               for (deUint32 sampleCountBit = VK_SAMPLE_COUNT_1_BIT; sampleCountBit <= VK_SAMPLE_COUNT_64_BIT; sampleCountBit = (sampleCountBit << 1u))
                {
-                       const VkSampleCountFlagBits     sampleCountFlagBit      = (VkSampleCountFlagBits)(1u<<sampleCount);
-
-                       for (VkImageUsageFlags curUsageFlags = 0; curUsageFlags <= allUsageFlags; curUsageFlags++)
+                       for (VkImageUsageFlags curUsageFlags = (VkImageUsageFlags)1; curUsageFlags <= allUsageFlags; curUsageFlags++)
                        {
                                const VkPhysicalDeviceSparseImageFormatInfo2KHR imageFormatInfo =
                                {
@@ -2499,7 +2503,7 @@ tcu::TestStatus sparseImageFormatProperties2 (Context& context, const VkFormat f
                                        DE_NULL,
                                        format,
                                        imageType,
-                                       sampleCountFlagBit,
+                                       (VkSampleCountFlagBits)sampleCountBit,
                                        curUsageFlags,
                                        tiling,
                                };
@@ -2581,14 +2585,16 @@ tcu::TestStatus testNoUnknownExtensions (Context& context)
 {
        TestLog&                                log                                     = context.getTestContext().getLog();
        tcu::ResultCollector    results                         (log);
-       set<string>                             allowedExtensions;
+       set<string>                             allowedInstanceExtensions;
+       set<string>                             allowedDeviceExtensions;
 
        // All known extensions should be added to allowedExtensions:
        // allowedExtensions.insert("VK_GOOGLE_extension1");
+       allowedDeviceExtensions.insert("VK_GOOGLE_display_timing");
 
        // Instance extensions
        checkExtensions(results,
-                                       allowedExtensions,
+                                       allowedInstanceExtensions,
                                        enumerateInstanceExtensionProperties(context.getPlatformInterface(), DE_NULL));
 
        // Extensions exposed by instance layers
@@ -2598,14 +2604,14 @@ tcu::TestStatus testNoUnknownExtensions (Context& context)
                for (vector<VkLayerProperties>::const_iterator layer = layers.begin(); layer != layers.end(); ++layer)
                {
                        checkExtensions(results,
-                                                       allowedExtensions,
+                                                       allowedInstanceExtensions,
                                                        enumerateInstanceExtensionProperties(context.getPlatformInterface(), layer->layerName));
                }
        }
 
        // Device extensions
        checkExtensions(results,
-                                       allowedExtensions,
+                                       allowedDeviceExtensions,
                                        enumerateDeviceExtensionProperties(context.getInstanceInterface(), context.getPhysicalDevice(), DE_NULL));
 
        // Extensions exposed by device layers
@@ -2615,7 +2621,7 @@ tcu::TestStatus testNoUnknownExtensions (Context& context)
                for (vector<VkLayerProperties>::const_iterator layer = layers.begin(); layer != layers.end(); ++layer)
                {
                        checkExtensions(results,
-                                                       allowedExtensions,
+                                                       allowedDeviceExtensions,
                                                        enumerateDeviceExtensionProperties(context.getInstanceInterface(), context.getPhysicalDevice(), layer->layerName));
                }
        }