08:33wlb: wayland-protocols Merge request !190 opened by Simon Ser (emersion) xdg-output: clarify goal https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/190 [xdg-output]
09:15wlb: wayland Issue #350 opened by Simon Ser (emersion) Clarify interactions between wl_surface.leave and wl_output destruction https://gitlab.freedesktop.org/wayland/wayland/-/issues/350 [Protocol]
12:17zxd: Hi
12:22zxd: is wayland development going well ?
12:26daniels: yep!
12:27zxd: good, I remember in the 90s Linux was taking off and I saw how slow X was I said this is terrible someone code a new Windowing system now
12:27zxd: too bad I didnt know any c/c++
12:33zubzub: if I launch weston with the headless backend + use-gl it's stuck on "launching '/usr/lib/x86_64-linux-gnu/weston-desktop-shell'"
12:33zubzub: this happens with weston v10 from debian testing as well as weston from ubuntu (v9)
12:35pq: zubzub, does it unstuck if you wait one minute?
12:35pq: how stuck is "stuck"?
12:35zubzub: not sure if I waited one minute let me try
12:35zubzub: when it's stuck, I can't connect with any client kind of stuck
12:35pq: hmm
12:36pq: how "can't connect"?
12:36pq: no socket found, opening socket failed, or something?
12:37zubzub: rebooting the server, will let you know asap :p
12:38pq: check your WAYLAND_DISPLAY is set right, just in case; it's likely wayland-1, not wayland-0
12:38pq: for the client, that is
12:38zubzub: "(gtk4-demo:1740): Gtk-WARNING **: 13:38:18.171: cannot open display"
12:38zubzub: I explicitly set it to wayland-0
12:38pq: try wayland-1
12:39zubzub: yeah that works o_O
12:39pq: Weston is avoiding wayland-0 socket name if it's not the "primary" compositor like with DRM-backend
12:39zubzub: oh ok
12:39pq: so all nested flavors and headless avoid the default socket name
12:40pq: at least those, not sure about DRM actually
12:40pq: the reason is, if your real desktop is X11, your real desktop apps don't suddenly start opening inside Weston
12:41zubzub: ic
12:42zubzub: ugh, weston on debian testing doesn't have linux dmabuf protocol?!
12:43pq: it should, surely
12:43zubzub: hmm, does it decide not to advertise it under certain conditions?
12:43pq: wayland-info is saying otherwise?
12:44pq: yeah, gl-renderer is required at least, so if you use pixman, then no dmabuf
12:44zubzub: hmmm, ah it's fallbacking to llvm mesa
12:44zubzub: even though I have nvidia 515 driver
12:44zubzub: an overlooked advantage of having a standing desk is that these are way to hard to flip over
12:45pq: I bet NVIDIA does not advertise support for the EGL surfaceless platform? So glvnd picks the one who does, which is Mesa/llvmpipe.
12:45zubzub: quite heavy and all
12:46zubzub: ok that might explain it
12:46pq: Weston's headless-backend with GL-renderer relies of the EGL surfaceless platform.
12:46pq: EGL EGLDevice platform could be an alternative I guess, but has not been implemented in Weston
12:47pq: Might not be a bad idea to add that, Mesa supports it too, right?
12:47pq: which would put the burden of picking the GPU device on Weston code?
12:48zubzub: I guess so?
12:48zubzub: I've simpy put a config option in my implementation to pick the correct render device
12:50zubzub: man nvidia and wayland is still such an absolute PITA to get working... breaking in (clients in) all kinds of subtle ways
12:52zubzub: qt5 be like, ooh you have linux dmabuf protocol [using nvidia driver in the compositor], let me use it and then use mesa nouveau ðŸ˜
13:32zubzub: oh you're giving a talk at fosdem daniels
13:33zubzub: "what do these window system people even do all day, anyway?"
13:33zubzub: the most important question
13:59MrCooper: thinking of new ways to break things which were working perfectly in X, obviously
14:01zubzub: the answer will surprise you!
14:07MrCooper: it's INSANE
14:14daniels: zubzub: heh yep, it’s nowhere near as interesting as yours!
14:43zubzub: I should probably do a new talk next year
14:47zubzub: maybe nvidias driver will be good enough to run (sdl) games without them segfaulting!
17:23vyivel: is creating multiple xdg_surface object for the same wl_surface legal? afaiu yes, but weston (and only weston) says that "xdg_surface must not have any other role"
17:37jadahl: vyivel: it's illegal. looking at mutter it should check and deny a client trying to call get_xdg_surface if there is already an active xdg_surface instance
17:37vyivel: got it; right now, wlroots, kwin, and smithay allow it too
17:38vyivel: the protocol should explicitly state that, though
17:38vyivel: "It is illegal to create an xdg_surface for a wl_surface which already has an assigned role", but creating an xdg_surface alone doesn't set a role
17:39jadahl: sure, makes sense to tweak that wording to make it clear
17:52i509vcb: There is the fun issue of creating an xdg_surface and then a layer surface for example. It should be theoretically illegal per the text of the protocol but I don't recall it being implemented right anywhere
17:52i509vcb: What I recall from that is xdg_surface assigns a sort of pseudo role
18:00jadahl: i509vcb: yea, creating an xdg_surface without also later creating a role object using xdg_surface makes no sense
18:03vyivel: xdg_surface as an intermediate object for setting a role makes no sense either tbh
18:04vyivel: also yeah, creating an e.g. layer surface would be illegal: "the corresponding surface may only be assigned a role extending xdg_surface, such as xdg_toplevel or xdg_popup"
18:08jadahl: vyivel: xdg_surface is the "abstract" role the same as abstract classes work in OO
18:08jadahl: the fact that we need to first create it then something else is just how Wayland protocols tend to work
18:08i509vcb: OO in the protocol drives me up a wall lol
18:09vyivel: jadahl: i understand it, i just think it would make sense for xdg_surface to be the role object itself
18:10i509vcb: You can't turn an xdg_toplevel into a xdg_popup however
18:10i509vcb: It seems to act more like a role group and then a concrete role
18:10jadahl: yea, xdg_surface isn't a role because it's just a toolbox of useful things that most roles happen to need
18:11vyivel: most roles (two)
18:11jadahl: there are some ideas for more: xdg_splash, xdg_pip
18:12vyivel: eh, right
18:14vyivel: xdg_surface.get_popup taking xdg_surface as parent is a bit ugly in that case
18:14vyivel: should probably add an error for "invalid popup parent" or something like that too
18:15jadahl: get_popup takes a xdg_surface as a parent because the parent can be both a xdg_toplevel and xdg_popup
18:16vyivel: yes, but if an xdg_surface is used as a base for hypothetical xdg_splash, it shouldn't be allowed
18:16i509vcb: I could see a pip having a reason to maybe have a popup, but not splash
18:17jadahl: yea, sure, and there already is a 'invalid_popup_parent' error
18:18jadahl: it will now be raised if you e.g. create circular popups
18:18jadahl: ..chains
18:18vyivel: oh, indeed there is
18:18vyivel: it's fine then