Remove SkSL shade/blend/filter intrinsics

Bug: skia:12302
Change-Id: I4ff394f1f9d93d2def19a9f9d49cb208651aff10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/445639
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
This commit is contained in:
Brian Osman 2021-09-03 10:47:37 -04:00 committed by SkCQ
parent 3e4ccf17c3
commit 33e0f9aa49
6 changed files with 64 additions and 173 deletions

View File

@ -1,4 +1,4 @@
// Expect 36 errors // Expect 24 errors
uniform shader s; uniform shader s;
uniform colorFilter f; uniform colorFilter f;
@ -22,41 +22,6 @@ half4 sample_blender_color() { return sample(b, color); }
half4 sample_blender_xy() { return sample(b, xy); } half4 sample_blender_xy() { return sample(b, xy); }
half4 sample_blender_xy_color() { return sample(b, xy, color); } half4 sample_blender_xy_color() { return sample(b, xy, color); }
// Same as above, but using the type-specific functions (shade, filter, blend):
half4 shade_shader_xy_color() { return shade(s, xy, color); }
half4 shade_shader_color() { return shade(s, color); }
half4 shade_shader_color_xy() { return shade(s, color, xy); }
half4 shade_shader_empty() { return shade(s); }
half4 shade_shader_matrix() { return shade(s, float3x3(1)); }
half4 filter_colorFilter_empty() { return filter(f); }
half4 filter_colorFilter_xy() { return filter(f, xy); }
half4 filter_colorFilter_xy_color() { return filter(f, xy, color); }
half4 blend_blender_empty() { return blend(b); }
half4 blend_blender_color() { return blend(b, color); }
half4 blend_blender_xy() { return blend(b, xy); }
half4 blend_blender_xy_color() { return blend(b, xy, color); }
// Try to invoke a child with the wrong type-specific function, with either
// argument list (aligned to function, or child type):
half4 blend_shader_b() { return blend(s, color, color); }
half4 blend_shader_s() { return blend(s, xy); }
half4 filter_shader_f() { return filter(s, color); }
half4 filter_shader_s() { return filter(s, xy); }
half4 blend_colorFilter_b() { return blend(f, color, color); }
half4 blend_colorFilter_f() { return blend(f, color); }
half4 shade_colorFilter_s() { return shade(f, xy); }
half4 shade_colorFilter_f() { return shade(f, color); }
half4 filter_blender_f() { return filter(b, color); }
half4 filter_blender_b() { return filter(b, color, color); }
half4 shade_blender_s() { return shade(b, xy); }
half4 shade_blender_b() { return shade(b, color, color); }
// Using .eval() // Using .eval()
half4 eval_shader_xy_color() { return s.eval(xy, color); } half4 eval_shader_xy_color() { return s.eval(xy, color); }
@ -76,10 +41,6 @@ half4 eval_blender_xy_color() { return b.eval(xy, color); }
// Correct usage (EXPECT NO ERRORS) // Correct usage (EXPECT NO ERRORS)
half4 blend_blender() { return blend(b, color, color); }
half4 filter_colorFilter() { return filter(f, color); }
half4 shade_shader() { return shade(s, xy); }
half4 eval_blender() { return b.eval(color, color); } half4 eval_blender() { return b.eval(color, color); }
half4 eval_colorFilter() { return f.eval(color); } half4 eval_colorFilter() { return f.eval(color); }
half4 eval_shader() { return s.eval(xy); } half4 eval_shader() { return s.eval(xy); }

View File

@ -21,7 +21,6 @@
SKSL_INTRINSIC(atanh) \ SKSL_INTRINSIC(atanh) \
SKSL_INTRINSIC(atan) \ SKSL_INTRINSIC(atan) \
SKSL_INTRINSIC(bitCount) \ SKSL_INTRINSIC(bitCount) \
SKSL_INTRINSIC(blend) \
SKSL_INTRINSIC(ceil) \ SKSL_INTRINSIC(ceil) \
SKSL_INTRINSIC(clamp) \ SKSL_INTRINSIC(clamp) \
SKSL_INTRINSIC(cosh) \ SKSL_INTRINSIC(cosh) \
@ -38,7 +37,6 @@
SKSL_INTRINSIC(exp2) \ SKSL_INTRINSIC(exp2) \
SKSL_INTRINSIC(exp) \ SKSL_INTRINSIC(exp) \
SKSL_INTRINSIC(faceforward) \ SKSL_INTRINSIC(faceforward) \
SKSL_INTRINSIC(filter) \
SKSL_INTRINSIC(findLSB) \ SKSL_INTRINSIC(findLSB) \
SKSL_INTRINSIC(findMSB) \ SKSL_INTRINSIC(findMSB) \
SKSL_INTRINSIC(floatBitsToInt) \ SKSL_INTRINSIC(floatBitsToInt) \
@ -87,7 +85,6 @@
SKSL_INTRINSIC(round) \ SKSL_INTRINSIC(round) \
SKSL_INTRINSIC(sample) \ SKSL_INTRINSIC(sample) \
SKSL_INTRINSIC(saturate) \ SKSL_INTRINSIC(saturate) \
SKSL_INTRINSIC(shade) \
SKSL_INTRINSIC(sign) \ SKSL_INTRINSIC(sign) \
SKSL_INTRINSIC(sinh) \ SKSL_INTRINSIC(sinh) \
SKSL_INTRINSIC(sin) \ SKSL_INTRINSIC(sin) \

View File

@ -1,4 +1,4 @@
static uint8_t SKSL_INCLUDE_sksl_public[] = {140,3, static uint8_t SKSL_INCLUDE_sksl_public[] = {121,3,
7,100,101,103,114,101,101,115, 7,100,101,103,114,101,101,115,
8,36,103,101,110,84,121,112,101, 8,36,103,101,110,84,121,112,101,
7,114,97,100,105,97,110,115, 7,114,97,100,105,97,110,115,
@ -121,18 +121,15 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {140,3,
6,115,104,97,100,101,114, 6,115,104,97,100,101,114,
6,99,111,111,114,100,115, 6,99,111,111,114,100,115,
6,102,108,111,97,116,50, 6,102,108,111,97,116,50,
5,115,104,97,100,101, 6,115,97,109,112,108,101,
1,102, 1,102,
11,99,111,108,111,114,70,105,108,116,101,114, 11,99,111,108,111,114,70,105,108,116,101,114,
6,102,105,108,116,101,114,
1,98, 1,98,
7,98,108,101,110,100,101,114, 7,98,108,101,110,100,101,114,
3,115,114,99, 3,115,114,99,
3,100,115,116, 3,100,115,116,
5,98,108,101,110,100,
6,115,97,109,112,108,101,
5,36,101,118,97,108, 5,36,101,118,97,108,
48,62,2, 48,52,2,
52,1,0, 52,1,0,
17,2,0, 17,2,0,
49,2,0,10,0,3, 49,2,0,10,0,3,
@ -1957,101 +1954,71 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {140,3,
17,78,3,2,60,2,62,2, 17,78,3,2,60,2,62,2,
46,44,2, 46,44,2,
52,65,2, 52,65,2,
17,84,3, 17,85,3,
49,66,2,86,3,3, 49,66,2,87,3,3,
52,67,2, 52,67,2,
17,15,3, 17,15,3,
46,44,2,3, 46,44,2,3,
29,68,2, 51,68,2,2,
17,98,3,2,65,2,67,2, 46,64,2,
29,69,2,
17,78,3,2,65,2,67,2,
46,44,2, 46,44,2,
52,69,2, 46,69,2,
17,105,3, 52,70,2,
49,70,2,107,3,3, 17,99,3,
52,71,2, 49,71,2,101,3,3,
17,115,3,
46,44,2,3,
52,72,2, 52,72,2,
17,119,3, 17,109,3,
46,44,2,3, 46,44,2,3,
29,73,2, 52,73,2,
17,123,3,3,69,2,71,2,72,2, 17,113,3,
46,44,2,3,
51,74,2,3,
46,64,2,
46,69,2,
29,75,2,
17,78,3,3,70,2,72,2,73,2,
46,44,2, 46,44,2,
52,74,2, 46,75,2,
17,55,3, 52,76,2,
46,61,2,3,
52,75,2,
17,64,3, 17,64,3,
46,63,2,3, 46,63,2,3,
29,76,2,
17,129,3,2,74,2,75,2,
46,44,2,
52,77,2, 52,77,2,
17,84,3,
46,66,2,3,
52,78,2,
17,15,3,
46,44,2,3,
51,79,2,2,
46,76,2,
29,80,2,
17,129,3,2,77,2,78,2,
46,44,2,
46,80,2,
52,81,2,
17,105,3,
46,70,2,3,
52,82,2,
17,115,3,
46,44,2,3,
52,83,2,
17,119,3,
46,44,2,3,
51,84,2,3,
46,76,2,
46,80,2,
29,85,2,
17,129,3,3,81,2,82,2,83,2,
46,44,2,
46,85,2,
52,86,2,
17,64,3,
46,63,2,3,
52,87,2,
17,55,3, 17,55,3,
46,61,2,3, 46,61,2,3,
29,88,2, 29,78,2,
17,136,3,2,86,2,87,2, 17,117,3,2,76,2,77,2,
46,44,2, 46,44,2,
52,89,2, 52,79,2,
17,15,3, 17,15,3,
46,44,2,3, 46,44,2,3,
52,90,2, 52,80,2,
17,84,3, 17,85,3,
46,66,2,3, 46,66,2,3,
51,91,2,2, 51,81,2,2,
46,88,2, 46,78,2,
29,92,2, 29,82,2,
17,136,3,2,89,2,90,2, 17,117,3,2,79,2,80,2,
46,44,2, 46,44,2,
46,92,2, 46,82,2,
52,93,2, 52,83,2,
17,115,3, 17,109,3,
46,44,2,3, 46,44,2,3,
52,94,2, 52,84,2,
17,119,3, 17,113,3,
46,44,2,3, 46,44,2,3,
52,95,2, 52,85,2,
17,105,3, 17,99,3,
46,70,2,3, 46,71,2,3,
51,96,2,3, 51,86,2,3,
46,88,2, 46,78,2,
46,92,2, 46,82,2,
29,97,2, 29,87,2,
17,136,3,3,93,2,94,2,95,2, 17,117,3,3,83,2,84,2,85,2,
46,44,2, 46,44,2,
46,97,2,72,0, 46,87,2,69,0,
60,2, 50,2,
118,0, 118,0,
33,0, 33,0,
71,0, 71,0,
@ -2061,7 +2028,6 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {140,3,
66,0, 66,0,
46,0, 46,0,
76,0, 76,0,
37,2,
133,0, 133,0,
53,1, 53,1,
18,0, 18,0,
@ -2077,7 +2043,6 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {140,3,
88,0, 88,0,
98,0, 98,0,
113,1, 113,1,
33,2,
7,1, 7,1,
9,1, 9,1,
128,0, 128,0,
@ -2108,9 +2073,8 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {140,3,
129,1, 129,1,
22,1, 22,1,
27,1, 27,1,
48,2, 38,2,
207,0, 207,0,
30,2,
123,0, 123,0,
13,0, 13,0,
51,0, 51,0,

View File

@ -876,10 +876,7 @@ std::unique_ptr<Expression> FunctionCall::Convert(const Context& context,
} }
switch (function.intrinsicKind()) { switch (function.intrinsicKind()) {
case k_blend_IntrinsicKind: case k_sample_IntrinsicKind: {
case k_sample_IntrinsicKind:
case k_shade_IntrinsicKind:
case k_filter_IntrinsicKind: {
if (arguments.size() >= 1 && arguments[0]->type().isEffectChild()) { if (arguments.size() >= 1 && arguments[0]->type().isEffectChild()) {
// Translate these intrinsic calls into a ChildCall, which simplifies handling in // Translate these intrinsic calls into a ChildCall, which simplifies handling in
// the generators and analysis code // the generators and analysis code

View File

@ -207,10 +207,6 @@ $es3 $genHType dFdx($genHType p);
$es3 $genHType dFdy($genHType p); $es3 $genHType dFdy($genHType p);
// SkSL intrinsics that reflect Skia's C++ object model: // SkSL intrinsics that reflect Skia's C++ object model:
half4 shade(shader s, float2 coords);
half4 filter(colorFilter f, half4 color);
half4 blend(blender b, half4 src, half4 dst);
half4 sample(shader s, float2 coords); half4 sample(shader s, float2 coords);
half4 sample(colorFilter f, half4 color); half4 sample(colorFilter f, half4 color);
half4 sample(blender b, half4 src, half4 dst); half4 sample(blender b, half4 src, half4 dst);

View File

@ -12,40 +12,16 @@ error: 20: no match for sample(blender)
error: 21: no match for sample(blender, half4) error: 21: no match for sample(blender, half4)
error: 22: no match for sample(blender, float2) error: 22: no match for sample(blender, float2)
error: 23: no match for sample(blender, float2, half4) error: 23: no match for sample(blender, float2, half4)
error: 27: call to 'shade' expected 2 arguments, but found 3 error: 27: no match for shader::eval(float2, half4)
error: 28: expected 'float2', but found 'half4' error: 28: no match for shader::eval(half4)
error: 29: call to 'shade' expected 2 arguments, but found 3 error: 29: no match for shader::eval(half4, float2)
error: 30: call to 'shade' expected 2 arguments, but found 1 error: 30: no match for shader::eval()
error: 31: expected 'float2', but found 'float3x3' error: 31: no match for shader::eval(float3x3)
error: 33: call to 'filter' expected 2 arguments, but found 1 error: 33: no match for colorFilter::eval()
error: 34: expected 'half4', but found 'float2' error: 34: no match for colorFilter::eval(float2)
error: 35: call to 'filter' expected 2 arguments, but found 3 error: 35: no match for colorFilter::eval(float2, half4)
error: 37: call to 'blend' expected 3 arguments, but found 1 error: 37: no match for blender::eval()
error: 38: call to 'blend' expected 3 arguments, but found 2 error: 38: no match for blender::eval(half4)
error: 39: call to 'blend' expected 3 arguments, but found 2 error: 39: no match for blender::eval(float2)
error: 40: expected 'half4', but found 'float2' error: 40: no match for blender::eval(float2, half4)
error: 45: expected 'blender', but found 'shader' 24 errors
error: 46: call to 'blend' expected 3 arguments, but found 2
error: 47: expected 'colorFilter', but found 'shader'
error: 48: expected 'colorFilter', but found 'shader'
error: 50: expected 'blender', but found 'colorFilter'
error: 51: call to 'blend' expected 3 arguments, but found 2
error: 52: expected 'shader', but found 'colorFilter'
error: 53: expected 'shader', but found 'colorFilter'
error: 55: expected 'colorFilter', but found 'blender'
error: 56: call to 'filter' expected 2 arguments, but found 3
error: 57: expected 'shader', but found 'blender'
error: 58: call to 'shade' expected 2 arguments, but found 3
error: 62: no match for shader::eval(float2, half4)
error: 63: no match for shader::eval(half4)
error: 64: no match for shader::eval(half4, float2)
error: 65: no match for shader::eval()
error: 66: no match for shader::eval(float3x3)
error: 68: no match for colorFilter::eval()
error: 69: no match for colorFilter::eval(float2)
error: 70: no match for colorFilter::eval(float2, half4)
error: 72: no match for blender::eval()
error: 73: no match for blender::eval(half4)
error: 74: no match for blender::eval(float2)
error: 75: no match for blender::eval(float2, half4)
48 errors