Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 6e7cfaf

Browse files
johnstiles-googleSkia Commit-Bot
authored andcommitted
Fix bad FP codegen when sample() calls are inlined.
Previously, temp variables created by sample() calls were named after the offset of the sample() call within the code. This was straightforward but would fail if the sample() call were duplicated via inlining of helper functions. FP sample() temp variables are now named using a counter, starting from zero and counting upwards. Change-Id: I16f9a3426117677c0df13d15772320def99cc0d6 Bug: skia:10858 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/331415 Commit-Queue: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Auto-Submit: John Stiles <johnstiles@google.com>
1 parent 351b8d8 commit 6e7cfaf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+162
-151
lines changed

src/gpu/effects/generated/GrAARectEffect.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,13 @@ half alpha;
6060
args.fUniformHandler->getUniformCStr(rectUniformVar),
6161
args.fUniformHandler->getUniformCStr(rectUniformVar), (int)_outer.edgeType,
6262
(int)_outer.edgeType);
63-
SkString _sample1678 = this->invokeChild(0, args);
63+
SkString _sample0 = this->invokeChild(0, args);
6464
fragBuilder->codeAppendf(
6565
R"SkSL(
6666
half4 inputColor = %s;
6767
%s = inputColor * alpha;
6868
)SkSL",
69-
_sample1678.c_str(), args.fOutputColor);
69+
_sample0.c_str(), args.fOutputColor);
7070
}
7171

7272
private:

src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ class GrGLSLAlphaThresholdFragmentProcessor : public GrGLSLFragmentProcessor {
3333
kHalf_GrSLType, "innerThreshold");
3434
outerThresholdVar = args.fUniformHandler->addUniform(&_outer, kFragment_GrShaderFlag,
3535
kHalf_GrSLType, "outerThreshold");
36-
SkString _sample515 = this->invokeChild(0, args);
36+
SkString _sample0 = this->invokeChild(0, args);
3737
fragBuilder->codeAppendf(
38-
R"SkSL(half4 color = %s;)SkSL", _sample515.c_str());
39-
SkString _sample555 = this->invokeChild(1, args);
38+
R"SkSL(half4 color = %s;)SkSL", _sample0.c_str());
39+
SkString _sample1 = this->invokeChild(1, args);
4040
fragBuilder->codeAppendf(
4141
R"SkSL(
4242
half4 mask_color = %s;
@@ -53,7 +53,7 @@ if (mask_color.w < 0.5) {
5353
}
5454
%s = color;
5555
)SkSL",
56-
_sample555.c_str(), args.fUniformHandler->getUniformCStr(outerThresholdVar),
56+
_sample1.c_str(), args.fUniformHandler->getUniformCStr(outerThresholdVar),
5757
args.fUniformHandler->getUniformCStr(outerThresholdVar),
5858
args.fUniformHandler->getUniformCStr(outerThresholdVar),
5959
args.fUniformHandler->getUniformCStr(innerThresholdVar),

src/gpu/effects/generated/GrArithmeticProcessor.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ class GrGLSLArithmeticProcessor : public GrGLSLFragmentProcessor {
3030
(void)enforcePMColor;
3131
kVar = args.fUniformHandler->addUniform(&_outer, kFragment_GrShaderFlag, kFloat4_GrSLType,
3232
"k");
33-
SkString _sample385 = this->invokeChild(0, args);
33+
SkString _sample0 = this->invokeChild(0, args);
3434
fragBuilder->codeAppendf(
35-
R"SkSL(half4 src = %s;)SkSL", _sample385.c_str());
36-
SkString _sample416 = this->invokeChild(1, args);
35+
R"SkSL(half4 src = %s;)SkSL", _sample0.c_str());
36+
SkString _sample1 = this->invokeChild(1, args);
3737
fragBuilder->codeAppendf(
3838
R"SkSL(
3939
half4 dst = %s;
@@ -42,7 +42,7 @@ half4 dst = %s;
4242
%s.xyz = min(%s.xyz, %s.w);
4343
}
4444
)SkSL",
45-
_sample416.c_str(), args.fOutputColor, args.fUniformHandler->getUniformCStr(kVar),
45+
_sample1.c_str(), args.fOutputColor, args.fUniformHandler->getUniformCStr(kVar),
4646
args.fUniformHandler->getUniformCStr(kVar),
4747
args.fUniformHandler->getUniformCStr(kVar),
4848
args.fUniformHandler->getUniformCStr(kVar),

src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class GrGLSLBlurredEdgeFragmentProcessor : public GrGLSLFragmentProcessor {
2727
(void)_outer;
2828
auto mode = _outer.mode;
2929
(void)mode;
30-
SkString _sample308 = this->invokeChild(0, args);
30+
SkString _sample0 = this->invokeChild(0, args);
3131
fragBuilder->codeAppendf(
3232
R"SkSL(half inputAlpha = %s.w;
3333
half factor = 1.0 - inputAlpha;
@@ -41,7 +41,7 @@ half factor = 1.0 - inputAlpha;
4141
}
4242
%s = half4(factor);
4343
)SkSL",
44-
_sample308.c_str(), (int)_outer.mode, args.fOutputColor);
44+
_sample0.c_str(), (int)_outer.mode, args.fOutputColor);
4545
}
4646

4747
private:

src/gpu/effects/generated/GrCircleBlurFragmentProcessor.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -312,18 +312,18 @@ half dist = length(vec) + (0.5 - %s.z) * %s.w;)SkSL",
312312
args.fUniformHandler->getUniformCStr(circleDataVar),
313313
args.fUniformHandler->getUniformCStr(circleDataVar),
314314
args.fUniformHandler->getUniformCStr(circleDataVar));
315-
SkString _sample13905 = this->invokeChild(0, args);
315+
SkString _sample0 = this->invokeChild(0, args);
316316
fragBuilder->codeAppendf(
317317
R"SkSL(
318318
half4 inputColor = %s;)SkSL",
319-
_sample13905.c_str());
320-
SkString _coords13946("float2(half2(dist, 0.5))");
321-
SkString _sample13946 = this->invokeChild(1, args, _coords13946.c_str());
319+
_sample0.c_str());
320+
SkString _coords1("float2(half2(dist, 0.5))");
321+
SkString _sample1 = this->invokeChild(1, args, _coords1.c_str());
322322
fragBuilder->codeAppendf(
323323
R"SkSL(
324324
return inputColor * %s.w;
325325
)SkSL",
326-
_sample13946.c_str());
326+
_sample1.c_str());
327327
}
328328

329329
private:

src/gpu/effects/generated/GrCircleEffect.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ half d;
4949
args.fUniformHandler->getUniformCStr(circleVar),
5050
args.fUniformHandler->getUniformCStr(circleVar),
5151
args.fUniformHandler->getUniformCStr(circleVar));
52-
SkString _sample2510 = this->invokeChild(0, args);
52+
SkString _sample0 = this->invokeChild(0, args);
5353
fragBuilder->codeAppendf(
5454
R"SkSL(
5555
half4 inputColor = %s;
@@ -59,7 +59,7 @@ half4 inputColor = %s;
5959
return d > 0.5 ? inputColor : half4(0.0);
6060
}
6161
)SkSL",
62-
_sample2510.c_str(), (int)_outer.edgeType, (int)_outer.edgeType);
62+
_sample0.c_str(), (int)_outer.edgeType, (int)_outer.edgeType);
6363
}
6464

6565
private:

src/gpu/effects/generated/GrClampFragmentProcessor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class GrGLSLClampFragmentProcessor : public GrGLSLFragmentProcessor {
2626
(void)_outer;
2727
auto clampToPremul = _outer.clampToPremul;
2828
(void)clampToPremul;
29-
SkString _sample465 = this->invokeChild(0, args);
29+
SkString _sample0 = this->invokeChild(0, args);
3030
fragBuilder->codeAppendf(
3131
R"SkSL(half4 inputColor = %s;
3232
@if (%s) {
@@ -36,7 +36,7 @@ class GrGLSLClampFragmentProcessor : public GrGLSLFragmentProcessor {
3636
return clamp(inputColor, 0.0, 1.0);
3737
}
3838
)SkSL",
39-
_sample465.c_str(), (_outer.clampToPremul ? "true" : "false"));
39+
_sample0.c_str(), (_outer.clampToPremul ? "true" : "false"));
4040
}
4141

4242
private:

src/gpu/effects/generated/GrColorMatrixFragmentProcessor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class GrGLSLColorMatrixFragmentProcessor : public GrGLSLFragmentProcessor {
3939
"m");
4040
vVar = args.fUniformHandler->addUniform(&_outer, kFragment_GrShaderFlag, kHalf4_GrSLType,
4141
"v");
42-
SkString _sample585 = this->invokeChild(0, args);
42+
SkString _sample0 = this->invokeChild(0, args);
4343
fragBuilder->codeAppendf(
4444
R"SkSL(half4 inputColor = %s;
4545
@if (%s) {
@@ -61,7 +61,7 @@ class GrGLSLColorMatrixFragmentProcessor : public GrGLSLFragmentProcessor {
6161
%s.xyz *= %s.w;
6262
}
6363
)SkSL",
64-
_sample585.c_str(), (_outer.unpremulInput ? "true" : "false"), args.fOutputColor,
64+
_sample0.c_str(), (_outer.unpremulInput ? "true" : "false"), args.fOutputColor,
6565
args.fUniformHandler->getUniformCStr(mVar),
6666
args.fUniformHandler->getUniformCStr(vVar),
6767
(_outer.clampRGBOutput ? "true" : "false"), args.fOutputColor, args.fOutputColor,

src/gpu/effects/generated/GrComposeLerpEffect.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ class GrGLSLComposeLerpEffect : public GrGLSLFragmentProcessor {
2828
(void)weight;
2929
weightVar = args.fUniformHandler->addUniform(&_outer, kFragment_GrShaderFlag,
3030
kFloat_GrSLType, "weight");
31-
SkString _sample273 = this->invokeChild(0, args);
32-
SkString _sample289 = this->invokeChild(1, args);
31+
SkString _sample0 = this->invokeChild(0, args);
32+
SkString _sample1 = this->invokeChild(1, args);
3333
fragBuilder->codeAppendf(
3434
R"SkSL(%s = mix(%s, %s, half(%s));
3535
)SkSL",
36-
args.fOutputColor, _sample273.c_str(), _sample289.c_str(),
36+
args.fOutputColor, _sample0.c_str(), _sample1.c_str(),
3737
args.fUniformHandler->getUniformCStr(weightVar));
3838
}
3939

src/gpu/effects/generated/GrConfigConversionEffect.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class GrGLSLConfigConversionEffect : public GrGLSLFragmentProcessor {
2828
(void)pmConversion;
2929

3030
fragBuilder->forceHighPrecision();
31-
SkString _sample5768 = this->invokeChild(0, args);
31+
SkString _sample0 = this->invokeChild(0, args);
3232
fragBuilder->codeAppendf(
3333
R"SkSL(%s = floor(%s * 255.0 + 0.5) / 255.0;
3434
@switch (%d) {
@@ -40,7 +40,7 @@ class GrGLSLConfigConversionEffect : public GrGLSLFragmentProcessor {
4040
break;
4141
}
4242
)SkSL",
43-
args.fOutputColor, _sample5768.c_str(), (int)_outer.pmConversion, args.fOutputColor,
43+
args.fOutputColor, _sample0.c_str(), (int)_outer.pmConversion, args.fOutputColor,
4444
args.fOutputColor, args.fOutputColor, args.fOutputColor, args.fOutputColor,
4545
args.fOutputColor, args.fOutputColor);
4646
}

0 commit comments

Comments
 (0)