diff --git a/gsk/gpu/gskgpunodeprocessor.c b/gsk/gpu/gskgpunodeprocessor.c index d3bc55cb16..0349abe0bd 100644 --- a/gsk/gpu/gskgpunodeprocessor.c +++ b/gsk/gpu/gskgpunodeprocessor.c @@ -2104,7 +2104,7 @@ gsk_gpu_node_processor_add_inset_shadow_node (GskGpuNodeProcessor *self, spread = gsk_inset_shadow_node_get_spread (node); blur_radius = gsk_inset_shadow_node_get_blur_radius (node); - if (blur_radius == 0) + if (blur_radius < 0.01) { float color[4]; @@ -2156,7 +2156,7 @@ gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self, dx = gsk_outset_shadow_node_get_dx (node); dy = gsk_outset_shadow_node_get_dy (node); - if (blur_radius == 0) + if (blur_radius < 0.01) { GskRoundedRect outline; float color[4]; diff --git a/testsuite/gsk/compare/outset-shadow-corner-blur-tiny.node b/testsuite/gsk/compare/outset-shadow-corner-blur-tiny.node new file mode 100644 index 0000000000..a61362eb6d --- /dev/null +++ b/testsuite/gsk/compare/outset-shadow-corner-blur-tiny.node @@ -0,0 +1,11 @@ +color { + bounds: 0 0 100 100; + color: rgba(0,0,0,0); +} +clip { + clip: 10 10 20 20; + child: outset-shadow { + blur: 0.00001; + outline: 0 0 100 100 / 100 0 100 0; + } +} diff --git a/testsuite/gsk/compare/outset-shadow-corner-blur-tiny.png b/testsuite/gsk/compare/outset-shadow-corner-blur-tiny.png new file mode 100644 index 0000000000..eea25d772f Binary files /dev/null and b/testsuite/gsk/compare/outset-shadow-corner-blur-tiny.png differ diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build index e9da909412..55f6c88726 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-tiny', 'outset_shadow_offset_both', 'outset_shadow_offset_x', 'outset_shadow_offset_y',