Revert "Added DSL flags"
This reverts commit 71430593f0657be374c0f3b73065f7b1765a97cf.
Reason for revert: Clang-tidy bot unhappy. (Not sure how this slipped by).
Original change's description:
> Added DSL flags
>
> This adds some basic flags to the DSL initialization which allows us to
> toggle things like optimization and validation.
>
> Change-Id: I35b10526af1678c88901eaacd5a2c4a9f5cd21a7
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406896
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: John Stiles <johnstiles@google.com>
TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com
Change-Id: I7512b8bcc6e94707949904eec42c396faa7fdaf8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407176
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/include/sksl/DSLCore.h b/include/sksl/DSLCore.h
index 62ac361..5b43ed1 100644
--- a/include/sksl/DSLCore.h
+++ b/include/sksl/DSLCore.h
@@ -32,22 +32,11 @@
// shouldn't pollute the SkSL::dsl namespace with anything else.
using namespace SkSL::SwizzleComponent;
-enum DSLFlag {
- kNo_Flag = 0,
- kMangle_Flag = 1 << 0,
- kOptimize_Flag = 1 << 1,
- kValidate_Flag = 1 << 2,
- kMarkVarsDeclared_Flag = 1 << 3,
-};
-
-constexpr int kDefaultDSLFlags = kMangle_Flag | kOptimize_Flag | kValidate_Flag;
-
/**
* Starts DSL output on the current thread using the specified compiler. This must be called
* prior to any other DSL functions.
*/
-void Start(SkSL::Compiler* compiler, SkSL::ProgramKind kind = SkSL::ProgramKind::kFragment,
- int flags = kDefaultDSLFlags);
+void Start(SkSL::Compiler* compiler, SkSL::ProgramKind kind = SkSL::ProgramKind::kFragment);
/**
* Signals the end of DSL output. This must be called sometime between a call to Start() and the
diff --git a/src/sksl/dsl/DSLCore.cpp b/src/sksl/dsl/DSLCore.cpp
index 3c71b18..cfaaecf 100644
--- a/src/sksl/dsl/DSLCore.cpp
+++ b/src/sksl/dsl/DSLCore.cpp
@@ -25,8 +25,8 @@
namespace dsl {
-void Start(SkSL::Compiler* compiler, ProgramKind kind, int flags) {
- DSLWriter::SetInstance(std::make_unique<DSLWriter>(compiler, kind, flags));
+void Start(SkSL::Compiler* compiler, ProgramKind kind) {
+ DSLWriter::SetInstance(std::make_unique<DSLWriter>(compiler, kind));
}
void End() {
diff --git a/src/sksl/dsl/priv/DSLWriter.cpp b/src/sksl/dsl/priv/DSLWriter.cpp
index ed15fd8..7af36d8 100644
--- a/src/sksl/dsl/priv/DSLWriter.cpp
+++ b/src/sksl/dsl/priv/DSLWriter.cpp
@@ -31,10 +31,8 @@
namespace dsl {
-DSLWriter::DSLWriter(SkSL::Compiler* compiler, SkSL::ProgramKind kind, int flags)
- : fCompiler(compiler)
- , fMangle(flags & kMangle_Flag)
- , fMarkVarsDeclared(flags & kMarkVarsDeclared_Flag) {
+DSLWriter::DSLWriter(SkSL::Compiler* compiler, SkSL::ProgramKind kind)
+ : fCompiler(compiler) {
SkSL::ParsedModule module = fCompiler->moduleForProgramKind(kind);
fModifiersPool = std::make_unique<ModifiersPool>();
@@ -43,8 +41,6 @@
fConfig = std::make_unique<ProgramConfig>();
fConfig->fKind = kind;
- fConfig->fSettings.fOptimize = flags & kOptimize_Flag;
- fConfig->fSettings.fValidateSPIRV = flags & kValidate_Flag;
fOldConfig = fCompiler->fContext->fConfig;
fCompiler->fContext->fConfig = fConfig.get();
diff --git a/src/sksl/dsl/priv/DSLWriter.h b/src/sksl/dsl/priv/DSLWriter.h
index 8e8af4b..fa79fdd 100644
--- a/src/sksl/dsl/priv/DSLWriter.h
+++ b/src/sksl/dsl/priv/DSLWriter.h
@@ -44,7 +44,7 @@
*/
class DSLWriter {
public:
- DSLWriter(SkSL::Compiler* compiler, SkSL::ProgramKind kind, int flags);
+ DSLWriter(SkSL::Compiler* compiler, SkSL::ProgramKind kind);
~DSLWriter();
@@ -242,6 +242,7 @@
friend class DSLCore;
friend class DSLVar;
+ friend class ::AutoDSLContext;
};
} // namespace dsl
diff --git a/tests/SkSLDSLTest.cpp b/tests/SkSLDSLTest.cpp
index 874063e..bd07534 100644
--- a/tests/SkSLDSLTest.cpp
+++ b/tests/SkSLDSLTest.cpp
@@ -18,9 +18,6 @@
using namespace SkSL::dsl;
-constexpr int kDefaultTestFlags = (kDefaultDSLFlags & ~kMangle_Flag) | kMarkVarsDeclared_Flag;
-constexpr int kNoDeclareTestFlags = kDefaultDSLFlags & ~kMangle_Flag;
-
/**
* In addition to issuing an automatic Start() and End(), disables mangling and optionally
* auto-declares variables during its lifetime. Variable auto-declaration simplifies testing so we
@@ -30,9 +27,11 @@
*/
class AutoDSLContext {
public:
- AutoDSLContext(GrGpu* gpu, int flags = kDefaultTestFlags,
+ AutoDSLContext(GrGpu* gpu, bool markVarsDeclared = true,
SkSL::ProgramKind kind = SkSL::ProgramKind::kFragment) {
- Start(gpu->shaderCompiler(), kind, flags);
+ Start(gpu->shaderCompiler(), kind);
+ DSLWriter::Instance().fMangle = false;
+ DSLWriter::Instance().fMarkVarsDeclared = markVarsDeclared;
}
~AutoDSLContext() {
@@ -135,28 +134,6 @@
#define EXPECT_EQUAL(a, b) expect_equal(r, __LINE__, (a), (b))
-DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLFlags, r, ctxInfo) {
- {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kOptimize_Flag);
- EXPECT_EQUAL(All(GreaterThan(Float4(1), Float4(0))), "true");
-
- Var x(kInt_Type, "x");
- EXPECT_EQUAL(Declare(x), "int x;");
- }
-
- {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNo_Flag);
- EXPECT_EQUAL(All(GreaterThan(Float4(1), Float4(0))),
- "all(greaterThan(float4(1.0), float4(0.0)))");
- }
-
- {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kMangle_Flag);
- Var x(kInt_Type, "x");
- EXPECT_EQUAL(Declare(x), "int _0_x;");
- }
-}
-
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLFloat, r, ctxInfo) {
AutoDSLContext context(ctxInfo.directContext()->priv().getGpu());
Expression e1 = Float(std::numeric_limits<float>::max());
@@ -1228,7 +1205,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLBlock, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNoDeclareTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/false);
EXPECT_EQUAL(Block(), "{ }");
Var a(kInt_Type, "a", 1), b(kInt_Type, "b", 2);
EXPECT_EQUAL(Block(Declare(a), Declare(b), a = b), "{ int a = 1; int b = 2; (a = b); }");
@@ -1242,7 +1219,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLBreak, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNoDeclareTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/false);
Var i(kInt_Type, "i", 0);
DSLFunction(kVoid_Type, "success").define(
For(Declare(i), i < 10, ++i, Block(
@@ -1262,7 +1239,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLContinue, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNoDeclareTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/false);
Var i(kInt_Type, "i", 0);
DSLFunction(kVoid_Type, "success").define(
For(Declare(i), i < 10, ++i, Block(
@@ -1282,7 +1259,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLDeclare, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNoDeclareTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/false);
Var a(kHalf4_Type, "a"), b(kHalf4_Type, "b", Half4(1));
Statement x = Declare(a);
EXPECT_EQUAL(x, "half4 a;");
@@ -1310,7 +1287,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLDeclareGlobal, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNoDeclareTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/false);
Var x(kInt_Type, "x", 0);
DeclareGlobal(x);
Var y(kUniform_Modifier, kFloat2_Type, "y");
@@ -1342,7 +1319,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLFor, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNoDeclareTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/false);
EXPECT_EQUAL(For(Statement(), Expression(), Expression(), Block()),
"for (;;) {}");
@@ -1372,7 +1349,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLFunction, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNoDeclareTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/false);
Var coords(kFloat2_Type, "coords");
DSLFunction(kVoid_Type, "main", coords).define(
sk_FragColor() = Half4(coords, 0, 1)
@@ -1599,7 +1576,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLSwizzle, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kDefaultTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu());
Var a(kFloat4_Type, "a");
EXPECT_EQUAL(a.x(),
@@ -1632,7 +1609,7 @@
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLVarSwap, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNoDeclareTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/false);
// We should be able to convert `a` into a proper var by swapping it, even from within a scope.
Var a;
@@ -1744,7 +1721,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLModifiers, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNoDeclareTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/false);
Var v1(kConst_Modifier, kInt_Type, "v1", 0);
Statement d1 = Declare(v1);
@@ -1876,7 +1853,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLSampleFragmentProcessor, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kDefaultTestFlags,
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/true,
SkSL::ProgramKind::kFragmentProcessor);
DSLVar child(kUniform_Modifier, kFragmentProcessor_Type, "child");
EXPECT_EQUAL(Sample(child), "sample(child)");
@@ -1891,7 +1868,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLSampleShader, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kDefaultTestFlags,
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/true,
SkSL::ProgramKind::kRuntimeShader);
DSLVar shader(kUniform_Modifier, kShader_Type, "shader");
EXPECT_EQUAL(Sample(shader, Float2(0, 0)), "sample(shader, float2(0.0, 0.0))");
@@ -1903,7 +1880,7 @@
}
DEF_GPUTEST_FOR_MOCK_CONTEXT(DSLStruct, r, ctxInfo) {
- AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), kNoDeclareTestFlags);
+ AutoDSLContext context(ctxInfo.directContext()->priv().getGpu(), /*markVarsDeclared=*/false);
DSLType simpleStruct = Struct("SimpleStruct",
Field(kFloat_Type, "x"),