> And that abstraction doesn't have stuff like vblank IRQs, or traditional cursor planes, and is quite opinionated about pixel formats and colorspaces
What does it mean not to have a vblank IRQ? I know that on AMD you program some registers and the firmware then does a page flip when it has to but you still know when all of this happens.
How opinionated is it on colorspaces? We want to change how KMS works and implementing policy in firmware sounds horrible
@swick We know when page flips happen, we just can't "wait for vblank" *without* an associated page flip which X (only) wants.
In principle we could emulate that, but we tried and it was a mess and made things worse.
Re colorspaces, they are intertwined with pixel formats. Only some combinations work. For example, we can only get the raw native full gamut RGB with 10-bit pixel formats, 8-bit pixel formats are stuck at sRGB. And then some other options for 10-bit modes are using a "wide RGB" convention where the components go from -0.75 to 1.25 with 0 at 384 and 1 at 895, where the primaries are for some narrower colorspace (sRGB or BT.2020 or whatever) but then you can go out of gamut with the extra headroom to encode more colors. The same colorspace options with 8-bit pixel formats don't have the extra headroom.
And then only some of these options work for some hardware planes.
@swick We know when page flips happen, we just can't "wait for vblank" *without* an associated page flip which X (only) wants.
In principle we could emulate that, but we tried and it was a mess and made things worse.
Re colorspaces, they are intertwined with pixel formats. Only some combinations work. For example, we can only get the raw native full gamut RGB with 10-bit pixel formats, 8-bit pixel formats are stuck at sRGB. And then some other options for 10-bit modes are using a "wide RGB" convention...