Compositor should automatically scale on non-square aspect ratio
I suspect that the way to make the aspect ratio video modes truly useful is to have the compositor automatically scale from the global coordinate system (square pixels by definition) to the output coordinate system (non-square pixels if video mode aspect ratio says so). Otherwise, client output will be stretched.
As a consequence, a client surface would maintain its original aspect ratio on the output as well. A square window would be square.
Clients could take advantage of the non-square pixel video mode through wp_viewport
protocol interface. If original video content has non-square pixels, it can still be sent to the compositor as is by programming wp_viewport
to scale it into square pixels in surface coordinates. When the compositor then scales that to the final output, it is possible to reach an identity transformation: showing the content pixels 1:1 to output pixels.
Since one probably does not want to depend on luck to have that happen:
- If the compositor is changing video mode according to source material, the compositor might be able to ensure an identity transformation end-to-end (e.g. in a TV use case).
- Otherwise, maybe
xdg_output
interface exposes enough information for a client to see that it might reach an identity transformation?