diff --git a/gsk/gpu/shaders/gskgpuboxshadow.glsl b/gsk/gpu/shaders/gskgpuboxshadow.glsl index 93d111c721..37bb67da7b 100644 --- a/gsk/gpu/shaders/gskgpuboxshadow.glsl +++ b/gsk/gpu/shaders/gskgpuboxshadow.glsl @@ -115,7 +115,7 @@ blur_corner (vec2 p, r /= _sigma; if (min (p.x, p.y) <= -2.95 || - max (p.x, p.y) >= 2.95) + max (p.x - r.x, p.y - r.y) >= 2.95) return 0.0; float result = 0.0; diff --git a/testsuite/gsk/compare/outset-shadow-corner-blur-normal.node b/testsuite/gsk/compare/outset-shadow-corner-blur-normal.node new file mode 100644 index 0000000000..54f109b526 --- /dev/null +++ b/testsuite/gsk/compare/outset-shadow-corner-blur-normal.node @@ -0,0 +1,7 @@ +clip { + clip: 0 0 25 25; + child: outset-shadow { + blur: 1; + outline: 0 0 100 100 / 100 0 100 0; + } +} diff --git a/testsuite/gsk/compare/outset-shadow-corner-blur-normal.png b/testsuite/gsk/compare/outset-shadow-corner-blur-normal.png new file mode 100644 index 0000000000..9f25e99855 Binary files /dev/null and b/testsuite/gsk/compare/outset-shadow-corner-blur-normal.png differ diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build index 55f6c88726..36f8de186d 100644 --- a/testsuite/gsk/meson.build +++ b/testsuite/gsk/meson.build @@ -121,6 +121,7 @@ compare_render_tests = [ 'opacity-overlapping-children', 'outset-shadow-corner-blur', 'outset-shadow-corner-blur-huge-nocairo-nogl', + 'outset-shadow-corner-blur-normal', 'outset-shadow-corner-blur-tiny', 'outset_shadow_offset_both', 'outset_shadow_offset_x',