From ecc3b3edad9e31ee4c0c44189fed8c05c513627e Mon Sep 17 00:00:00 2001 From: omigamedev Date: Sat, 13 Jun 2026 19:41:20 +0200 Subject: [PATCH] Add stroke mix shell executor coverage --- docs/modernization/debt.md | 3 +++ docs/modernization/tasks.md | 3 +++ tests/paint_renderer/stroke_execution_tests.cpp | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/docs/modernization/debt.md b/docs/modernization/debt.md index 55d8313..f3a31d9 100644 --- a/docs/modernization/debt.md +++ b/docs/modernization/debt.md @@ -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 helper, leaving the call site with only mix-pass planning and helper 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()` now routes final composite execution and preview copy-back through a retained local wrapper, leaving the call site with only sequence wiring. diff --git a/docs/modernization/tasks.md b/docs/modernization/tasks.md index 4c7b490..44a4ebb 100644 --- a/docs/modernization/tasks.md +++ b/docs/modernization/tasks.md @@ -629,6 +629,9 @@ Progress Notes: - 2026-06-13: `Canvas::stroke_draw_mix()` now routes the remaining mixer framebuffer/capability shell through a local helper, leaving the call site 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 texture dispatch helper for the live sample path; `Canvas` still owns the concrete face textures and callback execution. diff --git a/tests/paint_renderer/stroke_execution_tests.cpp b/tests/paint_renderer/stroke_execution_tests.cpp index 4682117..597007e 100644 --- a/tests/paint_renderer/stroke_execution_tests.cpp +++ b/tests/paint_renderer/stroke_execution_tests.cpp @@ -1959,6 +1959,15 @@ void retained_stroke_mix_pass_shell_builder_preserves_combined_wiring(pp::tests: shell.request.unbind_mix_samplers(); 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 expected_events { "begin", "bind-samplers",