backends/native: Try 10 bpc formats
If the EGL rendering APIs and KMS CRTCs support them.
10 bpc formats may allow for more accurate colour reproduction / less colour banding, subject to various limitations in the GPU driver/HW & monitor (connection).
This is similar to !1756 (closed), there are some differences though:
- This MR uses explicit lists of formats ordered by priority, instead of just using the first format advertised by EGL. This can be extended for floating-point formats for HDR in the future.
- This MR tries 10 bpc formats for secondary GPU contexts as well, not only for the primary one.
- This MR uses the
EGL_KHR_no_config_context
extension to allow using an optimized path for secondary GPU scanout even if the secondary GPU context can't use a 10 bpc format.
I tested multiple paths for secondary GPU scanout. Not sure I covered all possible cases though.
Edited by Michel Dänzer