Many tweaks as usual but the most interesting additions since the last
bump are:
- `wl_fixes`, which allows to delete `wl_registry` objects (to hook up
in embedder). This requires a new interface as `wl_registry`'s version
can't be directly bumped. A notable usecase will come from mesa:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29140
- `wl_shm::release` and `wl_shm_pool::release`, which allows to delete
each respective object. (should automatically work but requires max
version bump when binding, will do in a separate PR). Useful for the
embedder, two less interfaces to instance and share.
- `wl_keyboard` version 10, which introduces server-side repetition
through a new `repeated` key state.
It also includes new buffer formats enumerations, but I don't know the
pratical implications of this specific addition, especially as this is
the WSI's responsibility FWIU.
This patch introduces a new protocol proxy, which multiplxes Wayland
clients into a single connection, allowing us to redirect calls (e.g.
create toplevel -> create subsurface). Mixed with some state tracking
and emulation, we can embed a full-featured client into the editor.
This work is a heavily refactored and rewritten from TheForge's initial
code.
TheForge's original code had too many race conditions and was
fundamentally flawed as it was too easy to incur into those data races
by accident.
However they identified the proper places that needed changes, and the
idea was sound. I used their work as a blueprint to design this work.
This PR implements:
- Introduction of UMA buffers used by a few buffers
(most notably the ones filled by _fill_instance_data).
Ironically this change seems to positively affect PC more than it does
on Mobile.
Updates D3D12 Memory Allocator to get GPU_UPLOAD heap support.
Metal implementation by Stuart Carnie.
Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com>
Co-authored-by: TheForge team
A 6DOF constraint that constrains all rotation axis in combination with a body that has some of its rotation axis locked would not constrain the rotation in the unlocked axis.
Fixes#109018