From: Jarkko Pöyry Date: Thu, 18 Jun 2015 18:05:09 +0000 (-0700) Subject: Allow interchangeable signed zeros in fragment stage frexp. X-Git-Tag: upstream/0.1.0~1309^2~84 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7b3d2d144661c38a8e609d4633f1585b7c5d3c43;p=platform%2Fupstream%2FVK-GL-CTS.git Allow interchangeable signed zeros in fragment stage frexp. Bug: 21923324 Change-Id: I2a556e6fcefe43a2bae62b3446fa2cccb4fa7356 --- diff --git a/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp b/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp index 2eab2e7..71613d2 100644 --- a/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp +++ b/modules/gles31/functional/es31fShaderCommonFunctionTests.cpp @@ -1737,13 +1737,14 @@ public: bool compare (const void* const* inputs, const void* const* outputs) { - const glu::DataType type = m_spec.inputs[0].varType.getBasicType(); - const glu::Precision precision = m_spec.inputs[0].varType.getPrecision(); - const int scalarSize = glu::getDataTypeScalarSize(type); - const bool signedZero = supportsSignedZero(precision); + const glu::DataType type = m_spec.inputs[0].varType.getBasicType(); + const glu::Precision precision = m_spec.inputs[0].varType.getPrecision(); + const int scalarSize = glu::getDataTypeScalarSize(type); + const bool transitSupportsSignedZero = (m_shaderType != glu::SHADERTYPE_FRAGMENT); // executor cannot reliably transit negative zero to fragment stage + const bool signedZero = supportsSignedZero(precision) && transitSupportsSignedZero; - const int mantissaBits = getMinMantissaBits(precision); - const deUint32 maxUlpDiff = getMaxUlpDiffFromBits(mantissaBits); + const int mantissaBits = getMinMantissaBits(precision); + const deUint32 maxUlpDiff = getMaxUlpDiffFromBits(mantissaBits); for (int compNdx = 0; compNdx < scalarSize; compNdx++) {