<< "Expected sRGB not to be able to represent 0.5 exactly (got " << out_data[1] << ")";
EXPECT_LT(fabs(out_data[1] - data[1]), 0.1f)
<< "Expected sRGB to be able to represent 0.5 approximately (got " << out_data[1] << ")";
+
+ // This state should have been preserved.
+ EXPECT_FALSE(glIsEnabled(GL_FRAMEBUFFER_SRGB));
}
// An effect that is like IdentityEffect, but also does not require linear light.
}
// This maximum error is pretty bad; about 6.5 levels of a 10-bit sRGB
- // framebuffer.
- expect_equal(linear_data, out_data, size, 1, 7e-3, 2e-5);
+ // framebuffer. (Slightly more on NVIDIA cards.)
+ expect_equal(linear_data, out_data, size, 1, 7.5e-3, 2e-5);
}
TEST(EffectChainTest, SquareRoot10bitIntermediateAccuracy) {
// This maximum error is much better; about 0.7 levels of a 10-bit sRGB
// framebuffer (ideal would be 0.5). That is an order of magnitude better
// than in the linear test above. The RMS error is much better, too.
- expect_equal(linear_data, out_data, size, 1, 7e-4, 5e-6);
+ expect_equal(linear_data, out_data, size, 1, 7.5e-4, 5e-6);
}
TEST(EffectChainTest, SquareRootIntermediateIsTurnedOffForNonLinearData) {