NVIDIA hardware, prior to Kepler, only supports XBGR2101010. However drmAddFB with depth = 30 will use the mapping in drm_mode_legacy_fb_format and pick the XRGB version of the format.
One solution is to tell userspace "stop using addfb, move to addfb2". However I'm hoping that there's some sort of semi-clean way of dealing with such driver eccentricities without resorting to changing userspace.
Can the ioctl be handled in the driver perhaps? Or would it be reasonable to add a callback in drm_driver?
Suggestions welcome.
-ilia