On Wed, Nov 14, 2018 at 07:20:36PM +0200, Ville Syrjälä wrote: > On Tue, Nov 13, 2018 at 03:21:48PM -0800, Matt Roper wrote: ... > > > > +/* > > + * Put RGBA values into a standard 64-bit representation that can be used > > + * for ioctl parameters, inter-driver commmunication, etc. If the component > > + * values being provided contain less than 16 bits of precision, they'll > > + * be shifted into the most significant bits. > > + */ > > +static inline __u64 > > +drm_rgba(__u8 bpc, __u16 red, __u16 green, __u16 blue, __u16 alpha) > > +{ > > + int msb_shift = 16 - bpc; > > + > > + return (__u64)alpha << msb_shift << 48 | > > + (__u64)red << msb_shift << 32 | > > + (__u64)green << msb_shift << 16 | > > + (__u64)blue << msb_shift; > > So the value is now ARGB but everything still says RGBA? Well, the general idea was that you're providing four color components and you're not supposed to be looking behind the curtain at the internal representation (which may not match any given platform's hardware ordering). If everyone uses the helpers here to pack/unpack the components, then that avoids accidental differences in interpretation between different platforms. But I'm fine with changing the names; I'll do that when I incorporate Sean's suggestion. Matt > > > +} > > + > > +/* > > + * Extract the specified number of bits of a specific color component from a > > + * standard 64-bit RGBA value. > > + */ > > +#define DRM_RGBA_BLUE(c, numbits) (__u16)((c & 0xFFFFull) >> (16-numbits)) > > +#define DRM_RGBA_GREEN(c, numbits) (__u16)((c & 0xFFFFull<<16) >> (32-numbits)) > > +#define DRM_RGBA_RED(c, numbits) (__u16)((c & 0xFFFFull<<32) >> (48-numbits)) > > +#define DRM_RGBA_ALPHA(c, numbits) (__u16)((c & 0xFFFFull<<48) >> (64-numbits)) > > + > > #if defined(__cplusplus) > > } > > #endif > > -- > > 2.14.4 > > -- > Ville Syrjälä > Intel -- Matt Roper Graphics Software Engineer IoTG Platform Enabling & Development Intel Corporation (916) 356-2795 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx