From: Boris Zanin Date: Wed, 6 Apr 2022 08:56:47 +0000 (+0200) Subject: Add robustness2 limits validation test X-Git-Tag: upstream/1.3.5~340 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=feedce0bdad03a96c43162f401267edeb2bfaf9b;p=platform%2Fupstream%2FVK-GL-CTS.git Add robustness2 limits validation test Implements VK_EXT_robustness2 properties and features validation test. Add: dEQP-VK.api.info.vulkan1p2_limits_validation.robustness2 Components: Vulkan VK-GL-CTS issue: 3388 Change-Id: I2e14f062ad2b6826751d223d88db45ce855d0c74 --- diff --git a/android/cts/main/vk-master-2022-03-01/api.txt b/android/cts/main/vk-master-2022-03-01/api.txt index 7f47692..e9af675 100644 --- a/android/cts/main/vk-master-2022-03-01/api.txt +++ b/android/cts/main/vk-master-2022-03-01/api.txt @@ -4,6 +4,7 @@ dEQP-VK.api.info.vulkan1p3.properties dEQP-VK.api.info.vulkan1p3.feature_extensions_consistency dEQP-VK.api.info.vulkan1p3.property_extensions_consistency dEQP-VK.api.info.vulkan1p3.feature_bits_influence +dEQP-VK.api.info.vulkan1p2_limits_validation.robustness2 dEQP-VK.api.info.vulkan1p3_limits_validation.khr_maintenance4 dEQP-VK.api.info.vulkan1p3_limits_validation.max_inline_uniform_total_size dEQP-VK.api.info.profiles.roadmap_2022 diff --git a/android/cts/main/vk-master/api.txt b/android/cts/main/vk-master/api.txt index 32bb949..deef79b 100644 --- a/android/cts/main/vk-master/api.txt +++ b/android/cts/main/vk-master/api.txt @@ -1449,6 +1449,7 @@ dEQP-VK.api.info.vulkan1p2_limits_validation.fragment_density_map dEQP-VK.api.info.vulkan1p2_limits_validation.nv_ray_tracing dEQP-VK.api.info.vulkan1p2_limits_validation.timeline_semaphore dEQP-VK.api.info.vulkan1p2_limits_validation.ext_line_rasterization +dEQP-VK.api.info.vulkan1p2_limits_validation.robustness2 dEQP-VK.api.info.vulkan1p3_limits_validation.khr_maintenance4 dEQP-VK.api.info.vulkan1p3_limits_validation.max_inline_uniform_total_size dEQP-VK.api.info.image_format_properties2.1d.optimal.r4g4_unorm_pack8 diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp index 36d7cb3..f2e552e 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp @@ -1543,6 +1543,33 @@ tcu::TestStatus validateLimitsExtLineRasterization (Context& context) return tcu::TestStatus::fail("fail"); } +void checkSupportRobustness2 (Context& context) +{ + context.requireDeviceFunctionality("VK_EXT_robustness2"); +} + +tcu::TestStatus validateLimitsRobustness2 (Context& context) +{ + const InstanceInterface& vki = context.getInstanceInterface(); + const VkPhysicalDevice physicalDevice = context.getPhysicalDevice(); + const VkPhysicalDeviceRobustness2PropertiesEXT& robustness2PropertiesEXT = context.getRobustness2PropertiesEXT(); + VkPhysicalDeviceRobustness2FeaturesEXT robustness2Features = initVulkanStructure(); + VkPhysicalDeviceFeatures2 features2 = initVulkanStructure(&robustness2Features); + + vki.getPhysicalDeviceFeatures2(physicalDevice, &features2); + + if (robustness2Features.robustBufferAccess2 && !features2.features.robustBufferAccess) + return tcu::TestStatus::fail("If robustBufferAccess2 is enabled then robustBufferAccess must also be enabled"); + + if (robustness2PropertiesEXT.robustStorageBufferAccessSizeAlignment != 1 && robustness2PropertiesEXT.robustStorageBufferAccessSizeAlignment != 4) + return tcu::TestStatus::fail("robustness2PropertiesEXT.robustStorageBufferAccessSizeAlignment value must be either 1 or 4."); + + if (!de::inRange(robustness2PropertiesEXT.robustUniformBufferAccessSizeAlignment, (VkDeviceSize)1u, (VkDeviceSize)256u) || !deIsPowerOfTwo64(robustness2PropertiesEXT.robustUniformBufferAccessSizeAlignment)) + return tcu::TestStatus::fail("robustness2PropertiesEXT.robustUniformBufferAccessSizeAlignment must be a power of two in the range [1, 256]"); + + return tcu::TestStatus::pass("pass"); +} + tcu::TestStatus validateLimitsMaxInlineUniformTotalSize (Context& context) { const VkBool32 checkAlways = VK_TRUE; @@ -6636,6 +6663,7 @@ tcu::TestCaseGroup* createFeatureInfoTests (tcu::TestContext& testCtx) addFunctionCase(limitsValidationTests.get(), "nv_ray_tracing", "VK_NV_ray_tracing limit validation", checkSupportNvRayTracing, validateLimitsNvRayTracing); addFunctionCase(limitsValidationTests.get(), "timeline_semaphore", "VK_KHR_timeline_semaphore limit validation", checkSupportKhrTimelineSemaphore, validateLimitsKhrTimelineSemaphore); addFunctionCase(limitsValidationTests.get(), "ext_line_rasterization", "VK_EXT_line_rasterization limit validation", checkSupportExtLineRasterization, validateLimitsExtLineRasterization); + addFunctionCase(limitsValidationTests.get(), "robustness2", "VK_EXT_robustness2 limit validation", checkSupportRobustness2, validateLimitsRobustness2); infoTests->addChild(limitsValidationTests.release()); } diff --git a/external/vulkancts/mustpass/main/vk-default/api.txt b/external/vulkancts/mustpass/main/vk-default/api.txt index 03f82dc..b80935e 100644 --- a/external/vulkancts/mustpass/main/vk-default/api.txt +++ b/external/vulkancts/mustpass/main/vk-default/api.txt @@ -1450,6 +1450,7 @@ dEQP-VK.api.info.vulkan1p2_limits_validation.fragment_density_map dEQP-VK.api.info.vulkan1p2_limits_validation.nv_ray_tracing dEQP-VK.api.info.vulkan1p2_limits_validation.timeline_semaphore dEQP-VK.api.info.vulkan1p2_limits_validation.ext_line_rasterization +dEQP-VK.api.info.vulkan1p2_limits_validation.robustness2 dEQP-VK.api.info.vulkan1p3_limits_validation.khr_maintenance4 dEQP-VK.api.info.vulkan1p3_limits_validation.max_inline_uniform_total_size dEQP-VK.api.info.image_format_properties2.1d.optimal.r4g4_unorm_pack8