diff options
author | Mike Klein <mtklein@google.com> | 2017-06-27 22:52:03 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-06-27 22:52:10 +0000 |
commit | 5ce397205528f82084fc650c2ce27d246c01da33 (patch) | |
tree | 3e359ae172fed10fce8204163d6d372b0c3f6207 /tests | |
parent | 3fe44544c93759e7791ee0df3e5d172cb0f268b6 (diff) |
Revert "Re-land sksl fragment processor support"
This reverts commit c070939fd1a954b7a492bc30f0cf64a664b90181.
Reason for revert:
This has some knock-on effects in the generation of Android.bp from our GN files. See gn/gn_to_bp.py? We're seeing things like "tmp/tmpsBVycx/gen/" end up in the include search path in Android.bp, which obviously don't exist there...
Original change's description:
> Re-land sksl fragment processor support
>
> This reverts commit ed50200682e0de72c3abecaa4d5324ebcd1ed9f9.
>
> Bug: skia:
> Change-Id: I9caa7454b391450620d6989dc472abb3cf7a2cab
> Reviewed-on: https://skia-review.googlesource.com/20965
> Reviewed-by: Ben Wagner <benjaminwagner@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
TBR=benjaminwagner@google.com,ethannicholas@google.com
Change-Id: I502486b5405923b322429219f4cc396a45a14cea
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/20990
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/SkSLFPTest.cpp | 381 | ||||
-rw-r--r-- | tests/SkSLGLSLTest.cpp | 6 |
2 files changed, 2 insertions, 385 deletions
diff --git a/tests/SkSLFPTest.cpp b/tests/SkSLFPTest.cpp deleted file mode 100644 index 6f1326d6f7..0000000000 --- a/tests/SkSLFPTest.cpp +++ /dev/null @@ -1,381 +0,0 @@ -/* - * Copyright 2017 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "SkSLCompiler.h" - -#include "Test.h" - -#if SK_SUPPORT_GPU - -static void test(skiatest::Reporter* r, const char* src, const GrShaderCaps& caps, - std::vector<const char*> expectedH, std::vector<const char*> expectedCPP) { - SkSL::Program::Settings settings; - settings.fCaps = ∩︀ - SkSL::Compiler compiler; - SkSL::StringStream output; - std::unique_ptr<SkSL::Program> program = compiler.convertProgram( - SkSL::Program::kFragmentProcessor_Kind, - SkString(src), - settings); - if (!program) { - SkDebugf("Unexpected error compiling %s\n%s", src, compiler.errorText().c_str()); - return; - } - REPORTER_ASSERT(r, program); - bool success = compiler.toH(*program, "Test", output); - if (!success) { - SkDebugf("Unexpected error compiling %s\n%s", src, compiler.errorText().c_str()); - } - REPORTER_ASSERT(r, success); - if (success) { - for (const char* expected : expectedH) { - bool found = strstr(output.str().c_str(), expected); - if (!found) { - SkDebugf("HEADER MISMATCH:\nsource:\n%s\n\nexpected:\n'%s'\n\nreceived:\n'%s'", src, - expected, output.str().c_str()); - } - REPORTER_ASSERT(r, found); - } - } - output.reset(); - success = compiler.toCPP(*program, "Test", output); - if (!success) { - SkDebugf("Unexpected error compiling %s\n%s", src, compiler.errorText().c_str()); - } - REPORTER_ASSERT(r, success); - if (success) { - for (const char* expected : expectedCPP) { - bool found = strstr(output.str().c_str(), expected); - if (!found) { - SkDebugf("CPP MISMATCH:\nsource:\n%s\n\nexpected:\n'%s'\n\nreceived:\n'%s'", src, - expected, output.str().c_str()); - } - REPORTER_ASSERT(r, found); - } - } -} - -DEF_TEST(SkSLFPHelloWorld, r) { - test(r, - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "/*\n" - " * This file was autogenerated from GrTest.fp.\n" - " */\n" - "#ifndef GrTest_DEFINED\n" - "#define GrTest_DEFINED\n" - "#include \"GrFragmentProcessor.h\"\n" - "#include \"GrCoordTransform.h\"\n" - "#include \"effects/GrProxyMove.h\"\n" - "class GrTest : public GrFragmentProcessor {\n" - "public:\n" - " static sk_sp<GrFragmentProcessor> Make() {\n" - " return sk_sp<GrFragmentProcessor>(new GrTest());\n" - " }\n" - " const char* name() const override { return \"Test\"; }\n" - "private:\n" - " GrTest()\n" - " : INHERITED(kNone_OptimizationFlags) {\n" - " this->initClassID<GrTest>();\n" - " }\n" - " GrGLSLFragmentProcessor* onCreateGLSLInstance() const override;\n" - " void onGetGLSLProcessorKey(const GrShaderCaps&,GrProcessorKeyBuilder*) " - "const override;\n" - " bool onIsEqual(const GrFragmentProcessor&) const override;\n" - " GR_DECLARE_FRAGMENT_PROCESSOR_TEST;\n" - " typedef GrFragmentProcessor INHERITED;\n" - "};\n" - "#endif\n" - }, - { - "/*\n" - " * This file was autogenerated from GrTest.fp.\n" - " */\n" - "#include \"GrTest.h\"\n" - "#include \"glsl/GrGLSLColorSpaceXformHelper.h\"\n" - "#include \"glsl/GrGLSLFragmentProcessor.h\"\n" - "#include \"glsl/GrGLSLFragmentShaderBuilder.h\"\n" - "#include \"glsl/GrGLSLProgramBuilder.h\"\n" - "#include \"GrResourceProvider.h\"\n" - "#include \"SkSLCPP.h\"\n" - "#include \"SkSLUtil.h\"\n" - "class GrGLSLTest : public GrGLSLFragmentProcessor {\n" - "public:\n" - " GrGLSLTest() {}\n" - " void emitCode(EmitArgs& args) override {\n" - " GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder;\n" - " const GrTest& _outer = args.fFp.cast<GrTest>();\n" - " (void) _outer;\n" - " fragBuilder->codeAppendf(\"%s = vec4(1.0);\\n\", args.fOutputColor);\n" - " }\n" - "private:\n" - " void onSetData(const GrGLSLProgramDataManager& pdman, " - "const GrFragmentProcessor& _proc) override {\n" - " }\n" - "};\n" - "GrGLSLFragmentProcessor* GrTest::onCreateGLSLInstance() const {\n" - " return new GrGLSLTest();\n" - "}\n" - "void GrTest::onGetGLSLProcessorKey(const GrShaderCaps& caps, " - "GrProcessorKeyBuilder* b) const {\n" - "}\n" - "bool GrTest::onIsEqual(const GrFragmentProcessor& other) const {\n" - " const GrTest& that = other.cast<GrTest>();\n" - " (void) that;\n" - " return true;\n" - "}\n" - }); -} - -DEF_TEST(SkSLFPInput, r) { - test(r, - "in vec2 point;" - "void main() {" - "sk_OutColor = vec4(point, point);" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "SkPoint point() const { return fPoint; }", - "static sk_sp<GrFragmentProcessor> Make(SkPoint point) {", - "return sk_sp<GrFragmentProcessor>(new GrTest(point));", - "GrTest(SkPoint point)", - ", fPoint(point)" - }, - { - "fragBuilder->codeAppendf(\"%s = vec4(vec2(%f, %f), vec2(%f, %f));\\n\", " - "args.fOutputColor, _outer.point().fX, _outer.point().fY, " - "_outer.point().fX, _outer.point().fY);", - "if (fPoint != that.fPoint) return false;" - }); -} - -DEF_TEST(SkSLFPUniform, r) { - test(r, - "uniform vec4 color;" - "void main() {" - "sk_OutColor = color;" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "static sk_sp<GrFragmentProcessor> Make()" - }, - { - "fColorVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, " - "kDefault_GrSLPrecision, \"color\");", - }); -} - -DEF_TEST(SkSLFPInUniform, r) { - test(r, - "in uniform vec4 color;" - "void main() {" - "sk_OutColor = color;" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "static sk_sp<GrFragmentProcessor> Make(SkRect color) {", - }, - { - "fColorVar = args.fUniformHandler->addUniform(kFragment_GrShaderFlag, kVec4f_GrSLType, " - "kDefault_GrSLPrecision, \"color\");", - "const SkRect colorValue = _outer.color();", - "pdman.set4fv(fColorVar, 4, (float*) &colorValue);" - }); -} - -DEF_TEST(SkSLFPSections, r) { - test(r, - "@header { header section }" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "header section class GrTest", - }, - {}); - test(r, - "@class { class section }" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "class GrTest : public GrFragmentProcessor {\n" - "public:\n" - " class section" - }, - {}); - test(r, - "@cpp { cpp section }" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - {}, - {"cpp section"}); - test(r, - "@constructorParams { int x, float y, std::vector<float> z }" - "in float w;" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "Make(float w, int x, float y, std::vector<float> z )", - "return sk_sp<GrFragmentProcessor>(new GrTest(w, x, y, z));", - "GrTest(float w, int x, float y, std::vector<float> z )", - ", fW(w) {" - }, - {}); - test(r, - "@constructor { constructor section }" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "private:\n constructor section" - }, - {}); - test(r, - "@initializers { initializers section }" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - ": INHERITED(kNone_OptimizationFlags)\n , initializers section" - }, - {}); - test(r, - "float x = 10;" - "@emitCode { fragBuilder->codeAppendf(\"float y = %d\\n\", x * 2); }" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - {}, - { - "x = 10.0;\n" - " fragBuilder->codeAppendf(\"float y = %d\\n\", x * 2);" - }); - test(r, - "@fields { fields section }" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "GR_DECLARE_FRAGMENT_PROCESSOR_TEST;\n" - " fields section typedef GrFragmentProcessor INHERITED;" - }, - {}); - test(r, - "@make { make section }" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "public:\n" - " make section" - }, - {}); - test(r, - "uniform float calculated;" - "in float provided;" - "@setData(varName) { varName.set1f(calculated, provided * 2); }" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - {}, - { - "void onSetData(const GrGLSLProgramDataManager& varName, " - "const GrFragmentProcessor& _proc) override {\n", - "UniformHandle& calculated = fCalculatedVar;", - "auto provided = _outer.provided();", - "varName.set1f(calculated, provided * 2);" - }); - test(r, - "@test(testDataName) { testDataName section }" - "void main() {" - "sk_OutColor = vec4(1);" - "}", - *SkSL::ShaderCapsFactory::Default(), - {}, - { - "#if GR_TEST_UTILS\n" - "sk_sp<GrFragmentProcessor> GrTest::TestCreate(GrProcessorTestData* testDataName) {\n" - " testDataName section }\n" - "#endif" - }); -} - -DEF_TEST(SkSLFPColorSpaceXform, r) { - test(r, - "in uniform sampler2D image;" - "in uniform colorSpaceXform colorXform;" - "void main() {" - "sk_OutColor = sk_InColor * texture(image, vec2(0, 0), colorXform);" - "}", - *SkSL::ShaderCapsFactory::Default(), - { - "sk_sp<GrColorSpaceXform> colorXform() const { return fColorXform; }", - "GrTest(sk_sp<GrTextureProxy> image, sk_sp<GrColorSpaceXform> colorXform)", - "this->addTextureSampler(&fImage);", - "sk_sp<GrColorSpaceXform> fColorXform;" - }, - { - "fragBuilder->codeAppendf(\"vec4 _tmp0;\\n%s = %s * " - "(_tmp0 = texture(%s, vec2(0.0, 0.0)) , %s != mat4(1.0) ? " - "vec4(clamp((%s * vec4(_tmp0.xyz, 1.0)).xyz, 0.0, _tmp0.w), _tmp0.w) : " - "_tmp0);\\n\", args.fOutputColor, args.fInputColor ? args.fInputColor : " - "\"vec4(1)\", fragBuilder->getProgramBuilder()->samplerVariable(" - "args.fTexSamplers[0]).c_str(), fColorSpaceHelper.isValid() ? " - "args.fUniformHandler->getUniformCStr(fColorSpaceHelper.gamutXformUniform()) : " - "\"mat4(1.0)\", fColorSpaceHelper.isValid() ? " - "args.fUniformHandler->getUniformCStr(fColorSpaceHelper.gamutXformUniform()) : " - "\"mat4(1.0)\");" - }); -} - -DEF_TEST(SkSLFPTransformedCoords, r) { - test(r, - "void main() {" - "sk_OutColor = vec4(sk_TransformedCoords2D[0], sk_TransformedCoords2D[0]);" - "}", - *SkSL::ShaderCapsFactory::Default(), - {}, - { - "SkSL::String sk_TransformedCoords2D_0 = " - "fragBuilder->ensureCoords2D(args.fTransformedCoords[0]);", - "fragBuilder->codeAppendf(\"%s = vec4(%s, %s);\\n\", args.fOutputColor, " - "sk_TransformedCoords2D_0.c_str(), sk_TransformedCoords2D_0.c_str());" - }); - -} - -DEF_TEST(SkSLFPLayoutWhen, r) { - test(r, - "layout(when=someExpression(someOtherExpression())) uniform float sometimes;" - "void main() {" - "}", - *SkSL::ShaderCapsFactory::Default(), - {}, - { - "if (someExpression(someOtherExpression())) {\n" - " fSometimesVar = args.fUniformHandler->addUniform" - }); - -} - -#endif diff --git a/tests/SkSLGLSLTest.cpp b/tests/SkSLGLSLTest.cpp index 8f09d6b084..a4a3c0e04f 100644 --- a/tests/SkSLGLSLTest.cpp +++ b/tests/SkSLGLSLTest.cpp @@ -487,8 +487,7 @@ DEF_TEST(SkSLDerivatives, r) { "void main() { sk_FragColor.r = 1; }", *SkSL::ShaderCapsFactory::ShaderDerivativeExtensionString(), "#version 400\n" - "precision highp float;\n" - "out mediump vec4 sk_FragColor;\n" + "out vec4 sk_FragColor;\n" "void main() {\n" " sk_FragColor.x = 1.0;\n" "}\n"); @@ -497,8 +496,7 @@ DEF_TEST(SkSLDerivatives, r) { *SkSL::ShaderCapsFactory::ShaderDerivativeExtensionString(), "#version 400\n" "#extension GL_OES_standard_derivatives : require\n" - "precision highp float;\n" - "out mediump vec4 sk_FragColor;\n" + "out vec4 sk_FragColor;\n" "void main() {\n" " sk_FragColor.x = dFdx(1.0);\n" "}\n"); |