Skip to content

Fix EX31 warmup, rectangle area, and RWMC runtime path#264

Open
AnastaZIuk wants to merge 3 commits intopath_tracer_beautyfrom
unroll-path_tracer_beauty
Open

Fix EX31 warmup, rectangle area, and RWMC runtime path#264
AnastaZIuk wants to merge 3 commits intopath_tracer_beautyfrom
unroll-path_tracer_beauty

Conversation

@AnastaZIuk
Copy link
Copy Markdown
Member

@AnastaZIuk AnastaZIuk commented Mar 31, 2026

Summary

  • make EX31 warmup and prepared-shader cache preparation line up with the branch's effective persistent render variants so edited HLSL no longer reuses stale prepared SPIR-V
  • make rectangle Area selection resolve to a real packaged variant inside the existing variant graph instead of a UI choice that can drift from effective selection
  • realign EX31 RWMC startup, resolve configuration, and runtime selection with the persistent-workgroup model used on path_tracer_beauty
  • reset EX31 RWMC defaults to a stable comparison baseline and expose a one-click UI reset so RWMC and non-RWMC brightness checks start from the same parameter state

Root cause

The current EX31 branch has two separate regressions.

First, the startup and warmup path stopped following the branch's effective packaged variants. The initial runtime-side startup selection came in 25d3f009, and 3b9b2f32 widened that path by preloading the startup shader and resolve shader before the first submit. After the later variant reshapes in 13f09209, 520e26fb, and 7e0e7f98, EX31 still keyed startup and warmup from the UI-side usePersistentWorkGroups bit instead of the branch's effective packaged-variant contract. The same 7e0e7f98 change also introduced render_variant_info.hpp with rectangle hard-wired to SOLID_ANGLE, so the UI could expose Area while effective selection never reached a real rectangle-area packaged variant.

Second, RWMC drifted in a later same-day refactor sequence. 2e90b9f0 replaced the old scramble-sequence path with CCachedOwenScrambledSequence.hpp and KeyedQuantizedSequence.hlsl, and that commit already notes that the new HLSL decoder was broken. 02717101 moved EX31 onto that decoder and resynced the main push constants, but the resolve-side rwmcParams.sampleCount no longer followed the active spp. 5d3b3b27 then adapted EX31 after persistent-workgroup and RWMC breakage showed up, but runtime selection, resolve configuration, and the compiled entrypoint surface still did not line up cleanly. This PR makes those paths agree again around the persistent packaged variants the branch actually uses.

The RWMC-parameter brightness drift is older than this branch. 64ba310b introduced the long-lived EX31 RWMC default pack with kappa = 5.0, and the same defaults remained on master. That was not the cause of the branch runtime regressions above, but it made RWMC versus non-RWMC comparisons depend too much on leftover UI state. This PR also resets EX31 to a stable comparison baseline and adds a direct Reset RWMC control so those comparisons are reproducible.

@AnastaZIuk
Copy link
Copy Markdown
Member Author

CI failing due to microsoft/DirectXShaderCompiler#8324, fix about to enter master and we will pull it here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant