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
ppascher has joined #wayland
julio7359 has quit [Remote host closed the connection]
Quetz4l has joined #wayland
Quetz4l has left #wayland [#wayland]
ukiran has joined #wayland
off^ has joined #wayland
columbarius has joined #wayland
co1umbarius has quit [Ping timeout: 480 seconds]
<yshui`>
What happens to frame callbacks when a surface is destroyed? I assume I can just send delete_ids for them?
___nick___ has quit []
___nick___ has joined #wayland
___nick___ has quit []
jadahl has quit [Remote host closed the connection]
___nick___ has joined #wayland
ngortheone has quit [Quit: ngortheone]
Prf_Jakob has quit [Remote host closed the connection]
ukiran has quit [Ping timeout: 480 seconds]
Prf_Jakob has joined #wayland
jadahl has joined #wayland
fmuellner has quit []
fmuellner has joined #wayland
fmuellner has quit [Remote host closed the connection]
fmuellner has joined #wayland
fmuellner has quit [Remote host closed the connection]
fmuellner has joined #wayland
fmuellner has quit [Remote host closed the connection]
fmuellner has joined #wayland
ppascher has quit [charon.oftc.net helix.oftc.net]
ppascher has joined #wayland
Net147 has quit [Remote host closed the connection]
Net147 has joined #wayland
cool110 has quit [Remote host closed the connection]
fmuellner has quit [Ping timeout: 480 seconds]
cool110 has joined #wayland
naveenk2 has quit [Ping timeout: 480 seconds]
gwizon has quit [Quit: Lost terminal]
julio7359 has joined #wayland
nerdopolis has quit [Ping timeout: 480 seconds]
molinari has quit [Ping timeout: 480 seconds]
tzimmermann has joined #wayland
___nick___ has quit []
___nick___ has joined #wayland
sozuba has joined #wayland
kts has joined #wayland
Company has quit [Quit: Leaving]
julio7359 has quit [Ping timeout: 480 seconds]
manuel1985 has joined #wayland
rv1sr has joined #wayland
manuel1985 has quit [Ping timeout: 480 seconds]
<emersion>
you can, but your listener might still be invoked with a NULL wl_callback arg
<emersion>
in case the compositor sent the wl_callback.done event before receiving the wl_surface.destroy request
hardening has joined #wayland
<yshui`>
So what is the expected behavior of the compositor in this case?
neonking_ has quit [Remote host closed the connection]
<zzag>
the compositor just destroys the callback resources
sozuba has quit [Ping timeout: 480 seconds]
<emersion>
what I'm describing is a race you need to account for in you client
<yshui`>
Doesn't mention wl_surface.frame guess I will add a comment 🤔
<yshui`>
emersion: I am not writing a client 😆
kts has joined #wayland
dcz_ has joined #wayland
<MrCooper>
yshui`: don't see any significant difference between frame events and presentation feedback for that discussion
cool110 has quit [Remote host closed the connection]
cool110 has joined #wayland
naveenk2 has joined #wayland
<yshui`>
added a comment
<yshui`>
btw, it wouldn't be unreasonable to impose a limit of how many pending frame callbacks a surface can have, right?
<emersion>
it wouldn't be unreasonable to set a limit of how many objects the client can create in general
<emersion>
on*
<emersion>
with per-object-type buckets or something
<ifreund>
it's currently trival to DoS any wayland compositor I know of by just creating a ton of objects :/
<yshui`>
it's actually a good idea to have limits then. what's the appropriate error for hitting the limit, no_memory?
Szadek has quit [Ping timeout: 480 seconds]
Szadek has joined #wayland
naveenk2 has quit [Ping timeout: 480 seconds]
<kennylevinsen>
Would probably be an acceptable error for now. Not sure if one should make a new one specifically for object limits
<pq>
swick[m], why would you be interested in true content color volume if we have the mastering display content color volume? Anything outside of the mastering volume should be brought inside the mastering volume, regardless of where we display it. How to do that is my question.
<pq>
haasn, how do you "just clip" color gamut in the same way as the mastering display did, so that we get the same hue shifts etc.?
<pq>
yshui`, I'd use no_memory for now indeed. If you use wl_resource_post_error() to send it, you can customize the error message.
<pq>
yshui`, I think it is very fitting to the semantics of the frame callback for a compositor to just destroy that wl_resource when the wl_surface is destroyed. There will never be a good time to draw for that wl_surface again.
<pq>
I'd even say it's a bug to send frame callbacks after the wl_surface has been destroyed. It makes no sense.
<pq>
but we never wrote that down I think, so that's just another reason why clients should destroy their proxies instead of letting them uselessly linger.
Net147 has quit [Quit: Quit]
Net147 has joined #wayland
Szadek has quit [Quit: WeeChat 3.8]
Szadek has joined #wayland
MrCooper has quit [Quit: Leaving]
MrCooper has joined #wayland
ppascher has quit [Ping timeout: 480 seconds]
fmuellner has joined #wayland
naveenk2 has joined #wayland
sozuba_tmp has joined #wayland
sozuba has quit [Ping timeout: 480 seconds]
fmuellner_ has joined #wayland
sozuba has joined #wayland
sozuba_tmp has quit [Ping timeout: 480 seconds]
fmuellner has quit [Ping timeout: 480 seconds]
<pq>
SardemFF7, I just landed weston!1143 and the bot is silent.
naveenk2 has quit [Ping timeout: 480 seconds]
naveenk2 has joined #wayland
nerdopolis has joined #wayland
sozuba_tmp has joined #wayland
sozuba has quit [Ping timeout: 480 seconds]
Szadek has quit [Ping timeout: 480 seconds]
naveenk2 has quit [Ping timeout: 480 seconds]
<yshui`>
pq: I agree with that, but from my understanding they had that bug in mpv, because they chose to destroy the present feedback in the callback
<ManMower>
it didn't want to scare anyone
Szadek has joined #wayland
<yshui`>
So maybe being explicit that events aren’t guaranteed would clearly indicate that is what clients should do?
<pq>
yshui`, one should destroy it in both places.
jmdaemon has quit [Ping timeout: 480 seconds]
<pq>
events are guaranteed as long as the client doesn't destroy or unmap the surface
TenFiger has left #wayland [#wayland]
adia4 has quit []
adia4 has joined #wayland
<haasn>
pq: in practice, you don’t
<haasn>
Just clip to the output display
<haasn>
In real content it’s basically unheard of for pixels to be outside the mastering display volume
<haasn>
As for how to clip, just do it to the rgb cube if you don’t have the luxury of pregenerating a lut
<haasn>
Or use an ICC profile
<pq>
haasn, ok, so you say it's a bug in the content if it extends outside of the mastering display volume?
<haasn>
Yeah pretty much, and if so, I would not try and recreate the mastering display’s clipping behavior
<pq>
cool
<haasn>
But display it faithfully (if your output device can)
<haasn>
(If not, you have to clip anyway)
<pq>
that would need taking care and testing, though
<pq>
I'd prefer to just declare it a source bug with undefined results
<SardemFF7>
pq: I see no request to the /webhook endpoint, however I see a bunch of SSL handshake failures
<SardemFF7>
though the IP is not the gitlab.freedesktop.org one, it could be that
<SardemFF7>
I hardened my TLS config a bit, but that’d be surprising that fd.o would have no available algo :-/
naveenk2 has joined #wayland
kts has quit [Quit: Leaving]
pochu has quit []
fmuellner has joined #wayland
DodoGTA has joined #wayland
kts has joined #wayland
fmuellner_ has quit [Ping timeout: 480 seconds]
naveenk2 has quit [Ping timeout: 480 seconds]
naveenk2 has joined #wayland
ukiran has joined #wayland
alatiera has joined #wayland
<ukiran>
pq, i had gone through the color representation protocol. As per my understanding, it is used to convert the YUV data into RGB based on the formulae derived from the Matrix Coefficients and VideoFullRangeFlag
<alatiera>
is there a weston related channel or can I ask things here?
<qyliss>
this is the right channel for weston aiui
<alatiera>
this is related to weston-launch's deprecation
<ukiran>
as part of the protocol, client is requesting the Coefficients and the server has to respond with the codepoints supported
<ManMower>
alatiera: this is the appropriate channel
<alatiera>
so previously I had a bash script that would do openvt -- /usr/bin/weston-launch && /foobar/runappbinary and the app would pickup the the env somehow and launch in the proper tty and env
<ukiran>
in this case, does client need to fetch the formulae based on the codepoint and other flags?
<ManMower>
alatiera: hmm, can you "just install seatd" and make the problem go away? or is that a deal breaker
<alatiera>
with `seatd-launch -- weston --backend=drm-backend.so` I got weston launch, but it seems the behavior is different from weston-launch and I can't launch the app
<ManMower>
oh interesting
<emersion>
that's not related to seatd
<emersion>
it's related to the WAYLAND_DISPLAY env var
<alatiera>
I am guessing wesont-launch was setting some env var or so
<ManMower>
can you just put /foobar/runappbinary in an [autolaunch] in your weston.ini?
<alatiera>
oh interesting, didn't think to try that
<alatiera>
or rather didn't knew it existed tbh
<alatiera>
(also this is a docker container, we can't have nice things and systemd :/)
<alatiera>
(not my choice)
<ManMower>
no judgment here :)
<ukiran>
pq, i see that the table-4 in H.273 document talks about the co-efficients values and the corresponding functions to be called
<alatiera>
ManMower seems to "run" and prints logs though I don't see the window spawning for some reason
<ManMower>
alatiera: if you launch something simple like weston-terminal or weston-simple-egl via [autolaunch] does that work?
<ManMower>
I don't know what your app does - but both of the ones I mentioned should crash/exit promptly if they can't connect to a compositor.
<pq>
ukiran, it is about YUV-to-RGB yes. The compositor advertises the code points it supports, and the client must pick one of them for each parameter. H.273 is the definition of what the values mean.
<alatiera>
yeap the terminal shows up
<alatiera>
might be some gtk issues
<pq>
ukiran, the client has some it wants to present, the content matches specific CICP code points, and if the compositor supports those code points, the client can pass the content to the compositor directly with those code points.
<pq>
*the client has some content it wants to present
<ukiran>
pq, the client should be intelligent enough to pick the codepoints based on its input data ?
<pq>
if the content doesn't match what the compositor supports, then the client must convert to something the compositor does support.
<ukiran>
so that when the code-point has been set from the client, compositor will pick the right formaulae for the conversion ?
<pq>
ukiran, based on its content sources metadata, yes. Or if it creates the content on the fly, the client knows anyway.
<pq>
yes
<pq>
ukiran, the point of all this is to avoid extra conversions on CPU or GPU, and maybe push the only necessary conversions all the way too the display controller.
<ukiran>
pq, it means, the client who implements this interface must aware of the code points.
<pq>
for displaying videos, this is the first half of decoding the pixels, and the second half is the color-management extension
<pq>
of course
<ukiran>
hmm..
<pq>
though it is possible that if you have video file, it already uses CICP code points in its metadata
<pq>
the client needs to be able to understand the video metadata and how it maps to CICP code points
<ukiran>
does this needs to be extracted through ffmpeg tool in the client application to read this CICP code points ?
<pq>
I have no idea, but yes ;-)
<pq>
you have to know what your content is, it cannot be guessed from raw pixels
<ukiran>
obviously yes
<JEEB>
if an application utilizes FFmpeg, in most cases the CICP values are extracted
<JEEB>
if they're not, then watches very much pelcome
<ukiran>
pq, you said that "Avoid the extra conversion on CPU or GPU and needs to be presented to display controller", meaning of the gamma/degamma conversion ?
<ukiran>
JEEB, great, i will extract the metadata and verify the CICP values
<ukiran>
pq, "for displaying videos, this is the first half of decoding the pixels, and the second half is the color-management extension", inorder to make the color-management extension to work, color-representation protocol is also necessary then, am i right ?
<pq>
ukiran, I mean any kind of pixel manipulation.
<ukiran>
pq, yeah..
<pq>
ukiran, color-management can work on its own, if you only have RGB pixels. If you have YUV, you need color-representation too.
<JEEB>
YCbr/YCoCg/ICtCp/ITP etc, which have a non-identity thing set as the matrix coefficients :)
<JEEB>
*YCbCr
<JEEB>
oh, and apparently there's a thing called YDzDx as well
<pq>
ukiran, the reason we can do anything without color-management is that a lot of assumptions are made in all of compositors, clients, and displays, and mistakes there with SDR content are often not that obvious to see, so it doesn't need to be exactly correct.
<pq>
the reason we can display any YUV without color-representation is pretty much the same: the error is not always that obvious, or video players convert to RGB.
<alatiera>
pq indeed, last time it was working was with weston 9
Company has joined #wayland
<pq>
but also, people have slowly accustomed to seeing the wrong thing, and think it's the right thing
<ukiran>
pq, now-a-days most of the video content is in yuv, do you think this CR protocol is must to perform the colorspace conversion ?
manuel1985 has quit [Ping timeout: 480 seconds]
<pq>
only if you do not want to do it in the client
<pq>
but if you do it in the client, it's probably costing more memory bandwidth, and it is impossible to use the display controller for it
<pq>
till tomorrow .o/
<ukiran>
pq, it is coming to my point. to do the conversion from YUV BT.601 to BT.709/sRGB/BT.2020 i can use this Color-Representation protocol
naveenk2 has quit [Ping timeout: 480 seconds]
<alatiera>
ManMower surprise surprise the app itself was bugged and wasn't spawning its window
<alatiera>
pq, ManMower thanks!
julio7359 has joined #wayland
ukiran has quit [Ping timeout: 480 seconds]
<alatiera>
is there a way to get seatd to deinitialize from the cli?
gwizon has joined #wayland
ngortheone has joined #wayland
vyivel has quit [Remote host closed the connection]
vyivel has joined #wayland
gwizon has quit [Ping timeout: 480 seconds]
jmdaemon has joined #wayland
sozuba_tmp has quit []
gwizon has joined #wayland
<kennylevinsen>
alatiera: what do you mean? If you use seatd-launch, then seatd will shut down when Weston terminates.
MajorBiscuit has joined #wayland
Major_Biscuit has quit [Ping timeout: 480 seconds]
<alatiera>
kennylevinsen if weston terminates on its own
<alatiera>
my issue was what happens when the supervisor just kills it with a hammer
<alatiera>
but I think I kinda manged to workaround that
MajorBiscuit has quit [Ping timeout: 482 seconds]
kts has quit [Quit: Leaving]
p0g0 has quit [Ping timeout: 480 seconds]
<emersion>
would be nice to plan for a new wayland release soonish
Lyude has quit [Read error: Connection reset by peer]
Lyude has joined #wayland
___nick___ has quit []
___nick___ has joined #wayland
ukiran has joined #wayland
junaid has quit [Ping timeout: 480 seconds]
<manuels>
Why exactly does Wayland not support hotkeys?
<manuels>
Iirc the argument was like it allows keyboard sniffing
<idkrn[m]>
Well only the application in focus can see keyboard inputs
<manuels>
But if I don't just grab but rather reserve and current focus app will not even receive the key?
<idkrn[m]>
There are portals and other things that allow for global keyboard shortcuts without exposing the input to every running process
<idkrn[m]>
manuels: Not sure I understand your question
<manuels>
Or force compositors to give a dialog. Like eg apples security mechanisms (disc access, cam, mic etc)
<manuels>
Idkrn nevermind the last proposal is safer and more "modern"
<manuels>
What are portals?
<idkrn[m]>
manuels: Look up xdg desktop portals
ukiran has quit [Ping timeout: 480 seconds]
<idkrn[m]>
manuels: They are vaguely similar to this
<idkrn[m]>
But I didn't know what the exact term for what the global shortcuts on Wayland uses
dcz_ has quit [Ping timeout: 480 seconds]
rv1sr has quit []
danvet has quit [Ping timeout: 480 seconds]
mvlad has quit [Remote host closed the connection]
molinari has joined #wayland
ukiran has joined #wayland
ukiran85 has joined #wayland
ukiran has quit [Ping timeout: 480 seconds]
Lyude has quit [Quit: Bouncer restarting]
ukiran85 has quit [Ping timeout: 480 seconds]
<manuels>
Looks like portals is dir sandbox es apps
<manuels>
*for
<manuels>
But I wouldn't care if it works
<manuels>
Is portals "production ready"?
rasterman has quit [Quit: Gettin' stinky!]
hardening has quit [Ping timeout: 480 seconds]
ftpd has joined #wayland
<ftpd>
Hey! Any simple way to synchronize 'primary' and 'clipboard' clipboards? On X I was using https://github.com/CristianHenzel/ClipIt, I'm looking for something similar for Wayland.
<ftpd>
(I don't care about gui, I don't care about history. I just want to have the same content in both clipboards, no matter where or how I add/copy it)
<ftpd>
`wl-paste -w wl-copy -p -n` to my wm's autostart. I didn't expect it to be so easy ;-)
ftpd has left #wayland [#wayland]
Lyude has joined #wayland
<daniels>
manuels: yes they’re used in most environments, whether or not they’re sandboxed