ChanServ changed the topic of #wayland to: https://wayland.freedesktop.org | Discussion about the Wayland protocol and its implementations, plus libinput
bwbuhse has quit [Read error: Connection reset by peer]
glennk has quit [Ping timeout: 480 seconds]
CodeSpelunker2 has joined #wayland
CodeSpelunker2 has quit []
CodeSpelunker has quit [Ping timeout: 480 seconds]
iomari891 has quit [Ping timeout: 480 seconds]
iomari891 has joined #wayland
iomari891 has quit [Ping timeout: 480 seconds]
rgallaispou has joined #wayland
bwbuhse has joined #wayland
slattann has joined #wayland
CodeSpelunker has joined #wayland
CodeSpelunker has quit [Quit: CodeSpelunker]
Brainium has quit [Quit: Konversation terminated!]
Moprius has quit [Remote host closed the connection]
rgallaispou1 has joined #wayland
rgallaispou has quit [Read error: Connection reset by peer]
garnacho has quit [Ping timeout: 480 seconds]
bwbuhse has quit [Ping timeout: 480 seconds]
bwbuhse has joined #wayland
nerdopolis has quit [Ping timeout: 480 seconds]
glennk has joined #wayland
narodnik has quit [Ping timeout: 480 seconds]
slattann has quit [Ping timeout: 480 seconds]
kts has joined #wayland
sima has joined #wayland
slattann has joined #wayland
<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?
<daniels>
yes, media uses it extensively, web view embeds use it, etc
<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
wytrzeszcz__ has joined #wayland
<vyivel>
YaLTeR[m]: foot uses a few for csd and other ui stuff iirc
<vyivel>
is there something in particular you want to test?
<llyyr>
mpv's dmabuf-wayland vo uses a subsurface for the video and a subsurface on top for subtitles/osd
<YaLTeR[m]>
CSD isn't overlapping, I was looking more for something obviously overlapping
<YaLTeR[m]>
llyyr: Hm I'll check
<llyyr>
latest release has a bug with subsurface commit ordering, so pull from master
<vyivel>
foot's csd buttons are technically overlapping with the titlebar itself
<YaLTeR[m]>
They're separate subsurfaces?
<ifreund>
YaLTeR[m]: foot also uses overlapping subsurfaces for its scrollback search
<ifreund>
and for url indicators
<YaLTeR[m]>
I should take a look
<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
<MrCooper>
(BTW, looks like Firefox will support HDR video playback on Wayland before Windows :)
<YaLTeR[m]>
How do you enable the webrender subsurface compositor?
<YaLTeR[m]>
Also what does it use subsurfaces for?
<psykose>
gfx.webrender.all=true or MOZ_WEBRENDER=1 i think
<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
<psykose>
or maybe it was specifically gfx.webrender.compositor
<MrCooper>
in a nutshell, it splits up the page into tiles and uses one sub-surface per tile
<MrCooper>
then e.g. scrolling just moves the tiles
<MrCooper>
YaLTeR[m]: FWIW, weston-subsurfaces was also surprisingly useful for testing sub-surfaces functionality
<YaLTeR[m]>
i tried it on current nightly and got a bunch of fully black rects
<MrCooper>
on niri?
<YaLTeR[m]>
ye
<YaLTeR[m]>
let's try something else
<MrCooper>
then either you've got work to do, or the Firefox code might have bit-rotted
mvlad has joined #wayland
<YaLTeR[m]>
i think it worked on sway
<YaLTeR[m]>
not sure how to make sure
<MrCooper>
yeah, issues can be hard to notice
<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
<YaLTeR[m]>
i think it also works on anvil? okay well this is interesting, idk what i do differently from anvil
<YaLTeR[m]>
anvil also outputs a lot of egl errors during this
<YaLTeR[m]>
weston-subsurfaces i know about yeah, it works fine. also wleird subsurface stacking thing
crissdell_ has joined #wayland
crissdell has quit [Ping timeout: 480 seconds]
<YaLTeR[m]>
also works fine on cosmic-comp, wtf lol
kts has quit [Ping timeout: 480 seconds]
<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
rgallaispou1 has quit [Read error: Connection reset by peer]
<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.
<robertmader[m]>
You don't run Niri with Vulkan, do you? Because in the past that backend used implicit modifiers.
<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
<YaLTeR[m]>
Can't really think of any other differences from anvil and cosmic
<YaLTeR[m]>
yep saw that, got bug reports about that
<YaLTeR[m]>
didn't they fix it
<ifreund>
maybe I and the reported are both using an outdated /shrug
<vyivel>
ifreund: i think there's an old wlroots issue about this which turned out to be qt bug
<vyivel>
sounds very similar at least
<ifreund>
chromium doesn't use qt though does it?
<vyivel>
that i don't remember
<psykose>
it can use gtk or qt for somethin
<psykose>
some integration stuff
<psykose>
not sure if it affects any of the actual rendering
<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
<YaLTeR[m]>
or rather not on the one that triggered the event
soreau has quit [Ping timeout: 480 seconds]
narodnik2 has quit []
<YaLTeR[m]>
It wasn't wl_drm. Even when firefox is using shm, I have the same issue... No clue what's going on
bbhtt has quit [Ping timeout: 480 seconds]
<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
Moprius has joined #wayland
<YaLTeR[m]>
well also just managed to break it by scrolling TWIG and then it crashed :p
<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
<YaLTeR[m]>
got one viewporter protocol error too
<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
<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.
<mahkoh>
They also create a new wl_buffer for each commit.
<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
<YaLTeR[m]>
frame callback on a surface without a buffer