Hi, On Tue, 25 Feb 2025 at 21:35, Alyssa Rosenzweig <alyssa@xxxxxxxxxxxxx> wrote: > These layouts are notably not used for interchange across hardware > blocks (e.g. with the display controller). There are other layouts for > that but we don't support them either in userspace or kernelspace yet > (even downstream), so we don't add modifiers here. Yeah, when those have users with good definitions matching these, we can add them here, even if they are downstream. Anything the GPU would share out of context, or the codec, would be good for this. > +/* > + * Apple GPU-tiled layout. > + * > + * GPU-tiled images are divided into tiles. Tiles are always 16KiB, with > + * dimensions depending on the base-format. Within a tile, pixels are fully > + * interleaved (Morton order). Tiles themselves are raster-order. > + * > + * Images must be 16-byte aligned. > + * > + * For more information see > + * https://docs.mesa3d.org/drivers/asahi.html#image-layouts This writeup is really nice. I would prefer it was inlined here though (similar to AFBC), with Mesa then referring to the kernel, but tbf Vivante does have a similar external reference. The one thing it's missing is an explicit description of how stride is computed and used. I can see the 'obvious' way to do it for this and compression, but it would be good to make it explicit, given some misadventures in the past. CCS is probably the gold standard to refer to here. I'd be very happy to merge it with that. Cheers, Daniel