-
Notifications
You must be signed in to change notification settings - Fork 913
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
internal: Add libxcb and replace some Xlib functions #2614
Conversation
Running in a NetBSD VM I see "failed to open library "libxcb.so.1". Looks like the library is at |
It would be nice to make the GLX/EGL work as it was before, and also ensure that it doesn't break other stuff like wgpu/vulkan. Since I think what we have is a mix of xlib and xcb. What is the situation with error handling here as in which library delivers the errors(Xlib?)? I'm not that familiar with X11 though. |
We should be able to just keep the
I still keep the |
Okay, I tested this code on:
NetBSD appears to suffer from an The CI error is a spurious iOS network error, or it seems like it. |
8af0265
to
dbb2650
Compare
b95ccbc
to
638a7a1
Compare
What is the current status of this PR? Are there any blockers that I can resolve? |
I need to find time and read through it. Also it should have feature parity with the current master. Have you resolved the IME issues? |
Not yet. I'll go ahead and add that the next time I have time. |
Sub-commit messages: Fix 32-bit builds Fix clippy warnings Clean up + better atom handling Cleanup fmt x11rb should be optional Make sure x11rb doesn't appear in public interface Rebase on master Tree shaking fmt
06b511a
to
19f04c9
Compare
74251a3
to
6a72687
Compare
Putting this back into the draft phase as this is now blocked on the next |
We already have XKB support on the keyboard v2 (or new-keyboard) branch. In general you can go without XKB and we can merge it later on, unless you really want xkb now for whatever reason. Some of the XKB stuff is present in wayland backend already for example. |
Alright, if you say so. I'll replace it with a naïve algorithm for now. |
Don't worry, I've been continuously rebasing this branch off of master anyways. As long as it uses |
Actually, I'd rather just wait for #2662 to be merged anyhow, since it seems this PR is blocked on that one. |
Supersedes by #2825 |
CHANGELOG.md
if knowledge of this change could be valuable to usersThis PR replaces portions of the X11 backend. Rather than using
libX11
, which is an outdated and buggy library, it useslibxcb
, though thex11rb
crate, to communicate with the X server. This PR significantly reduces the amount of unsafe code found in the backend, For some reasoncargo geiger
crashes on this codebase, so I can't accurately measure the change, but I can guarantee it's significantly lower. In fact, almost all of the unsafe code in the X11 backend has been removed.I'm aware that prior work on this has been done in #1932 and #2088, but at this point I think it's best to start from scratch.
IME appeared to be broken after I started integration of
x11rb
(as if it wasn't broken anyways). I've deleted it completely for now. We may want to usexcb-imdkit
orxim-rs
to replace it.Blocked on #2662 for now