07:47JoshuaAshton_: swick[m]: Pushing 'compositor decides policy' is not 'gamescope hacks'
07:51JoshuaAshton_: If you think swapchain feedback (ie. optional metadata from a client) to make certain policy decisions re. frame limiting, tearing, based on user preference elsewhere is a hack, then I really don't know what to tell you lol.
07:56JoshuaAshton_: Same with the HDR metadata thing, like, *everything* is broken there. A friend of mine who does stuff in the color/hdr space today pointed out to me that Mad Max reports P3 in the mastering primaries yet never exceeds 709. You just can't reliably use it for gamut mapping.
07:57JoshuaAshton_: "In theory", everything would be perfect and "in theory" clients would not be broken, but unfortunately we live in the real world, and you are making a protocol and implementation for the real world, not your hypothetical perfect world where all metadata and clients are perfect.
07:58JoshuaAshton_: Compositor deciding policy is the only real way to deal with a lot of that.
07:58JoshuaAshton_: And this is what I have been preaching for years, and we have been doing ourselves for years
07:59JoshuaAshton_: --
08:33JoshuaAshton_: Also the reality is that we don't control every client either -- they can come from eg. a Flatpak or whatever. We don't control the driver stack, layers or anything there at all.
10:18kennylevinsen: To be fair, I feel like most cases of compositor policy start out with a client describing content accurately, and the compositor then deciding what to do with it, if anything
10:19kennylevinsen: Also considering what the client does control to be wrong is a new angle
10:20kennylevinsen: And in case of poorly mastered videos, I do feel like the video player might be unique positioned to detect and adapt moreso than the compositor
10:35swick[m]: I'll just wait for pq or JEEB or anyone else with a basic understanding to point out why your mad max example is so funny
10:36swick[m]: if I say it you won't listen anyway
10:36swick[m]: even if the smpte says something about the thing they specified you don't listen
10:37swick[m]: so trying to discuss this with you seems utterly pointless to me
10:41swick[m]: also kennylevinsen is absolutely right. in the compositor you only have a surface and that's the entire context. in a video player you have the entire video container, so a lot more context that allows you to implement more and better policy.
10:42swick[m]: handle bogus data as early as possible is a general rule and this again explains why this rule exists
10:44swick[m]: and letting clients tear when they want fifo or mailbox is a spec violation and results in different timings than the client expects, potentially screwing up presentation. so it is a hack. tearing or not tearing can only be a policy when it can't screw up conforming clients and that's only possible when they specify that they can deal with tearing, i.e. if they chose fifo relaxed or immediate
10:55JEEB: the mad max example isn't technically incorrect, since MDCV is as far as I can understand just a hint that everything going further than the "mastering display" was clipped; so if the display utilized a P3 gamut, that was it. a better example of completely bonkers metadata is that Sony camping on the beach HDR sample which advertised fabulously low content light level values.
10:56JEEB: also it seems like some 3rd party noticed that MDCV was not really perfect so there's now Content Colour Volume, but I've never seen it IRL :)
10:59JEEB: and yea, the MDCV metadata is generally not utilized as the only thing to map content. since it just limits your focused range. means that if the mastering person did not see that ~9000 nit glare on a 3000-4000 nit screen, then you do not have to attempt to care too much about mapping those details.
11:10JoshuaAshton_: > or anyone else with a basic understanding
11:11JoshuaAshton_: fr dude?
11:12kennylevinsen: Yeah, friendly reminder for both sides that we're on the same team and should discuss this in a polite and friendly manner
11:12kennylevinsen: both/all
11:28JoshuaAshton_: JEEB: Yep, this is what I have been trying to get through for a while that what you really want is the content colour volume for gamut mapping *if* you want to do it. We tried using MDCV, had that hooked up in Gamescope for a while, and it just doesn't work out at all.
11:32JEEB: yet what you pass onto displays currently is CLL/MDCV. so that being in the interfaces where you are passing information on your surfaces to a compositor.
11:32JEEB: makes sense
11:33JoshuaAshton_: So far we have not seen any displays that actually use MDCV
11:33JEEB: yea I have no idea how *utilized* it is. it's just the two things that always are seemingly fed by the wire
11:34JoshuaAshton_: I've only seen displays that use maxCLL and maxMDL (the latter, pretty erroneously)
11:34JoshuaAshton_: I have a test that sets parts of the infoframe to random values and that's all I've seen affected in response
11:35JoshuaAshton_: I'd definitely be interested to know of any displays that use other parts though, so if you know if any please hmu with the deets
11:37JEEB: mad max fury road gets quite lulzy if the display only reads maxCLL, since maxCLL is at around ~9918 nits I think due to that one glare in a specific scene. you at least get some leeway if you then limit the active area by the MDCV max luminance of 4000 nits.
11:38JEEB: but I think the long story short is that gamut/tone mapping is "fun", you can just look at how many iterations of it mpv/libplacebo did.
11:45swick[m]: JoshuaAshton_: if you want to show that the metadata is often bogus and you cite an example of the metadata being correct, what am I supposed to make of it?
11:46swick[m]: Not to mention that you keep repeating yourself because you think we don't understand things, but we do understand what you're saying, and we keep telling you that we understand. This is patronizing as hell.
11:47JoshuaAshton_: swick[m]: Because it's not right for what you and pq were proposing it to be used for? ("Compositors should use the target color volume to improve gamut") Like yes, it's technically valid metadata, but not useful, and doing gamut mapping based on that information will give a bad result.
11:48swick[m]: And then you keep repeating that the metadata is sometimes bogus and we acknowledged that since the beginning
11:48swick[m]: You keep repeating this
11:48swick[m]: Like what so you want to achieve here
11:48swick[m]: If you want to convince people give them new information
11:49swick[m]: But you keep repeating your same stick again and again
11:49JEEB: I don't read that quote as gospel to utilize only MDCV. P3 < BT.2020 as a gamut, and it limits your tone mapping scope with mad max (from 9918 nits to 4000 nits) so it has done its job.
11:49swick[m]: It didn't convince us the first time and it won't if you repeat it 10 times
11:50JEEB: of course it took me years to understand what the definers wanted MDCV to be utilized for during presentation. I was for a very long time utterly confused as to why there should be information about some random display in your media.
11:51swick[m]: You just get more and more impolite and demeaning
11:53swick[m]: It's either your way or everyone else is a horrible person, toxic, blocking progress and just plain stupid
11:55kennylevinsen: from where I stand it looks like two people both throwing rocks and blaming the other side - rather than continue the ad hominem, take a step back and take some deep breaths
11:57kennylevinsen: JoshuaAshton_: that also applies to you - starting it with "if you think... Then I really don't know what to tell you lol" is far from a polite way to start a discussion
12:07swick[m]: It's the 3rd time the exact same conversation now and no new information. We were not convinced and now he got angry because he didn't get his way. This is a repeating pattern. And in the end he tries to make me angry as all to play the victim.
12:09JoshuaAshton_: swick[m]: What are you talking about? All you have done is come here and said that I am just proposing hacks and don't have a basic understanding of anything. I've attempted to have a discussion with you about this, but you're now just more interested in complaining that I exist it seems.
12:14JoshuaAshton_: > We were not convinced and now he got angry because he didn't get his way.
12:15JoshuaAshton_: Can you not talk to me like a 5 year old please? :/ I'm not mad about anything, you're just going on a weird temper tantrum because I wanted to discuss that MDCV alone cannot reliable be used with gamut mapping with you :(
12:16JoshuaAshton_: It's clear that us talking about anything is just not going to work out
12:16kennylevinsen: JoshuaAshton_: from where I stand your start of this discussion did seem somewhat hostile, intentional or not - even if the escalation wasn't yours
12:38JoshuaAshton_: Sure, I can see how it could be read like that. It was definitely not my intention to come across as hostile with that, more just a /shrug idk how I can convince you on that. From my perspective the compositor is always the be-all and end-all arbiter, and I thought that was also the perspective of the rest of Wayland given things are much more descriptive rather than prescriptive in the api. (window positions, etc)
12:39JoshuaAshton_: *rest of the Wayland community
15:32swick[m]: How the descriptive vs descriptive argument relates to where you handle bogus data is something that you have to explain
15:32swick[m]: The data is the same, it describes the content
15:36swick[m]: Everyone agrees that handling bogus data as early as possible is the right thing to do. Everyone except you. Maybe, just maybe, you might want to consider that it's possible that other people might have a point.
17:43karolherbst: Sometimes it's better to have a break on a discussion and enjoy the weekend, so I kinda advise everybody here to do the same.