ChanServ changed the topic of #wayland to: https://wayland.freedesktop.org | Discussion about the Wayland protocol and its implementations, plus libinput | register your nick to speak
columbar1 has joined #wayland
columbarius has quit [Ping timeout: 480 seconds]
pi1234 has joined #wayland
pi123 has quit [Ping timeout: 480 seconds]
wb9688 has joined #wayland
hegstal has quit [Remote host closed the connection]
ppascher has quit [Ping timeout: 480 seconds]
leon-p has quit [Quit: leaving]
aquijoule__ has joined #wayland
aquijoule_ has quit [Ping timeout: 480 seconds]
agners has quit [Quit: WeeChat 3.2]
MrCooper has quit [Remote host closed the connection]
mbalmer_ has quit [Read error: Connection reset by peer]
mbalmer has joined #wayland
MrCooper has joined #wayland
NoGuest1_ has joined #wayland
NoGuest17 has quit [Ping timeout: 480 seconds]
boistordu has quit [Remote host closed the connection]
boistordu has joined #wayland
blue__penquin has joined #wayland
nerdopolis has quit [Ping timeout: 480 seconds]
cedric has joined #wayland
bluebugs has quit [Ping timeout: 480 seconds]
yoslin has joined #wayland
yoslin has quit []
yoslin has joined #wayland
dcz_ has joined #wayland
tzimmermann has joined #wayland
wlb has quit []
hardening has joined #wayland
<dottedmag>
damjan: A special set of layouts used exclusively within eponymous Tier 1 Internet network.
<dottedmag>
Just kidding.
jgrulich has joined #wayland
audgirka has joined #wayland
dcz_ has quit [Ping timeout: 480 seconds]
pnowack has joined #wayland
pnowack has quit [Remote host closed the connection]
pnowack has joined #wayland
rasterman has joined #wayland
rasterman has quit []
rasterman has joined #wayland
danvet has joined #wayland
hegstal has joined #wayland
<damjan>
:)
MrCooper has quit [Quit: Leaving]
MrCooper has joined #wayland
sozuba has joined #wayland
NoGuest1_ has quit [Remote host closed the connection]
<gitlab-bot>
wayland issue 512 in weston "How to run xwayland server" [Support Request, Closed]
aleasto has joined #wayland
leon-p has joined #wayland
<daniels>
level 3 is like a kind of second shift
<daniels>
e.g. on a UK layout you need to press Level3+4 to get €, or level3+` to get a broken pipe
<daniels>
you use AltGr to access level 3 (and Shift+AltGr to access level 4), so yeah, the two conflict
<daniels>
(I have a UK keyboard with AltGr as compose, but that's because I use the US XKB layout even though it's physically UK ...)
cmeissl has joined #wayland
<damjan>
daniels: so which one wins when they conflict?
<daniels>
everyone loses :P
sozuba_tmp has joined #wayland
<daniels>
there's no general rule or tie-breaking algorithm, it depends on both how the specific layouts/options were written, as well as the order they're processed in
sozuba has quit [Ping timeout: 480 seconds]
<damjan>
I'm starting to wonder why `include "level3(ralt_switch)"` is in the gb layout even
<daniels>
damjan: because it's a three-level layout, and AltGr is exactly that key to activate the third level
<MrCooper>
am I the only one who feels video players relying on constant presentation timings (even while the surface isn't visible anywhere) are fundamentally broken? (context: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4932 comments about mpv)
<gitlab-bot>
Mesa issue 4932 in mesa "wayland: Implement a timeout extension for eglSwapBuffers" [Egl, Wayland, Opened]
<emersion>
VRR anyone?
<MrCooper>
to put it differently, I don't get why they want to have a timeout for eglSwapBuffers which depends on the refresh rate, instead of setting swap interval 0 and handling timing themselves
Dudemanguy has joined #wayland
<emersion>
hi Dudemanguy!
<Dudemanguy>
hello
<emersion>
MrCooper was wondering about your comments on the surface suspension proto
<emersion>
<MrCooper> to put it differently, I don't get why they want to have a timeout for eglSwapBuffers which depends on the refresh rate, instead of setting swap interval 0 and handling timing themselves
<swick>
MrCooper: I think it's completeley sane as long as they use the presentation feedback thing to select the correct frames
<Dudemanguy>
well setting it to 0 is indeed what currently happens
<Dudemanguy>
but basically we need a timeout value somewhere, somehow
<Dudemanguy>
if mesa can just do it, it would be a lot cleaner
<MrCooper>
can't it just be a timeout in your event loop?
<Dudemanguy>
it gets trickier that way because the struct of mpv starts from the main loop and goes "downward" into every backend (including wayland as one of those)
<Dudemanguy>
I mean sure it's probably possible but it would be a massive rewrite and tricky
<Dudemanguy>
without breaking other things and so on
<zamundaaa>
MrCooper: that might result in tearing in the future, so that's not necessarily ideal
<MrCooper>
swap interval 0 will continue not tearing by default, if I have any say in that
<MrCooper>
so there would only be tearing if it was explicitly requested somehow
<zamundaaa>
It does so on X, doesn't it?
<zamundaaa>
At least if no compositor comes in between
<MrCooper>
this is #wayland
<zamundaaa>
I know. But egl is not constrained to Wayland
<MrCooper>
what I wrote is in the context of Wayland
<swick>
I'm still completely confused why a video player has a problem with eglSwapBuffers blocking
<MrCooper>
that makes two of us :)
<Dudemanguy>
if a user moves the window out of view, we can't block forever
<swick>
why not?
<zamundaaa>
MrCooper: In order to support legacy applications, aka old games, swap interval 0 has to at least optionally enable tearing, as those won't be updated. Same for Xwayland
<Dudemanguy>
a/v sync will go nuts
<swick>
why?
<Dudemanguy>
because when you return the window into view, it will still be stuck on the old frame and then you have to wait for the application to "catch up" resulting in a lot of lag and ugliness
<MrCooper>
zamundaaa: "optionally" being the key word :) if the user wants tearing, they can force it
<zamundaaa>
MrCooper: that's really far from ideal
<zamundaaa>
If the user has to create window rules on KDE, or manually toggle things in other compositors to work around apps that's not what I would call good
<MrCooper>
I'd say the same about tearing by default with Wayland
<zamundaaa>
The default is up to compositors and DEs. What I want is to allow apps to tear in fullscreen, and have it "just work". If video players use swap interval 0 to work around problems in Wayland that (unnecessarily) messes things up
<swick>
Dudemanguy: what do you mean with catch up? why can't you, when swapbuffers unblocks eventually, look at the time and produce the correct frame for that time?
<zamundaaa>
MrCooper: long term one would probably want an egl extension to control immediate vs mailbox. Doesn't solve the problem for legacy apps though
<swick>
zamundaaa: technically no app every requested tearing so you're not breaking them
<swick>
zamundaaa: and you can overwrite the behavior, so what's the problem?
<zamundaaa>
The problem is the default state
<zamundaaa>
And that the user then has to override things
<swick>
what default state? depending on your X setup either have no tearing at all, sometimes tearing, or almost always tearing
Seirdy0 has quit []
jgrulich has quit [Ping timeout: 480 seconds]
<Dudemanguy>
swick: when the window comes back into view, the old frame is still displayed, then when the player paints the next frame, there's a big visual "skip" since the video suddenly advances very far foward depending on how long you've been blocking
<Dudemanguy>
I mean it does work, but it looks ugly
Seirdy has joined #wayland
<zamundaaa>
swick: What I'm saying is that if you make the default that no tearing is allowed, to not break video players, then normal users will assume the can't have tearing on Wayland
<zamundaaa>
and if you make the default that swap interval 0 does allow tearing then you have tearing in video players
<zamundaaa>
even then though the user either has to use a shortcut or sth to switch between allowing games to tear and not allowing video players to tear
<zamundaaa>
swick: Even with an egl extension that would only work for new apps
<zamundaaa>
emersion: that won't work for old apps either but is generally not a bad idea I guess
<MrCooper>
zamundaaa: there should be no tearing by default for consistency with the status quo, not just "to not break video players" (or anything else in particular)
<MrCooper>
users who want tearing for games can surely figure out how to enable it
<zamundaaa>
MrCooper: that's not what users expect
<zamundaaa>
I think you underestimate how tech-illiterate some users can be :D
<MrCooper>
surely that's a small minority in the big picture
<zamundaaa>
The point is that even if we assume it's only very few people that can't figure it out, those that do figure it out still have to switch between tearing and no tearing themselves
<emersion>
/shrug
<emersion>
just have a per-app_id setting or something
<emersion>
even the user-friendly drivers on windows have this
<MrCooper>
it can be made configurable persistently and per application, e.g. via driconf
<zamundaaa>
We have window rules in KDE for disabling compositing on X but that's IMO just a dirty hack around the actual problem, and still leaves it up to the user to configure it
<emersion>
Dudemanguy, ideally compositors should request a new frame from the clients once a toplevel is unoccluded
<emersion>
before displaying it again
<emersion>
but iirc the issue was more annoying?
<emersion>
it was not just about having an old frame for a fraction of seond when switching between toplevels?
<zamundaaa>
MrCooper: as there's IIRC a netwm flag for bypassing compositing on X, and we can assume almost all legacy games run through X (or Wine) that + new egl extension for explicitly requesting immediate mode could be an option
<zamundaaa>
That would leave older native Wayland games without tearing by default but AFAIK there's not many of those
<Dudemanguy>
emersion: well mpv's main render loop isn't very smart so blocking forever will mess up other parts of the player but that in theory is fixable
<emersion>
is it in-theory-fixable-but-major-refactoring or in-theory-fixable-but-not-too-hard?
<Dudemanguy>
probably closer to the former sadly
<swick>
decades of getting away with horrible things on X
<Dudemanguy>
but even just from a cosmetic view of occluding/unoccluding, not having infinite blocks is better imo
<swick>
technically it's not infinite, it's indefinite
<swick>
a compositor which stops sending frame events has decided that it is okay to not receive a more up to date frame
<swick>
if a compositor doesn't want that, it will keep sending frame events, maybe just at a lower rate
<swick>
this is not something that the client should second guess
cedric is now known as bluebugs
bodiccea has quit [Remote host closed the connection]
bodiccea has joined #wayland
<daniels>
Dudemanguy: so did you try swap interval 0 + requesting your own frame events from the client?
<daniels>
Dudemanguy: that way you can implement your own timeout
<daniels>
(it's not just A/V sync either, if I left my media player playing but tabbed away from it, I still want to be able to hear it)
<daniels>
(also no, we're definitely not going to do tearing by default, but a Wayland extension which allows the equivalent of swap_control_tear would be nice for games for sure)
bodiccea has quit [Remote host closed the connection]
bodiccea has joined #wayland
floof58 has quit [Remote host closed the connection]
<Dudemanguy>
daniels: yes, that's what currently happens (which works fine)
<Dudemanguy>
it's just be nicer is egl could do this of course
floof58 has joined #wayland
<daniels>
'it'd be nicer if EGL could ...' is true for so many possible suffixes :P
<zamundaaa>
daniels: in this case the problem with tearing is that egl doesn't offer a choice between mailbox and immediate. swap_control_tear is offered but doesn't solve the problem in this case
<zamundaaa>
We need a new egl extension, not just Wayland. But that's the case for other platforms as well I guess (Windows for example tears in fullscreen and doesn't in windowed mode with swap interval 0 AFAIK)
doublesaiko has joined #wayland
dblsaiko has quit [Ping timeout: 480 seconds]
tzimmermann has quit [Quit: Leaving]
silver has quit [Ping timeout: 480 seconds]
pnowack has quit [Quit: pnowack]
dcz_ has quit [Ping timeout: 480 seconds]
spstarr has joined #wayland
sozuba has joined #wayland
CodeSpelunker has joined #wayland
rasterman has quit [Quit: Gettin' stinky!]
sozuba has quit [Quit: sozuba]
danvet has quit [Ping timeout: 480 seconds]
sozuba has joined #wayland
CodeSpelunker has quit [Ping timeout: 480 seconds]
Arnavion has quit [Quit: Arnavion]
Arnavion has joined #wayland
CME has quit []
CME has joined #wayland
hardening has quit [Ping timeout: 480 seconds]
st3r4g has quit [Quit: おやすみ]
sozuba has quit [Quit: sozuba]
hegstal has quit [Remote host closed the connection]
spstarr has quit [Remote host closed the connection]