Fix wrong calculation to check diff between floats.
authorHyunjun Ko <zzoon@igalia.com>
Fri, 2 Sep 2022 05:27:33 +0000 (14:27 +0900)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Thu, 8 Sep 2022 16:36:15 +0000 (16:36 +0000)
Affects:
dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.*

Components: Vulkan

VK-GL-CTS issue: 3916

Change-Id: I05d2b7375c0bd34b6b7fffabbfe52969009ea218

external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp

index 90ab988..7dc909d 100644 (file)
@@ -4621,8 +4621,9 @@ TestStatus runAndVerifyDefaultPipeline (Context& context, InstanceContext instan
                                                                return tcu::TestStatus::fail("Value returned is invalid");
 
                                                        diff = outputFloats[expectedNdx] - expectedFloats[expectedNdx];
+                                                       deUint32 intDiff = static_cast<deUint32>(diff);
 
-                                                       if ((diff < 0.0f) || (deFloatFloor(diff) != diff))
+                                                       if ((diff < 0.0f) || (expectedFloats[expectedNdx] + static_cast<float>(intDiff)) != outputFloats[expectedNdx])
                                                                return tcu::TestStatus::fail("Value returned should be equal to expected value plus non-negative integer");
                                                }
                                                else