Apply world and character shadows live in PRK.Client
Make world-shadow enablement and character-shadow quality hot-applicable from the existing options Apply path, without restarting/logging out/reloading the world. Keep frames in flight restart-required. Reuse renderer maintenance gate, GPU idle synchronization, resource construction scopes and pipeline invalidation. Keep shadow descriptor layouts stable across transitions; prepare replacement shadow resources and managed shader variants before publishing, preserve prior rendering on preparation failure, release disabled/replaced resources after GPU completion. New/pending shaders must use the current feature variant. Preserve capability refusals, environment locks and preference persistence; do not save failed shadow requests. Current validation scope: unit/model/options regressions cover live application and refusal without preference writes; client builds pass. User explicitly requested dropping the native shadow-reload test and will perform live off/on and character-quality checks manually. No more graphical/native runs without request. The native test source was removed; no commit or deployment requested. Implemented; user confirmed live shadow changes work: renderer uses a stable shared shadow descriptor layout, existing GPU maintenance gate/device-idle synchronization, construction-scope preparation of replacement shadow resources and shader variants, cache invalidation on variant change, seating reset and post-completion cleanup. Shader loader selects the current variant and publishes ready shaders under the same gate to prevent stale variant races. Engine Apply exposes live shadows; preparation refusals preserve the prior state and prevent persistence. Only frames in flight retains restart indicators. Unit preparation-failure/retry and options behavior covered. Validation: 344 available regression cases passed and non-automation Release client build passed with zero warnings/errors. The same five pre-existing missing-stock-profile/install-tree fixture checks remain excluded. Native test built successfully in isolated artifacts after avoiding old root-owned obj files, but host execution aborted without a useful trace, alongside libdecor/RADV messages; cause was not established. User stopped that investigation and removed the test. No native correctness claim. User authorized committing the verified implementation: 8075b95bf (feature: Apply client shadow settings without restart) on feature/client-options-window. Working tree clean. No push or deployment.
Checklist
2 of 2 complete- Implement safe live shadow resource/variant replacement and wire options persistence/refusal behavior.
- User verifies live off/on and Off/Low/Medium/High character-shadow changes. Unit/build validation passed; native reload test removed at user request.
- Area
- Project Rubi-Ka
- Project
- engines
- Kind
- Feature
- Task ID
tsk_6nzjka82fb- Updated