12 Commits

Author SHA1 Message Date
Jonah Williams
b1f2905fbf [Impeller] Make interleaved layout (more) explicit in generated headers. (flutter/engine#42628)
Working on https://github.com/flutter/engine/pull/42415 , I found that it was difficult to customize the buffer layout as the interleaved layout is implicitly confiured in the backends. Rather than bake another built in layout, I've pulled (most) information about buffer layout into the generated headers so it is explicitly confiured, which should allow easier customization as the backend has fewer choices to make.

TBD whether or not we need to do something weird for GLES since stride has a different meaning there...

Work towards https://github.com/flutter/flutter/issues/116168
2023-06-14 20:04:35 +00:00
Jonah Williams
b06489fa4b [Impeller] Emplace directly into host buffer (avoid VBB) for text data (flutter/engine#42484)
From local testing, this shaves off about 0.3-4 ms of pure allocation overhead from https://github.com/flutter/flutter/issues/127760

### Before

![image](https://github.com/flutter/engine/assets/8975114/55701559-fba8-4f11-b606-f819d197626e)

### After

![image](https://github.com/flutter/engine/assets/8975114/b6843c13-d6c7-4364-86b1-c78e216307b3)
2023-06-01 22:34:58 +00:00
Zachary Anderson
5633d0d833 Enable bugprone-unchecked-optional-access, disable in files with warnings (flutter/engine#42359)
First part of https://github.com/flutter/flutter/issues/127701
2023-05-26 21:58:46 +00:00
Dan Field
d1c3dac55d [Impeller] Make index buffer optional (flutter/engine#41962)
Makes the index buffer optional. For calls that were just filling the index buffer with e.g. `std::iota`, it was wasteful. @jonahwilliams has also found cases where the index buffer will run out of room for drawPoints with lots of points.

Fixes https://github.com/flutter/flutter/issues/126572
2023-05-12 05:12:22 +00:00
Brandon DeRosier
45127462d5 [Impeller] Coerce opaque ColorSourceContents to Source (flutter/engine#41525)
This coercion happens when Entities are appended to a pass, which is the
moment where we will need to perform depth sorting.
2023-04-26 15:56:54 -07:00
Chinmay Garde
ea8977d178 [Impeller] Add debug ToString methods to render targets. (flutter/engine#41221)
Also fixes and issue where SPrintF would only consider strings 64 bytes or smaller.
2023-04-17 21:57:18 +00:00
Chinmay Garde
219d65bb51 [Impeller] Enable SSBOs in the Vulkan backend. (flutter/engine#40908)
[Impeller] Enable SSBOs in the Vulkan backend.
2023-04-04 03:24:26 +00:00
Dan Field
5e18c462d3 [Impeller] Reland move more files to core. (flutter/engine#40812)
[Impeller] Reland move more files to core.
2023-03-31 06:53:22 +00:00
Dan Field
a77325dab9 Revert "[Impeller] move everything needed by the code gen template to core (#40801)" (flutter/engine#40811)
This reverts commit e31cf0690fe3fbb8f97bcaddeb3a953897869ce0.
2023-03-30 16:55:18 -07:00
Dan Field
e31cf0690f [Impeller] move everything needed by the code gen template to core (flutter/engine#40801) 2023-03-30 16:35:02 -07:00
Jonah Williams
c44b7c1192 [Impeller] use native decal on metal and Vulkan backend (flutter/engine#40723)
[Impeller] use native decal on metal and Vulkan backend
2023-03-30 22:37:55 +00:00
Dan Field
340d78d20b [Impeller] Start a more generic stroke tessellator for path (flutter/engine#40690)
[Impeller] Start a more generic stroke tessellator for path
2023-03-29 06:07:05 +00:00