Re: How to map depth=30 fb to XBGR instead of XRGB?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 09, 2018 at 05:19:06PM +0200, Ville Syrjälä wrote:
> On Sun, Dec 31, 2017 at 01:03:39AM -0500, Ilia Mirkin wrote:
> > 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?
> 
> I don't think there's any sane way to allow the driver to remap these.
> How would generic userspace know which component order the driver
> actually picked?

By using addfb2. That seems the only option, and it'll likely result in a
bunch more "nouveau is crap" forum posts when people try to use 30bpp
with generic userspace on nouveau. Best we can do is drop a info_once
message into dmesg that userspace should consider using addfb2.

Ilia said he's ok with more "nouveau is crap", and that's about the only
option we have any.

Wrt implementation: A flag in drm_mode_config that overwrites the choice
in drm_addfb_ioctl (so that we can avoid going through all the drivers),
plus the same hack in the fbdev probe callback in nouveau is probably the
least invasive. Core one with a very huge comment ofc.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux