]> git.sesse.net Git - movit/blobdiff - resample_effect_test.cpp
Fix compute shader outputs on NVIDIA.
[movit] / resample_effect_test.cpp
index 5b620fde76f8c13fe80496c92b8fd8d61237cf62..9678aa015cadfff872f0a17950f8c1f537e7c36b 100644 (file)
@@ -70,7 +70,7 @@ TEST(ResampleEffectTest, UpscaleByTwoGetsCorrectPixelCenters) {
                }
        }
 
-       EffectChainTester tester(NULL, size * 2, size * 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
+       EffectChainTester tester(nullptr, size * 2, size * 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
 
        ImageFormat format;
        format.color_space = COLORSPACE_sRGB;
@@ -112,7 +112,7 @@ TEST(ResampleEffectTest, DownscaleByTwoGetsCorrectPixelCenters) {
                }
        }
 
-       EffectChainTester tester(NULL, size, size, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
+       EffectChainTester tester(nullptr, size, size, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
 
        ImageFormat format;
        format.color_space = COLORSPACE_sRGB;
@@ -142,7 +142,7 @@ TEST(ResampleEffectTest, UpscaleByThreeGetsCorrectPixelCenters) {
        };
        float out_data[size * size * 9];
 
-       EffectChainTester tester(NULL, size * 3, size * 3, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
+       EffectChainTester tester(nullptr, size * 3, size * 3, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
 
        ImageFormat format;
        format.color_space = COLORSPACE_sRGB;
@@ -162,8 +162,8 @@ TEST(ResampleEffectTest, UpscaleByThreeGetsCorrectPixelCenters) {
        EXPECT_FLOAT_EQ(1.0, out_data[7 * (size * 3) + 7]);
        for (unsigned y = 0; y < size * 3; ++y) {
                for (unsigned x = 0; x < size * 3; ++x) {
-                       EXPECT_FLOAT_EQ(out_data[y * (size * 3) + x], out_data[(size * 3 - y - 1) * (size * 3) + x]);
-                       EXPECT_FLOAT_EQ(out_data[y * (size * 3) + x], out_data[y * (size * 3) + (size * 3 - x - 1)]);
+                       EXPECT_NEAR(out_data[y * (size * 3) + x], out_data[(size * 3 - y - 1) * (size * 3) + x], 1e-6);
+                       EXPECT_NEAR(out_data[y * (size * 3) + x], out_data[y * (size * 3) + (size * 3 - x - 1)], 1e-6);
                }
        }
 }
@@ -187,7 +187,7 @@ TEST(ResampleEffectTest, HeavyResampleGetsSumRight) {
                }
        }
 
-       EffectChainTester tester(NULL, dwidth, dheight, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR, GL_RGBA32F);
+       EffectChainTester tester(nullptr, dwidth, dheight, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR, GL_RGBA32F);
 
        ImageFormat format;
        format.color_space = COLORSPACE_sRGB;
@@ -317,7 +317,7 @@ TEST(ResampleEffectTest, ReadHalfPixelFromLeftAndScale) {
        };
        float out_data[dst_width * 1];
 
-       EffectChainTester tester(NULL, dst_width, 1, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
+       EffectChainTester tester(nullptr, dst_width, 1, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
 
        ImageFormat format;
        format.color_space = COLORSPACE_sRGB;
@@ -402,12 +402,12 @@ TEST(ResampleEffectTest, VerticalZoomFromTop) {
 }
 
 TEST(ResampleEffectTest, Precision) {
-       const int size = 2048;
+       const int size = 1920;  // Difficult non-power-of-two size.
        const int offset = 5;
 
        // Deliberately put the data of interest very close to the right,
        // where texture coordinates are farther from 0 and thus less precise.
-       float data[size] = {0};
+       float data[size * 2] = {0};
        data[size - offset] = 1.0f;
        float expected_data[size * 2] = {0};
        for (int x = 0; x < size * 2; ++x) {