From ee1852486c84725bd6959c53f335d811ec967ade Mon Sep 17 00:00:00 2001 From: Tomasz Owczarek Date: Mon, 9 Sep 2019 16:03:44 +0100 Subject: [PATCH] Accept saturated values for the 32bit buffer API documentation, extension 1.1, vkGetQueryPoolResults description: "If VK_QUERY_RESULT_64_BIT is not set and the result overflows a 32-bit value, the value may either wrap or saturate." Affects: dEQP-VK.pipeline.timestamp.misc_tests.* Components: Vulkan VK-GL-CTS issue: 1985 Change-Id: Id229ea4c13b52bf27c00de734c437d878365fef9 (cherry picked from commit 9eeec03a6dc5f6c05dab28eb418d25c5794f8d0e) --- .../vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp index d076b73..c4c519e 100644 --- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp +++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp @@ -3024,6 +3024,8 @@ tcu::TestStatus ConsistentQueryResultsTestInstance::iterate(void) deUint32 tsGet32Bits; deUint64 tsGet64Bits; + constexpr deUint32 maxDeUint32Value = std::numeric_limits::max(); + submitCommandsAndWait(vk, vkDevice, queue, m_cmdBuffer.get()); // Get results from buffers. @@ -3043,7 +3045,8 @@ tcu::TestStatus ConsistentQueryResultsTestInstance::iterate(void) // Check results are consistent. if (tsBuffer32Bits == tsGet32Bits && tsBuffer64Bits == tsGet64Bits && - (tsGet64Bits & std::numeric_limits::max()) == tsGet32Bits) + (((tsGet64Bits & maxDeUint32Value) == tsGet32Bits) || + ((tsGet64Bits > maxDeUint32Value) && (maxDeUint32Value == tsGet32Bits)))) { return tcu::TestStatus::pass("Pass"); } -- 2.7.4