Move the compute shader tests into effect_chain_test, as we will have hybrid tests...
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Wed, 22 Nov 2017 18:57:32 +0000 (19:57 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Wed, 22 Nov 2017 18:57:37 +0000 (19:57 +0100)
Makefile.in
compute_shader_test.cpp [deleted file]
effect_chain_test.cpp

index 4ff1705..c25d77d 100644 (file)
@@ -88,7 +88,7 @@ UNTESTED_EFFECTS += fft_input
 EFFECTS = $(TESTED_EFFECTS) $(UNTESTED_EFFECTS)
 
 # Unit tests.
-TESTS=effect_chain_test compute_shader_test fp16_test $(TESTED_INPUTS:=_test) $(TESTED_EFFECTS:=_test)
+TESTS=effect_chain_test fp16_test $(TESTED_INPUTS:=_test) $(TESTED_EFFECTS:=_test)
 
 LIB_OBJS=effect_util.o util.o effect.o effect_chain.o init.o resource_pool.o ycbcr.o $(INPUTS:=.o) $(EFFECTS:=.o)
 
diff --git a/compute_shader_test.cpp b/compute_shader_test.cpp
deleted file mode 100644 (file)
index 50b2694..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#include <string>
-
-#include <epoxy/gl.h>
-#include <assert.h>
-
-#include "effect.h"
-#include "flat_input.h"
-#include "gtest/gtest.h"
-#include "init.h"
-#include "resource_pool.h"
-#include "test_util.h"
-#include "util.h"
-
-using namespace std;
-
-namespace movit {
-
-// An effect that does nothing.
-class IdentityComputeEffect : public Effect {
-public:
-       IdentityComputeEffect() {}
-       virtual string effect_type_id() const { return "IdentityComputeEffect"; }
-       virtual bool is_compute_shader() const { return true; }
-       string output_fragment_shader() { return read_file("identity.comp"); }
-};
-
-TEST(ComputeShaderTest, Identity) {
-       float data[] = {
-               0.0f, 0.25f, 0.3f,
-               0.75f, 1.0f, 1.0f,
-       };
-       float out_data[6];
-       EffectChainTester tester(data, 3, 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
-       if (!movit_compute_shaders_supported) {
-               fprintf(stderr, "Skipping test; no support for compile shaders.\n");
-               return;
-       }
-       tester.get_chain()->add_effect(new IdentityComputeEffect());
-       tester.run(out_data, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR);
-
-       expect_equal(data, out_data, 3, 2);
-}
-
-// Like IdentityComputeEffect, but due to the alpha handling, this will be
-// the very last effect in the chain, which means we can't output it directly
-// to the screen.
-class IdentityAlphaComputeEffect : public IdentityComputeEffect {
-       AlphaHandling alpha_handling() const { return DONT_CARE_ALPHA_TYPE; }
-};
-
-TEST(ComputeShaderTest, LastEffectInChain) {
-       float data[] = {
-               0.0f, 0.25f, 0.3f,
-               0.75f, 1.0f, 1.0f,
-       };
-       float out_data[6];
-       EffectChainTester tester(data, 3, 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
-       if (!movit_compute_shaders_supported) {
-               fprintf(stderr, "Skipping test; no support for compile shaders.\n");
-               return;
-       }
-       tester.get_chain()->add_effect(new IdentityAlphaComputeEffect());
-       tester.run(out_data, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR);
-
-       expect_equal(data, out_data, 3, 2);
-}
-
-TEST(ComputeShaderTest, Render8BitTo8Bit) {
-       uint8_t data[] = {
-               14, 200, 80,
-               90, 100, 110,
-       };
-       uint8_t out_data[6];
-       EffectChainTester tester(nullptr, 3, 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR, GL_RGBA8);
-       if (!movit_compute_shaders_supported) {
-               fprintf(stderr, "Skipping test; no support for compile shaders.\n");
-               return;
-       }
-       tester.add_input(data, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR, 3, 2);
-       tester.get_chain()->add_effect(new IdentityAlphaComputeEffect());
-       tester.run(out_data, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR);
-
-       expect_equal(data, out_data, 3, 2);
-}
-
-}  // namespace movit
index 1200876..2140354 100644 (file)
@@ -1467,4 +1467,72 @@ TEST(EffectChainTest, ProgramsAreClonedForMultipleThreads) {
        expect_equal(data, out_data, 3, 2);
 }
 
+// An effect that does nothing, but as a compute shader.
+class IdentityComputeEffect : public Effect {
+public:
+       IdentityComputeEffect() {}
+       virtual string effect_type_id() const { return "IdentityComputeEffect"; }
+       virtual bool is_compute_shader() const { return true; }
+       string output_fragment_shader() { return read_file("identity.comp"); }
+};
+
+TEST(ComputeShaderTest, Identity) {
+       float data[] = {
+               0.0f, 0.25f, 0.3f,
+               0.75f, 1.0f, 1.0f,
+       };
+       float out_data[6];
+       EffectChainTester tester(data, 3, 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
+       if (!movit_compute_shaders_supported) {
+               fprintf(stderr, "Skipping test; no support for compile shaders.\n");
+               return;
+       }
+       tester.get_chain()->add_effect(new IdentityComputeEffect());
+       tester.run(out_data, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR);
+
+       expect_equal(data, out_data, 3, 2);
+}
+
+// Like IdentityComputeEffect, but due to the alpha handling, this will be
+// the very last effect in the chain, which means we can't output it directly
+// to the screen.
+class IdentityAlphaComputeEffect : public IdentityComputeEffect {
+       AlphaHandling alpha_handling() const { return DONT_CARE_ALPHA_TYPE; }
+};
+
+TEST(ComputeShaderTest, LastEffectInChain) {
+       float data[] = {
+               0.0f, 0.25f, 0.3f,
+               0.75f, 1.0f, 1.0f,
+       };
+       float out_data[6];
+       EffectChainTester tester(data, 3, 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR);
+       if (!movit_compute_shaders_supported) {
+               fprintf(stderr, "Skipping test; no support for compile shaders.\n");
+               return;
+       }
+       tester.get_chain()->add_effect(new IdentityAlphaComputeEffect());
+       tester.run(out_data, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR);
+
+       expect_equal(data, out_data, 3, 2);
+}
+
+TEST(ComputeShaderTest, Render8BitTo8Bit) {
+       uint8_t data[] = {
+               14, 200, 80,
+               90, 100, 110,
+       };
+       uint8_t out_data[6];
+       EffectChainTester tester(nullptr, 3, 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR, GL_RGBA8);
+       if (!movit_compute_shaders_supported) {
+               fprintf(stderr, "Skipping test; no support for compile shaders.\n");
+               return;
+       }
+       tester.add_input(data, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR, 3, 2);
+       tester.get_chain()->add_effect(new IdentityAlphaComputeEffect());
+       tester.run(out_data, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR);
+
+       expect_equal(data, out_data, 3, 2);
+}
+
 }  // namespace movit