Rename bool highp to a non-reserved keyword.

We can't name our variables after GLSL keywords. This worked in the past
because our optimizer was able to optimize away `highp`, as it is
always constant.

Change-Id: Idbd97cad4f10da72f610701c83b0736e96a06626
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368419
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This commit is contained in:
John Stiles 2021-02-09 15:27:15 -05:00
parent 53375a713f
commit e2c9d3c034
2 changed files with 22 additions and 22 deletions

View File

@ -24,11 +24,11 @@
in fragmentProcessor inputFP;
in float4 rect;
layout(key) bool highp = abs(rect.x) > 16000 || abs(rect.y) > 16000 ||
abs(rect.z) > 16000 || abs(rect.w) > 16000;
layout(key) bool highPrecision = abs(rect.x) > 16000 || abs(rect.y) > 16000 ||
abs(rect.z) > 16000 || abs(rect.w) > 16000;
layout(when= highp) uniform float4 rectF;
layout(when=!highp) uniform half4 rectH;
layout(when= highPrecision) uniform float4 rectF;
layout(when=!highPrecision) uniform half4 rectH;
layout(key) in bool applyInvVM;
layout(when=applyInvVM) in uniform float3x3 invVM;
@ -193,7 +193,7 @@ half4 main() {
// computations align the left edge of the integral texture with the inset rect's edge
// extending outward 6 * sigma from the inset rect.
half2 xy;
@if (highp) {
@if (highPrecision) {
xy = max(half2(rectF.LT - pos), half2(pos - rectF.RB));
} else {
xy = max(half2(rectH.LT - pos), half2(pos - rectH.RB));
@ -217,7 +217,7 @@ half4 main() {
// Also, our rect uniform was pre-inset by 3 sigma from the actual rect being blurred,
// also factored in.
half4 rect;
@if (highp) {
@if (highPrecision) {
rect.LT = half2(rectF.LT - pos);
rect.RB = half2(pos - rectF.RB);
} else {
@ -234,7 +234,7 @@ half4 main() {
@setData(pdman) {
float r[] {rect.fLeft, rect.fTop, rect.fRight, rect.fBottom};
pdman.set4fv(highp ? rectF : rectH, 1, r);
pdman.set4fv(highPrecision ? rectF : rectH, 1, r);
}
@test(data) {

View File

@ -32,14 +32,14 @@ public:
(void)invVM;
auto isFast = _outer.isFast;
(void)isFast;
highp = ((abs(rect.left()) > 16000.0 || abs(rect.top()) > 16000.0) ||
abs(rect.right()) > 16000.0) ||
abs(rect.bottom()) > 16000.0;
if (highp) {
highPrecision = ((abs(rect.left()) > 16000.0 || abs(rect.top()) > 16000.0) ||
abs(rect.right()) > 16000.0) ||
abs(rect.bottom()) > 16000.0;
if (highPrecision) {
rectFVar = args.fUniformHandler->addUniform(&_outer, kFragment_GrShaderFlag,
kFloat4_GrSLType, "rectF");
}
if (!highp) {
if (!highPrecision) {
rectHVar = args.fUniformHandler->addUniform(&_outer, kFragment_GrShaderFlag,
kHalf4_GrSLType, "rectH");
}
@ -48,7 +48,7 @@ public:
kFloat3x3_GrSLType, "invVM");
}
fragBuilder->codeAppendf(
R"SkSL(/* key */ bool highp = %s;
R"SkSL(/* key */ bool highPrecision = %s;
half xCoverage;
half yCoverage;
@ -58,12 +58,12 @@ float2 pos = sk_FragCoord.xy;
}
@if (%s) {
half2 xy;
@if (highp) {
@if (highPrecision) {
xy = max(half2(%s.xy - pos), half2(pos - %s.zw));
} else {
xy = max(half2(float2(%s.xy) - pos), half2(pos - float2(%s.zw)));
})SkSL",
(highp ? "true" : "false"), (_outer.applyInvVM ? "true" : "false"),
(highPrecision ? "true" : "false"), (_outer.applyInvVM ? "true" : "false"),
invVMVar.isValid() ? args.fUniformHandler->getUniformCStr(invVMVar) : "float3x3(1)",
(_outer.isFast ? "true" : "false"),
rectFVar.isValid() ? args.fUniformHandler->getUniformCStr(rectFVar) : "float4(0)",
@ -83,7 +83,7 @@ float2 pos = sk_FragCoord.xy;
yCoverage = %s.w;
} else {
half4 rect;
@if (highp) {
@if (highPrecision) {
rect.xy = half2(%s.xy - pos);
rect.zw = half2(pos - %s.zw);
} else {
@ -144,9 +144,9 @@ private:
(void)isFast;
float r[]{rect.fLeft, rect.fTop, rect.fRight, rect.fBottom};
pdman.set4fv(highp ? rectF : rectH, 1, r);
pdman.set4fv(highPrecision ? rectF : rectH, 1, r);
}
bool highp = false;
bool highPrecision = false;
UniformHandle rectFVar;
UniformHandle rectHVar;
UniformHandle invVMVar;
@ -156,10 +156,10 @@ GrGLSLFragmentProcessor* GrRectBlurEffect::onCreateGLSLInstance() const {
}
void GrRectBlurEffect::onGetGLSLProcessorKey(const GrShaderCaps& caps,
GrProcessorKeyBuilder* b) const {
bool highp = ((abs(rect.left()) > 16000.0 || abs(rect.top()) > 16000.0) ||
abs(rect.right()) > 16000.0) ||
abs(rect.bottom()) > 16000.0;
b->add32((uint32_t)highp);
bool highPrecision = ((abs(rect.left()) > 16000.0 || abs(rect.top()) > 16000.0) ||
abs(rect.right()) > 16000.0) ||
abs(rect.bottom()) > 16000.0;
b->add32((uint32_t)highPrecision);
b->add32((uint32_t)applyInvVM);
b->add32((uint32_t)isFast);
}