Синхронизация upstream и оптимизация постобработки MoonWell #12

Merged
sindoring merged 8 commits from moonwell-gfx-gpu-opt into main 2026-11-04 12:55:13 +03:00
Owner

Синхронизация с upstream до e2aeaecf: исправления AccessKit на Windows, прокрутки трекпада на Linux и анимации моделей в меню.

MoonWell: расчёт рассеяния, вторичного освещения и AO перенесён в половинное разрешение с восстановлением по глубине. В контрольной сцене RTX 5070 суммарное время постобработки снизилось с 6,41 до 3,47 мс. При выключенном расширении изображение совпадает с исходным. Добавлен анализатор диагностических логов GPU.

Исправлена подготовка тестов интерфейса и обработка отсутствующих кинороликов в сокращённой установке. Уточнены причины существующих отклонений русского пакета и HD-атласа.

Проверки: 46 тестов графического модуля и сравнения дневных/ночных кадров пройдены; полный цикл scripts/gates.sh пройден: fmt, Clippy workspace и player, reference, тесты с установкой и без неё, документация, каталог сообщений, проверка GPU-проходов и запуск движка с данными и без. Проверки отсутствующих аддонов и четырёх кинороликов явно пропущены. Живой вход/выход на сервер не выполнялся.

Синхронизация с upstream до e2aeaecf: исправления AccessKit на Windows, прокрутки трекпада на Linux и анимации моделей в меню. MoonWell: расчёт рассеяния, вторичного освещения и AO перенесён в половинное разрешение с восстановлением по глубине. В контрольной сцене RTX 5070 суммарное время постобработки снизилось с 6,41 до 3,47 мс. При выключенном расширении изображение совпадает с исходным. Добавлен анализатор диагностических логов GPU. Исправлена подготовка тестов интерфейса и обработка отсутствующих кинороликов в сокращённой установке. Уточнены причины существующих отклонений русского пакета и HD-атласа. Проверки: 46 тестов графического модуля и сравнения дневных/ночных кадров пройдены; полный цикл scripts/gates.sh пройден: fmt, Clippy workspace и player, reference, тесты с установкой и без неё, документация, каталог сообщений, проверка GPU-проходов и запуск движка с данными и без. Проверки отсутствующих аддонов и четырёх кинороликов явно пропущены. Живой вход/выход на сервер не выполнялся.
sindoring added 6 commits 2026-11-03 22:50:28 +03:00
Share depth-aware reconstruction across scattering, indirect light and AO, keeping full-size fallback for thin geometry. Windows release build, 46 gfx tests and scoped clippy pass. Fixed-scene GPU post cost: 6.41 to 3.47 ms at 5120x2880; disabled output remains pixel-identical.
Separate GPU sessions and settings epochs; summarize GPU and CPU journals. Checked weighting, toggle boundaries and empty readbacks with a synthetic fixture.
Under Proton-based Wine, `tabtip.exe` is a UI Automation client, and `bevy_winit` gives every window an AccessKit provider. That traffic faults in `rpcrt4` on blocks the game has reused, which damages the heap and later crashes the client at varying addresses. Blocking `tabtip.exe` stops the faults and the crash, and other programs in the same bottle show no such faults.

The reference's window has no provider: `WoW.exe` imports no accessibility library and names none of its calls. benilla builds no AccessKit tree either.

`VideoPlugin` now drops the adapter when Windows reports a new window, which restores winit's window procedure. Other platforms keep theirs.

No test: the adapter needs a real window and the fault a UI Automation client. Built for macOS and Windows.

Refs #2932

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixes #2978

A Wayland trackpad sends pixel travel. benilla asked 100 physical pixels for one wheel step and gave at most one step per event, so at scale 1.33 a list needed about 7.5 times GNOME's notch of finger travel.

10 axis units are one step on Wayland (SDL's `WAYLAND_WHEEL_AXIS_UNIT`, GLFW, Xwayland, mutter's `DISCRETE_SCROLL_STEP`). On Linux a notch is now 10 logical pixels at the window's base scale, and an event steps once per whole notch. macOS keeps Bevy's factor and its one step per event. Line events stay at one step each, like the reference's `WM_MOUSEWHEEL` (`0x76c1a9`), and winit reports only lines on Windows and X11. The `WheelNotches` deviation says so.

Tests: `pixel_travel_steps_by_the_platforms_notch` runs both platforms' arms on any host, and `a_pixel_notch_reads_the_base_scale` pins the scale.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Sam <samuv.eth@gmail.com>
Fixes #2980

A glue scene's seat read only a rotation and scale parked on global-sequence keys, once, when the scene was built. That lost a seat keyed in the scene's sequence: a custom `UI_CharacterSelect` turns its seat bone 180° and scales it 0.673 there, so the body stood backwards at about 1.5×. No stock scene keys its seat that way.

The reference seats a child at the bone's whole animated matrix times the attachment position, every frame (`0x7140d8`-`0x714149`), after it animates the scene (`0x714000`). The body and the pet now take that matrix from the scene rig's pose each frame. This runs in `PostUpdate` after the rig's model pass, now the named set `RigModelPass`, and before propagation, so the seat and the scene share a frame.

Test: `a_seat_takes_the_bones_whole_matrix_at_the_attachment`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Sam <samuv.eth@gmail.com>
The three new upstream commits retain their authors in this branch. Regenerated MAP and DEVIATIONS from the combined tree. Previous upstream base: d9c64230, synchronized in 779460d8.
sindoring added 1 commit 2026-11-03 22:52:47 +03:00
State why MoonWell mounts the community locale and preserves high-resolution character textures. Documentation only; deviation-why and formatting checks pass.
sindoring changed title from WIP: Sync upstream through e2aeaecf and optimize graphics to Sync upstream through e2aeaecf and optimize MoonWell GPU postprocessing 2026-11-03 22:57:22 +03:00
sindoring changed title from Sync upstream through e2aeaecf and optimize MoonWell GPU postprocessing to Синхронизация upstream и оптимизация постобработки MoonWell 2026-11-04 12:14:28 +03:00
sindoring added 1 commit 2026-11-04 12:14:31 +03:00
sindoring merged commit aa799a2c7d into main 2026-11-04 12:55:13 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sindoring/moonwell-client-core#12