ChanServ changed the topic of #wayland to: https://wayland.freedesktop.org | Discussion about the Wayland protocol and its implementations, plus libinput | register your nick to speak
xexaxo has quit [Read error: Connection reset by peer]
griffinp has quit [Read error: Connection timed out]
leon-p has quit [Ping timeout: 480 seconds]
rasterman has joined #wayland
flacks has quit [Quit: Quitter]
flacks has joined #wayland
rasterman has quit [Quit: Gettin' stinky!]
lanodan has quit [Remote host closed the connection]
lanodan has joined #wayland
<DemiMarieObenour[m]>
My compositor and the daemon it talks to basically map Wayland onto X11. Can I map Wayland subsurfaces onto X11 child windows, or does that way lie glitchy graphics and sad users?
<DemiMarieObenour[m]>
My intuition is that mapping X11 child windows onto Wayland subsurfaces is easy, but X11 subsurfaces just do not have the needed atomicity guarantees. Is this accurate?
<DemiMarieObenour[m]>
soreau: As opposed to X11 child windows?
<DemiMarieObenour[m]>
Would you mind expanding on “resizing was horrible”?
<soreau>
DemiMarieObenour[m]: I'm not sure about subsurfaces specifically, maybe the relation should be children
<DemiMarieObenour[m]>
soreau: Asking because I am not sure if transparent X11 subsurfaces actually work.
<soreau>
but really this is a big hack that I doubt is on-topic for this channel
<DemiMarieObenour[m]>
soreau: Do you mind if I direct-message you?
<soreau>
sure
turbotum has joined #wayland
mjs_xorg_2 has joined #wayland
turbotum has quit []
turbotum has joined #wayland
st3r4g has joined #wayland
mjs_xorg_2 has quit []
shashank1202 has quit [Quit: Connection closed for inactivity]
AJ_Z0 has quit [Ping timeout: 480 seconds]
AJ_Z0 has joined #wayland
hendursa1 has quit []
hendursaga has joined #wayland
sndb has quit [Ping timeout: 480 seconds]
hendursaga has quit [Remote host closed the connection]
<DemiMarieObenour[m]>
ManMower: My current thought for `wl_fixes` is that `wayland-scanner` will need to special-case `wl_registry`, so as to not emit `wl_registry_destroy` at all. Instead, `libwayland-client` would need to contain a hand-written implementation that does the right thing. Additionally, `libwayland-client` would need to obtain this information somehow, perhaps by binding to `wl_registry` itself, even though that would be a (slight)
<DemiMarieObenour[m]>
regression on older servers.
<DemiMarieObenour[m]>
Alternatively, `libwayland-client` could handle `wl_registry` specially, but that might lead to thread-safety problems.
sndb has joined #wayland
<ManMower>
I really don't like special casing that in the scanner at all - but I'm just one voice in the crowd
<DemiMarieObenour[m]>
I don’t either, but the alternative seems worse.
<ManMower>
the alternative being just leaking a handful of bytes and ignoring the theoretical problem for another decade? :D
<DemiMarieObenour[m]>
honestly, if the registry destructor was the only problem, I would be prepared to call it a day
<DemiMarieObenour[m]>
my main goal is actually dealing with the zombie object situation, which I think is a bit less theoretical
<ManMower>
I think cases people have actually hit in non-contrived real world code are mostly sorted, but there are definitely still ways someone can footgun with custom protocol
<DemiMarieObenour[m]>
ManMower: Will `wl_data_device` cause any objects to be leaked after the zombie MR is merged?
<ManMower>
I feel like maybe we could validate protocol harder to prevent people from doing that, but then old protocol that has the capacity to explode but hasn't yet is suddenly not scannerable and... sigh
<DemiMarieObenour[m]>
Allow people to override the checks with `--force`?
<ManMower>
I have very strong doubts that MR will be merged, let's call that an RFC for now. I don't think it adds any new leaks, but now that you call out that specific case I'll have to sit down and think about it :)
<ManMower>
hmm, that's a level of grossness I'd be willing to accept. but I don't know if anyone else would - and I also don't know that making the scanner "smarter" would actually help, I'm just thinking out loud
<DemiMarieObenour[m]>
RFC idea: require every interface to have either at least one destructor event (and no requests of any kind), or at least one destructor request (and no destructor events)
<ManMower>
hehe my knee jerk reaction is "yes please"
<DemiMarieObenour[m]>
From what I can tell, so long as there are no interfaces that are (a) created by the server and (b) create new server-side objects themselves, the problem is solvable
<ManMower>
yeah, I think that's right. that's certainly where I went to contrive an icky test case
<DemiMarieObenour[m]>
So check that every server-generated object (with `new_id` in an `<event>`) is of an interface defined in the same file, and itself either has a destructor event, or has no events of any kind that create objects.
any1 has joined #wayland
<DemiMarieObenour[m]>
If one wanted to go even further, another option would be to state that *every* interface must have a destructor request named `destroy`, with a hard-coded list of exceptions
<ManMower>
I've gotta BAIL in a minute, it's thanksgiving weekend here and we've got a bunch of family stuff planned.
<DemiMarieObenour[m]>
Happy thanksgiving!
<ManMower>
thanks! :)
<DemiMarieObenour[m]>
You’re welcome!
<DemiMarieObenour[m]>
BTW on further thought I think any server-generated object is bad, unless it is guaranteed to have either a destructor event, or a destructor request with no side effects.
<DemiMarieObenour[m]>
The “no side effects” part is important because it means that libwayland-client can safely call its destructor automatically.
<any1>
Just joined. Are we discussing that annoying race where server created objects cause clients to crash when the server deletes them and creates new ones because they reuse object ids so the client gets confused?
feiqu has quit [Quit: feiqu]
hendursaga has joined #wayland
Spathoche has joined #wayland
feiqu has joined #wayland
any1 has quit [Quit: WeeChat 1.6]
any1 has joined #wayland
Spathoche has quit [Remote host closed the connection]
danvet has quit [Ping timeout: 480 seconds]
dcz_ has quit [Ping timeout: 480 seconds]
Lucretia has quit []
danvet has joined #wayland
Lucretia has joined #wayland
sndb has quit [Quit: Leaving]
leon-p_ has quit []
fmuellner has joined #wayland
hardening has quit [Ping timeout: 480 seconds]
danvet has quit [Ping timeout: 480 seconds]
d_ed has joined #wayland
d_ed has quit []
Seirdy has quit [Quit: exiting 3.2]
Seirdy has joined #wayland
fmuellner has quit [Ping timeout: 480 seconds]
AJ_Z0 has quit [Read error: Connection reset by peer]