06:45 YaLTeR[m]: Are there clients that heavily use subsurfaces? I think there was an experiment in Firefox to use subsurfaces for a lot of things, is that still a thing?
06:55 daniels: yes, media uses it extensively, web view embeds use it, etc
07:52 wlb: weston Issue #1002 opened by simple (iamdrq) keyboard focus lose https://gitlab.freedesktop.org/wayland/weston/-/issues/1002
08:01 YaLTeR[m]: [@_oftc_daniels:matrix.org](https://matrix.to/#/@_oftc_daniels:matrix.org): looking for concrete app examples I could use for some testing, also looking for something with several potentially overlapping subsurfaces at once rather than one big subsurface
08:04 vyivel: YaLTeR[m]: foot uses a few for csd and other ui stuff iirc
08:04 vyivel: is there something in particular you want to test?
08:07 llyyr: mpv's dmabuf-wayland vo uses a subsurface for the video and a subsurface on top for subtitles/osd
08:08 YaLTeR[m]: CSD isn't overlapping, I was looking more for something obviously overlapping
08:08 YaLTeR[m]: llyyr: Hm I'll check
08:09 llyyr: latest release has a bug with subsurface commit ordering, so pull from master
08:10 vyivel: foot's csd buttons are technically overlapping with the titlebar itself
08:11 YaLTeR[m]: They're separate subsurfaces?
08:12 ifreund: YaLTeR[m]: foot also uses overlapping subsurfaces for its scrollback search
08:12 ifreund: and for url indicators
08:16 YaLTeR[m]: I should take a look
08:31 MrCooper: YaLTeR[m]: the Firefox WebRender compositor using sub-surfaces is still a thing; IIRC the full version is only available in Nightly though, a simpler version will be used for HDR video playback
08:31 MrCooper: (BTW, looks like Firefox will support HDR video playback on Wayland before Windows :)
08:34 YaLTeR[m]: How do you enable the webrender subsurface compositor?
08:34 YaLTeR[m]: Also what does it use subsurfaces for?
08:34 psykose: gfx.webrender.all=true or MOZ_WEBRENDER=1 i think
08:35 psykose: last time i tried it i had to manually delete it from config cause i couldn't even start firefox anymore (years ago) :P
08:37 psykose: or maybe it was specifically gfx.webrender.compositor
08:37 MrCooper: YaLTeR[m]: gfx.webrender.compositor.force-enabled
08:38 MrCooper: in a nutshell, it splits up the page into tiles and uses one sub-surface per tile
08:38 MrCooper: then e.g. scrolling just moves the tiles
08:39 MrCooper: YaLTeR[m]: FWIW, weston-subsurfaces was also surprisingly useful for testing sub-surfaces functionality
08:39 YaLTeR[m]: i tried it on current nightly and got a bunch of fully black rects
08:40 MrCooper: on niri?
08:40 YaLTeR[m]: ye
08:40 YaLTeR[m]: let's try something else
08:40 MrCooper: then either you've got work to do, or the Firefox code might have bit-rotted
08:40 YaLTeR[m]: i think it worked on sway
08:41 YaLTeR[m]: not sure how to make sure
08:41 MrCooper: yeah, issues can be hard to notice
08:42 MrCooper: at one point I had to record furiously switching between tabs and then go through the recording frame-by-frame to find inconsistent frames
08:45 YaLTeR[m]: i think it also works on anvil? okay well this is interesting, idk what i do differently from anvil
08:47 YaLTeR[m]: anvil also outputs a lot of egl errors during this
08:47 YaLTeR[m]: weston-subsurfaces i know about yeah, it works fine. also wleird subsurface stacking thing
08:53 YaLTeR[m]: also works fine on cosmic-comp, wtf lol
09:17 YaLTeR[m]: MrCooper: are there by chance any other debug flags that could help me rule out what's going on? It shows up as either transparent (on a clean render, e.g. for a screenshot) or with black rectangles. Something similar happens when a surface marks itself as opaque but then submits a new buffer with some transparency
09:19 MrCooper: don't remember offhand; calling robertmader[m] (who implemented this)
11:16 robertmader[m]: YaLTeRMrCooper: fortunately Martin Stransky picked that up and is working very actively on it as part of the HDR effort (https://bugzilla.mozilla.org/show_bug.cgi?id=1642854). So could well be that something broke in the last days.
11:16 robertmader[m]: You don't run Niri with Vulkan, do you? Because in the past that backend used implicit modifiers.
11:22 YaLTeR[m]: No, it's using OpenGL. But I just thought that one difference might be that I (still) bind wl_egl. I'll try getting rid of it in a bit and see if it fixes it
11:23 YaLTeR[m]: Can't really think of any other differences from anvil and cosmic
11:23 ifreund: cursed: https://codeberg.org/river/river/issues/1190#issuecomment-2938244
11:25 YaLTeR[m]: yep saw that, got bug reports about that
11:25 YaLTeR[m]: didn't they fix it
11:26 ifreund: maybe I and the reported are both using an outdated /shrug
11:32 vyivel: ifreund: i think there's an old wlroots issue about this which turned out to be qt bug
11:33 vyivel: sounds very similar at least
11:34 ifreund: chromium doesn't use qt though does it?
11:34 vyivel: that i don't remember
11:35 psykose: it can use gtk or qt for somethin
11:35 psykose: some integration stuff
11:35 psykose: not sure if it affects any of the actual rendering
11:44 YaLTeR[m]: chromium also has a fun issue where they spawn xdg and input method popups on some Activated window and not on the actually focused window
11:44 YaLTeR[m]: or rather not on the one that triggered the event
12:31 YaLTeR[m]: It wasn't wl_drm. Even when firefox is using shm, I have the same issue... No clue what's going on
12:47 YaLTeR[m]: huh. found the cause. if I offscreen it (for the window opening anim) then it's broken. if I disable that anim (so it renders straight to screen right away) then it works. Well this is something for me to investigate in smithay I guess
12:51 YaLTeR[m]: well also just managed to break it by scrolling TWIG and then it crashed :p
12:53 YaLTeR[m]: also even if I have my offscreening anim, then opening new windows in that firefox instance works fine. Only the first window is broken
12:54 YaLTeR[m]: got one viewporter protocol error too
13:07 nickdiego[m]: <ifreund> "cursed: https://codeberg.org/..." <- please file a chromium bug. It sounds odd to me that specific popup bypasses xdg-popup, though it might be the case yes unfortunately
13:22 ifreund: nickdiego[m]: https://issues.chromium.org/issues/401453189
13:27 nickdiego[m]: thanks
13:29 mahkoh: Firefox does some wild stuff with sub-surfaces. For the url bar, they create a sub-surface and position it at ~130x20. Then they create a very large buffer (compared to the size of the ucrl bar) and attach it to that sub-surface. But then they create a viewport such that, logically, the buffer is position at the top-left of the firefox window.
13:29 mahkoh: They also create a new wl_buffer for each commit.
14:46 wlb: weston Issue #997 closed \o/ (Weston main fails to build due to LED_COMPOSE https://gitlab.freedesktop.org/wayland/weston/-/issues/997)
14:47 wlb: weston Merge request !1698 merged \o/ (libweston: Rename LED_* to WESTON_LED* https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1698)
14:47 wlb: weston/main: Marius Vlad * libweston: Rename LED_* to WESTON_LED* https://gitlab.freedesktop.org/wayland/weston/commit/1a2c25116bd3 include/libweston/libweston.h libweston/input.c libweston/libinput-device.c
14:47 wlb: weston/main: Marius Vlad * meson.build: Bump libweston to 15 https://gitlab.freedesktop.org/wayland/weston/commit/46f25304c1d5 meson.build westinyplus/meson.build
16:16 YaLTeR[m]: [@cmeissl:matrix.org](https://matrix.to/#/@cmeissl:matrix.org) seems to have tracked down the niri Firefox compositor issue. That seems to happen is Firefox requests a frame callback for one of its surfaces without attaching a buffer. When niri offscreens the window for the opening animation, it sends frame callbacks to all of its surfaces regardless of whether they had a buffer or were visible. Then Firefox seems to get confused by that
16:16 YaLTeR[m]: frame callback on a surface without a buffer
16:16 YaLTeR[m]: [@_oftc_MrCooper:matrix.org](https://matrix.to/#/@_oftc_MrCooper:matrix.org) [@robert.mader:gnome.org](https://matrix.to/#/@robert.mader:gnome.org) ^
16:20 emersion: these mentions are very badly formatted on the irc side fwiw
16:21 YaLTeR[m]: i can only blame element x
16:21 YaLTeR[m]: I think I put a space between but not sure
16:47 MrCooper: the nicknames themselves are quite non-IRC-y
16:48 MrCooper: offhand not sure why Firefox would get confused by that, such "empty" frame events is how it handles "vsync"
18:32 YaLTeR[m]: MrCooper: there's no buffer at all yet on that surface. So it's a bit more extreme than just not attaching a new buffer