Fix wrong calculation to check diff between floats.
Affects:
dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.*
Components: Vulkan
VK-GL-CTS issue: 3916
Change-Id: I05d2b7375c0bd34b6b7fffabbfe52969009ea218
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
index 90ab988..7dc909d 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
@@ -4621,8 +4621,9 @@
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