ChanServ changed the topic of #wayland to: https://wayland.freedesktop.org | Discussion about the Wayland protocol and its implementations, plus libinput
lsd|2 has quit [Quit: KVIrc 5.2.2 Quasar http://www.kvirc.net/]
rgallaispou has quit [Ping timeout: 480 seconds]
Brainium has quit [Quit: Konversation terminated!]
kestrel has joined #wayland
fmuellner has quit [Ping timeout: 480 seconds]
kode54 has quit [Quit: The Lounge - https://thelounge.chat]
kode54 has joined #wayland
garnacho has quit [Ping timeout: 480 seconds]
nerdopolis has quit [Ping timeout: 480 seconds]
chiku has joined #wayland
Sid127 has quit [Ping timeout: 480 seconds]
eluks has quit [Remote host closed the connection]
eluks has joined #wayland
user21 has joined #wayland
glennk has joined #wayland
user21 has quit [Remote host closed the connection]
coldfeet has joined #wayland
lsd|2 has joined #wayland
coldfeet has quit [Quit: Lost terminal]
kts has joined #wayland
kts has quit []
<wlb> wayland Issue #511 closed \o/ (wayland-util: There will be deviations when fixing floating point numbers using wl_fixed_from_double() https://gitlab.freedesktop.org/wayland/wayland/-/issues/511)
lsd|2 has quit [Quit: KVIrc 5.2.2 Quasar http://www.kvirc.net/]
kts has joined #wayland
garnacho has joined #wayland
kts has quit [Ping timeout: 480 seconds]
rasterman has joined #wayland
kts has joined #wayland
<wlb> wayland-protocols/main: Simon Ser * linux-dmabuf: link to kernel docs https://gitlab.freedesktop.org/wayland/wayland-protocols/commit/bd6289c14148 stable/linux-dmabuf/linux-dmabuf-v1.xml
<wlb> wayland-protocols Merge request !364 merged \o/ (linux-dmabuf: link to kernel docs https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/364)
leon-anavi has joined #wayland
Emantor has quit [Quit: ZNC - http://znc.in]
crazybyte has quit [Quit: Bye]
crazybyte has joined #wayland
sima has joined #wayland
Emantor has joined #wayland
Emantor has quit []
Emantor has joined #wayland
peeterm has quit [Read error: Connection reset by peer]
peeterm has joined #wayland
ofourdan has quit [Remote host closed the connection]
pavlushka has joined #wayland
kts has quit [Ping timeout: 480 seconds]
kts has joined #wayland
mdb977 has joined #wayland
<mdb977> Hi There, I'm on an embedded device using Weston and currently fiddling with SELinux. If I connect a physical keyboard, Weston crashes with 'file descriptor expected, object (21), message keymap(uhu)' and 'Fatal error: invalid argument'. Everything is fine without SELinux enforcing. Unfortunately, the audit log shows no clue. Does anybody have a tip on which direction to look at?
<vyivel> mdb977: wl_keyboard.keymap carries a keymap fd, perhaps selinux prevents it from being passed over the unix socket connection for some reason?
kts has quit [Ping timeout: 480 seconds]
fmuellner has joined #wayland
Moprius has joined #wayland
tzimmermann has joined #wayland
Esu has joined #wayland
Moprius_ has joined #wayland
Moprius has quit [Ping timeout: 480 seconds]
pavlushka has quit [Ping timeout: 480 seconds]
mvlad has joined #wayland
<pq> zamundaaa[m], by the test app you mean https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/14#note_2722732 ? (somehow I never got the notification of that comment.)
<zamundaaa[m]> pq: yes
<pq> mdb977, are you sure it's Weston crashing? To me that looks like a client error message. Anyway, vyivel has a good quess.
<pq> zamundaaa[m], yeah, sounds good enough to me. Maybe check with swick, too.
riteo has joined #wayland
leon-anavi has quit [Read error: No route to host]
leon-anavi has joined #wayland
<riteo> hi people, I'm a bit on a shaky connection so sorry if I quit-join
<riteo> so libdecor still has this whole visibility-change-does-not-work thing with SSDs and I looked around to see what other clients do
<riteo> it looks like people just assume that xdg-decoration-manager == SSDs? Is that even in spec?
<riteo> Like, the protocol description goes "This interface allows a compositor to announce support for server-side decorations.", not "This interface announces support for server-side decorations."
<riteo> could somebody please help me how I should go forward?
<davidre> the compositor will tell you the mode you should use
<riteo> ye but you have to configure a whole toplevel first
<zamundaaa[m]> riteo: imo that's an oversight in the spec text
<riteo> zamundaaa[m]: what do you mean?
<riteo> (btw, if some of you have dejavu I already talked about this a year or so ago)
<zamundaaa[m]> The assumption is that if the global is supported, the compositor also does support SSD
<riteo> and is that assumption correct?
<zamundaaa[m]> Of course, with window rules or whatnot, it might still tell you to do CSD instead
<davidre> libdecor also follows the mode
<davidre> if the compositor says CSD it will do CSD
<riteo> yea but libdecor does not allow hiding SSD decorations
<riteo> like, if I want a borderless window on KDE I just... can't
<davidre> You can't
<riteo> it depends on a protocol update that never got merged
<riteo> or implemented
<davidre> There's a trick
<zamundaaa[m]> riteo: It does not
<davidre> you destroy the xdg_toplevel_decoration
<davidre> so the compositor doesnt know that you can handle SSD
<zamundaaa[m]> libdecor could very much request CSD, and that would work just fine
<davidre> But of course the compositor can always double decorate CSD clients
<davidre> But the compositor can do what it wants in general
<riteo> zamundaaa[m]: that's what the current code does, I'm not sure why it does like that but right now it explicitly checks for this non-implemented version
<riteo> zamundaaa[m]: so all versions of libdecor are currently broken on SSDs
<mdb977> @vyivel Thanks, yes, rule for memfd:weston-shared was missing.
<riteo> davidre: sorry, I'm not really sure I understand what you're proposing
<davidre> There's no reason the libdecor code requires v2
<riteo> like, I already call that method but the xdg_decoration parts are guarded by an "is xdg_decoration_manager version 2 or up"
<davidre> as there's no v2
<riteo> ye but that code is effectively dead
<riteo> and the client I'm working on (godot) needs to allow borderless windows on SSDs
<davidre> Then fix libdecor
<davidre> or do not use it
<riteo> zamundaaa[m]: that never got merged either :(
<riteo> davidre: there's an MR but it got stuck
<riteo> and CSDs on godot are still WIP
<riteo> that's why I'm asking here
<riteo> is the best solution really just to assume that xdg_decoration_manager == SSDs available?
<riteo> and hope for the best
<davidre> you could destroy the libdecor object to the same effect
<riteo> well that would unmap the window
<riteo> which is not exactly ideal
<davidre> Oh it does manage the whole window for you?
<riteo> yep it's a whole wrapper
<riteo> BTW I'm asking this as I just found out about https://wiki.libsdl.org/SDL3/SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR which implies exactly that assumption
<riteo> but it just feels... wrong
<zamundaaa[m]> riteo: linking that MR wasn't to show you that nothing can be done, but that if you want to fix it, it's not very complicated
<riteo> I mean, isn't it already fixed in that MR?
<riteo> sorry I'm not sure what you meant then
<riteo> are you saying that I should, like, vendor the library in and patch it myself?
<zamundaaa[m]> You can open a MR with that comment Jonas wanted, or ping misyl to add it, or vendor it if you really really really want to
<riteo> I see
<riteo> so, end of line, the assumption that xdg_decoration == SSDs is indeed not a good idea and libdecor must be fixed
<zamundaaa[m]> You can make that assumption in practice too, but it's not a proper fix
<riteo> All right. I guess I might do that as a stopgap and push to get libdecor fixed.
<riteo> Thank you all!
<riteo> I'll quit for now but I'll still take a look at the logs if anyone wants to add anything. Cya!
riteo has quit [Quit: epic decoration moment]
mdb977 has left #wayland [#wayland]
lsd|2 has joined #wayland
lsd|2 has quit [Quit: KVIrc 5.2.2 Quasar http://www.kvirc.net/]
nerdopolis has joined #wayland
rgallaispou has joined #wayland
pbsds has joined #wayland
<wlb> weston Issue #606 closed \o/ (How to implement PQ and HLG curves https://gitlab.freedesktop.org/wayland/weston/-/issues/606)
nerdopolis has quit [Ping timeout: 480 seconds]
Esu has left #wayland [#wayland]
cyrinux has quit []
cyrinux has joined #wayland
iomari891 has joined #wayland
Fya has quit [Remote host closed the connection]
rasterman has quit [Quit: Gettin' stinky!]
<wlb> weston Merge request !1595 merged \o/ (Improve read-back: Renderbuffers (1/3) https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1595)
bitblt has joined #wayland
<bitblt> hello!
<bitblt> is this a good chat to ask questions about wayland client implementations?
<ifreund> sure
soreau has quit [Ping timeout: 480 seconds]
<bitblt> so, I've read the wayland-book (https://wayland-book.com/) along with some other similar practical wayland guides (e.g. https://bugaevc.gitbooks.io/writing-wayland-clients/) and I have a nice little working wayland client
<bitblt> I have some questions about the api usage though that neither the above, nor the official api documentation (https://wayland.app/protocols/) where explicit about
<bitblt> question no1: when binding the global objects with wl_registry_bind, should I use hardcoded interface versions? why shouldn't i use the version param of the wl_registry_listener.global callback?
<zamundaaa[m]> bitblt: you should use `min(highest_version_you_support, version_from_callback)`
<zamundaaa[m]> If you just use the version from the callback, you might be opting into behavior that changed with newer versions vs. from what you implemented
<bitblt> ah I see
<bitblt> I suppose this behavior might change, but the callbacks / types / function will remain the same?
vincejv has quit [Ping timeout: 480 seconds]
<bitblt> I thought that versioning was actually implemented with different protocol (definitions) xmls
<wlb> wayland Issue #523 opened by Tobias Hänel (tobias-haenel) Segmentation fault in destroy_queued_closure https://gitlab.freedesktop.org/wayland/wayland/-/issues/523
<ifreund> adding events and requests to a protocol is a backwards compatible change
<bitblt> Is there any example of why I should use `min(highest_version_you_support, version_from_callback)` for the version?
<ifreund> if you tell the server to send events for a version that your client doesn't actually support, your client will get killed by libwayland as it does not recognize the newer events
soreau has joined #wayland
<bitblt> ok I suppose that means I should be specific in the version of libwayland-client I'm linking into, and check what versions are the globals in this libwayland-client and use these in the registry_global_handler
<ifreund> bitblt: this has nothing do with the version of libwayland client you are linking, it has to do with what version of the protocol interfaces your client implements
<ifreund> (aside: libwayland makes this much more of a footgun than it needs to be, zig-wayland makes it impossible to write this bug)
<ifreund> I require the user to specify the maximum version of each global interface they implement at build time and only generate requests/events/interfaces up to that version, and then generate the min(supported, advertised) automatically on bind
<bitblt> ok, I need to wrap my head around this a bit more, but I think I have the info I need for this
<bitblt> onto the next question
<bitblt> question no2: when should I do a `wl_display_roundtrip(wl_display)` instead of a `while (wl_display_dispatch(display) != -1){}`?
<bitblt> as far as I understand both kinda force requests/events up to this point to be handled (either by the server/client or both)
<ifreund> in practice, wl_display_roundtrip() should only be used once on startup and maybe once on shutdown if you need to ensure the server gets a request before exiting
<ifreund> in case you're not clear on the difference: wl_display_roundtrip() is an abstraction over the wl_display.sync request
<ifreund> and has different semantics from a "normal" fully async dispatch
<wlb> wayland Merge request !449 opened by Daniel Stone (daniels) ci: Update ci-templates https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/449
<ifreund> see the libwayland doc comments or implementation for details
<ifreund> and perhaps the docs for the wl_display.sync request
<bitblt> how is wl_display.sync different from looping over a wl_display_dispatch until the event queue is exausted? I suppose the main difference is that the second one will block and await for events when empty?
<ifreund> bitblt: wl_display_roundtrip waits for the server's reply to the wl_display.sync request
<ifreund> since events/requests are processed in order, the client knows that once the server has replied to the sync request, the server has also recieved all requests sent prior to the wl_display.sync request
<ifreund> since it does not make a wl_display.sync request, wl_display_dispatch() gives no such guarantees
<bitblt> ah I see
<bitblt> ok last question for today:
<bitblt> I'm pretty confused about how xdg_surface_listener.configure and xdg_surface_ack_configure work, along with rendering and wl_surface_commit
<bitblt> As far as I understand various events before xdg_surface_listener.configure will arive, in which wayland server tells the wayland client what surface size, decorations etc he should ideally have
vincejv has joined #wayland
<bitblt> when the xdg_surface_listener.configure arrives it is like a 'commit' request from the server for these preferences
<bitblt> I don't see a reason that xdg_surface_ack_configure should exist, I mean the wayland client could just take his time, render the new surface and commit it after that .configure event?
<ifreund> bitblt: since the protocol is asynchronous, the server needs a way to know if the client received a given configure event before it made the wl_surface.commit request
<ifreund> ack_configure is this mechanism
<bitblt> aha yeah that makes sense
<bitblt> so because the order of the requests from the client is guranteed, this means that the server can know that the configure was handled before the commit, because the ack will arrive before the commit in this case
<ifreund> indeed
<bitblt> is there any specific example that this is useful for the wayland server?
<ifreund> it's necessary for frame perfection in many cases
<ifreund> for example during interactive resize with server-side decorations
<ifreund> or when resizing multiple clients at once in a tiled layout
<soreau> if the client has a min/max size, it might not attach a new buffer
<wlb> wayland Merge request !449 merged \o/ (ci: Update ci-templates https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/449)
<wlb> wayland/main: Daniel Stone * ci: Update ci-templates https://gitlab.freedesktop.org/wayland/wayland/commit/597a6b94f52d .gitlab-ci.yml
<bitblt> I think I have the basic unanswered questions covered, thanks ifreund !
<ifreund> no problem!
<bitblt> (btw river is a great idea, I want to migrate from bspwm to this at some point when there is no blurryness caused by fractional scaling)
leon-anavi has quit [Quit: Leaving]
Brainium has joined #wayland
<bitblt> yes I'm pretty sure this is it, I was learning wayland to make a poc client just to understand / solve this if I can
user21 has joined #wayland
tzimmermann has quit [Quit: Leaving]
peeterm_ has joined #wayland
balrog has quit [Ping timeout: 480 seconds]
pbsds is now known as Guest6572
pbsds has joined #wayland
alarumbe has quit [Remote host closed the connection]
alarumbe has joined #wayland
p7cq0 has joined #wayland
dos11 has joined #wayland
abeltramo5895238271 has joined #wayland
crazybyte7 has joined #wayland
kestrel3 has joined #wayland
p7cq has quit [Read error: Connection reset by peer]
p7cq0 is now known as p7cq
Hypfer is now known as Guest6575
Arsen has quit [Remote host closed the connection]
Hypfer has joined #wayland
karolherbst3 has joined #wayland
dos1 has quit [Read error: Connection reset by peer]
Guest6572 has quit [Read error: Connection reset by peer]
Arsen has joined #wayland
abeltramo589523827 has quit [Read error: Connection reset by peer]
kestrel has quit [Write error: connection closed]
karolherbst has quit [Write error: connection closed]
crazybyte has quit [Read error: Connection reset by peer]
abeltramo5895238271 is now known as abeltramo589523827
crazybyte7 is now known as crazybyte
kestrel3 is now known as kestrel
balrog has joined #wayland
Guest6575 has quit [Ping timeout: 480 seconds]
peeterm has quit [Ping timeout: 480 seconds]
leandrohrb has quit [Ping timeout: 480 seconds]
peeterm_ is now known as peeterm
leandrohrb has joined #wayland
balrog has quit [Quit: Bye]
balrog has joined #wayland
glennk has quit [Read error: Connection reset by peer]
rgallaispou has quit [Read error: Connection reset by peer]
glennk has joined #wayland
karolherbst3 has quit []
karolherbst has joined #wayland
iomari891 has quit [Ping timeout: 480 seconds]
<wlb> weston Merge request !1674 opened by Marius Vlad (mvlad) gitlab-ci.yml: Bump CI templates and use FDO_DISTRIBUTION_PLATFORM https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1674 [CI]
iomari891 has joined #wayland
iomari891 has quit [Ping timeout: 480 seconds]
garnacho has quit [Ping timeout: 480 seconds]
<wlb> weston/main: Marius Vlad * gitlab-ci.yml: Bump CI templates and use FDO_DISTRIBUTION_PLATFORM https://gitlab.freedesktop.org/wayland/weston/commit/d17e61546eee .gitlab-ci.yml
<wlb> weston/main: Marius Vlad * meson.build: Bump to C11 with GNU extensions https://gitlab.freedesktop.org/wayland/weston/commit/cfbf49d7e012 libweston/backend-rdp/rdp.h meson.build
<wlb> weston Merge request !1674 merged \o/ (gitlab-ci.yml: Bump CI templates and use FDO_DISTRIBUTION_PLATFORM https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1674)
Calandracas has quit [Read error: Connection reset by peer]
Calandracas has joined #wayland
rgallaispou has joined #wayland
Calandracas_ has joined #wayland
Calandracas has quit [Read error: Connection reset by peer]
Calandracas_ has quit [Read error: Connection reset by peer]
Calandracas_ has joined #wayland
ryanneph has joined #wayland
iomari891 has joined #wayland
garnacho has joined #wayland
iomari891 has quit [Ping timeout: 480 seconds]
ryanneph has quit [Quit: ryanneph has disconnected]
Calandracas_ has quit [Remote host closed the connection]
Calandracas_ has joined #wayland
Calandracas__ has joined #wayland
Moprius_ has quit [Read error: Connection reset by peer]
Moprius has joined #wayland
Calandracas has joined #wayland
Calandracas_ has quit [Ping timeout: 480 seconds]
Calandracas__ has quit [Ping timeout: 480 seconds]
Calandracas has quit [Quit: Leaving]
Calandracas has joined #wayland
rasterman has joined #wayland
mohit815822635306 has quit [Remote host closed the connection]
mohit815822635306 has joined #wayland
mohit815822635306 has quit [Remote host closed the connection]
mohit815822635306 has joined #wayland
mohit815822635306 has quit []
mohit815822635306 has joined #wayland
mohit815822635306 has quit [Read error: Connection reset by peer]
mohit815822635306 has joined #wayland
Fya has joined #wayland
<Fya> Does wayland-client objects store function pointers? Like the proxy->object.interface?
<Fya> I'm segfaulting when hot-reloading which usually happens when function pointers are unloaded through dlclose.
sima has quit [Ping timeout: 480 seconds]
nerdopolis has joined #wayland
rasterman has quit [Quit: Gettin' stinky!]
<Fya> Nevermind I figured it out.
mvlad has quit [Remote host closed the connection]
karenw has joined #wayland
iomari891 has joined #wayland
iomari891 has quit []
karenw has quit [Ping timeout: 480 seconds]
paulk-bis has joined #wayland
paulk has quit [Read error: Connection reset by peer]
MrCooper_ has joined #wayland
MrCooper has quit [Ping timeout: 480 seconds]