mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
The flickering in https://github.com/flutter/flutter/issues/148412 is caused by us switching between the RRect fast path and a gaussian blur. The reason is that the SkRect.isSimple check doesn't handle fp precision very well. On one of the frames the difference was : ``` D/skia (18362): SkRect::MakeLTRB(74, 179.666672f, 374, 479.666656f); D/skia (18362): const SkPoint corners[] = { D/skia (18362): { 150, 149.999969f }, D/skia (18362): { 150, 150 }, D/skia (18362): { 150, 149.999969f }, D/skia (18362): { 150, 150 }, D/skia (18362): }; ``` So lets used a relaxed check for RRect.isSimple instead. Fixes https://github.com/flutter/flutter/issues/148412