On Thu, Mar 11, 2021 at 3:02 PM Peter Stuge <peter@xxxxxxxx> wrote: > > > Hence the question: What does DRM promise about the XRGB8888 mode? > > > > That it's a 32-bit value. From include/uapi/drm/drm_fourcc.h: > > > > /* 32 bpp RGB */ > > #define DRM_FORMAT_XRGB8888 fourcc_code('X', 'R', '2', '4') /* [31:0] > > x:R:G:B 8:8:8:8 little endian */ > > Okay, "[31:0] x:R:G:B 8:8:8:8" can certainly mean > [31:24]=x [23:16]=R [15:8]=G [7:0]=B, which when stored "little endian" > becomes B G R X in memory, for which your pix32 code is correct. > > That's the reverse *memory* layout of what the name says :) but yes, > the name then matches the representation seen by software. That's the > "abstracted" case that I didn't expect, because I thought the name was > refering to memory layout and because I was thinking about how traditional > graphics adapter video memory has the R component at the lower > address, at least in early linear modes. The definition of the formats is memory layout in little endian. The definition you see is of a 32-bit packed little-endian integer, which is a fixed memory layout. Now, if you're on an actual big-endian platform, and you want to accept big-endian-packed formats, there's a bit of unpleasantness that goes on. Basically there are two options: 1. Ignore the above definition and interpret the formats as *big-endian* layouts. This is what nouveau and radeon do. They also don't support AddFB2 (which is what allows supplying a format) -- only AddFB which just has depth (and bpp). That's fine for nouveau and radeon because the relevant userspace just uses AddFB, and knows what the drivers want, so it all works out. 2. Comply with the above definition and set dev->mode_config.quirk_addfb_prefer_host_byte_order to false. This loses you native host packing of RGB565/etc, since they're just not defined as formats. There's a DRM_FORMAT_BIG_ENDIAN bit but it's not properly supported for anything but the 8888 formats. I'm not sure why you guys were talking about BE in the first place, but since this is a topic I've looked into (in the context of moving nouveau from 1 to 2 - but that can't happen due to the reduced format availability), figured I'd share some of the current sad state. Cheers, -ilia _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel