Add stroke mix shell executor coverage

This commit is contained in:
2026-06-13 19:41:20 +02:00
parent eb60c23e91
commit ecc3b3edad
3 changed files with 15 additions and 0 deletions

View File

@@ -86,6 +86,9 @@ agent or engineer to remove them without reconstructing context from chat.
now routes the remaining mixer framebuffer/capability shell through a local now routes the remaining mixer framebuffer/capability shell through a local
helper, leaving the call site with only mix-pass planning and helper helper, leaving the call site with only mix-pass planning and helper
invocation. invocation.
- 2026-06-13: `LATER-003` was narrowed again. The retained stroke mix shell
now has direct executor regression coverage in
`retained_stroke_mix_pass_shell_builder_preserves_combined_wiring`.
- 2026-06-13: `DEBT-0036` was narrowed again. `NodeStrokePreview::draw_stroke_immediate()` - 2026-06-13: `DEBT-0036` was narrowed again. `NodeStrokePreview::draw_stroke_immediate()`
now routes final composite execution and preview copy-back through a retained now routes final composite execution and preview copy-back through a retained
local wrapper, leaving the call site with only sequence wiring. local wrapper, leaving the call site with only sequence wiring.

View File

@@ -629,6 +629,9 @@ Progress Notes:
- 2026-06-13: `Canvas::stroke_draw_mix()` now routes the remaining mixer - 2026-06-13: `Canvas::stroke_draw_mix()` now routes the remaining mixer
framebuffer/capability shell through a local helper, leaving the call site framebuffer/capability shell through a local helper, leaving the call site
with only mix-pass planning and helper invocation. with only mix-pass planning and helper invocation.
- 2026-06-13: `retained_stroke_mix_pass_shell_builder_preserves_combined_wiring`
now also exercises the direct shell executor path, locking the combined mix
shell boundary with call-order regression coverage.
- 2026-06-13: `Canvas::stroke_draw_samples()` now reuses a retained destination - 2026-06-13: `Canvas::stroke_draw_samples()` now reuses a retained destination
texture dispatch helper for the live sample path; `Canvas` still owns the texture dispatch helper for the live sample path; `Canvas` still owns the
concrete face textures and callback execution. concrete face textures and callback execution.

View File

@@ -1959,6 +1959,15 @@ void retained_stroke_mix_pass_shell_builder_preserves_combined_wiring(pp::tests:
shell.request.unbind_mix_samplers(); shell.request.unbind_mix_samplers();
shell.setup.end(); shell.setup.end();
events.clear();
shell.setup.begin();
const auto shell_result = pp::panopainter::execute_legacy_canvas_stroke_mix_pass_shell(
shell.setup.begin,
shell.setup.end,
shell.request);
PP_EXPECT(h, shell_result.ok);
PP_EXPECT(h, shell_result.composed_planes == 1U);
const std::vector<std::string> expected_events { const std::vector<std::string> expected_events {
"begin", "begin",
"bind-samplers", "bind-samplers",