06:45YaLTeR[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:55daniels: yes, media uses it extensively, web view embeds use it, etc
07:52wlb: weston Issue #1002 opened by simple (iamdrq) keyboard focus lose https://gitlab.freedesktop.org/wayland/weston/-/issues/1002
08:01YaLTeR[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:04vyivel: YaLTeR[m]: foot uses a few for csd and other ui stuff iirc
08:04vyivel: is there something in particular you want to test?
08:07llyyr: mpv's dmabuf-wayland vo uses a subsurface for the video and a subsurface on top for subtitles/osd
08:08YaLTeR[m]: CSD isn't overlapping, I was looking more for something obviously overlapping
08:08YaLTeR[m]: llyyr: Hm I'll check
08:09llyyr: latest release has a bug with subsurface commit ordering, so pull from master
08:10vyivel: foot's csd buttons are technically overlapping with the titlebar itself
08:11YaLTeR[m]: They're separate subsurfaces?
08:12ifreund: YaLTeR[m]: foot also uses overlapping subsurfaces for its scrollback search
08:12ifreund: and for url indicators
08:16YaLTeR[m]: I should take a look
08:31MrCooper: 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:31MrCooper: (BTW, looks like Firefox will support HDR video playback on Wayland before Windows :)
08:34YaLTeR[m]: How do you enable the webrender subsurface compositor?
08:34YaLTeR[m]: Also what does it use subsurfaces for?
08:34psykose: gfx.webrender.all=true or MOZ_WEBRENDER=1 i think
08:35psykose: 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:37psykose: or maybe it was specifically gfx.webrender.compositor
08:37MrCooper: YaLTeR[m]: gfx.webrender.compositor.force-enabled
08:38MrCooper: in a nutshell, it splits up the page into tiles and uses one sub-surface per tile
08:38MrCooper: then e.g. scrolling just moves the tiles
08:39MrCooper: YaLTeR[m]: FWIW, weston-subsurfaces was also surprisingly useful for testing sub-surfaces functionality
08:39YaLTeR[m]: i tried it on current nightly and got a bunch of fully black rects
08:40MrCooper: on niri?
08:40YaLTeR[m]: ye
08:40YaLTeR[m]: let's try something else
08:40MrCooper: then either you've got work to do, or the Firefox code might have bit-rotted
08:40YaLTeR[m]: i think it worked on sway
08:41YaLTeR[m]: not sure how to make sure
08:41MrCooper: yeah, issues can be hard to notice
08:42MrCooper: 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:45YaLTeR[m]: i think it also works on anvil? okay well this is interesting, idk what i do differently from anvil
08:47YaLTeR[m]: anvil also outputs a lot of egl errors during this
08:47YaLTeR[m]: weston-subsurfaces i know about yeah, it works fine. also wleird subsurface stacking thing
08:53YaLTeR[m]: also works fine on cosmic-comp, wtf lol
09:17YaLTeR[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:19MrCooper: don't remember offhand; calling robertmader[m] (who implemented this)
11:16robertmader[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:16robertmader[m]: You don't run Niri with Vulkan, do you? Because in the past that backend used implicit modifiers.
11:22YaLTeR[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:23YaLTeR[m]: Can't really think of any other differences from anvil and cosmic
11:23ifreund: cursed: https://codeberg.org/river/river/issues/1190#issuecomment-2938244
11:25YaLTeR[m]: yep saw that, got bug reports about that
11:25YaLTeR[m]: didn't they fix it
11:26ifreund: maybe I and the reported are both using an outdated /shrug
11:32vyivel: ifreund: i think there's an old wlroots issue about this which turned out to be qt bug
11:33vyivel: sounds very similar at least
11:34ifreund: chromium doesn't use qt though does it?
11:34vyivel: that i don't remember
11:35psykose: it can use gtk or qt for somethin
11:35psykose: some integration stuff
11:35psykose: not sure if it affects any of the actual rendering
11:44YaLTeR[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:44YaLTeR[m]: or rather not on the one that triggered the event
12:31YaLTeR[m]: It wasn't wl_drm. Even when firefox is using shm, I have the same issue... No clue what's going on
12:47YaLTeR[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:51YaLTeR[m]: well also just managed to break it by scrolling TWIG and then it crashed :p
12:53YaLTeR[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:54YaLTeR[m]: got one viewporter protocol error too
13:07nickdiego[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:22ifreund: nickdiego[m]: https://issues.chromium.org/issues/401453189
13:27nickdiego[m]: thanks
13:29mahkoh: 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:29mahkoh: They also create a new wl_buffer for each commit.
14:46wlb: weston Issue #997 closed \o/ (Weston main fails to build due to LED_COMPOSE https://gitlab.freedesktop.org/wayland/weston/-/issues/997)
14:47wlb: weston Merge request !1698 merged \o/ (libweston: Rename LED_* to WESTON_LED* https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1698)
14:47wlb: 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:47wlb: weston/main: Marius Vlad * meson.build: Bump libweston to 15 https://gitlab.freedesktop.org/wayland/weston/commit/46f25304c1d5 meson.build westinyplus/meson.build
16:16YaLTeR[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:16YaLTeR[m]: frame callback on a surface without a buffer
16:16YaLTeR[m]: [@_oftc_MrCooper:matrix.org](https://matrix.to/#/@_oftc_MrCooper:matrix.org) [@robert.mader:gnome.org](https://matrix.to/#/@robert.mader:gnome.org) ^
16:20emersion: these mentions are very badly formatted on the irc side fwiw
16:21YaLTeR[m]: i can only blame element x
16:21YaLTeR[m]: I think I put a space between but not sure
16:47MrCooper: the nicknames themselves are quite non-IRC-y
16:48MrCooper: offhand not sure why Firefox would get confused by that, such "empty" frame events is how it handles "vsync"
18:32YaLTeR[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