Jonah Williams 3385d10982 [Impeller] only use porter duff or vertices.uber for drawVertices. (flutter/engine#52345)
Simplifcation that will allow us to remove the special case position_color.vert and vertices.frag shaders, not done here because drawAtlas also needs to be updated. This  also fixes sparkle-party like rendering bugs where we incorrectly relied on a color filter.

The problem with doing advanced blends between the vertices with a color filters was three fold:

1. We would render incorrectly when vertices overlapped.
2. We had to disable MSAA to remove artifacts
3. The sub render pass was slow.

Below is an example of the incorrect rendering caused by overlapping vertices on the sparkle party app.

## Skia (Advanced blend)

![flutter_02](https://github.com/flutter/engine/assets/8975114/36cdd590-5b1e-4b9e-ae4d-cc187ba40bb6)

## Impeller (ToT)

![flutter_01](https://github.com/flutter/engine/assets/8975114/20ea5f42-6fb3-4f5e-b332-516ee904b8f6)

## Impeller w/ patch

![flutter_03](https://github.com/flutter/engine/assets/8975114/e88ccb6b-56ba-42de-8542-bbd94ba0fe44)

Fixes https://github.com/flutter/flutter/issues/131345
2024-04-24 23:45:49 +00:00
Languages
Dart 75%
C++ 16.5%
Objective-C++ 2.9%
Java 2.8%
Objective-C 0.7%
Other 1.9%