On 9/8/21 2:44 AM, Simon Ser wrote:
stride
????
I think what's clear is:
- Per-plane property
- In bytes
- Offset between two consecutive rows
How that applies to weird YUV formats is the tricky question…
Btw. there was a fun argument whether the same modifier value could
mean different things on different devices. There were also arguments
that a certain modifier could reference additional implicit memory on
the device - memory that can only be accessed by very specific devices.
I think AMLOGIC_FBC_LAYOUT_SCATTER was one of those.
A recent exmaple of this is [1].
[1]: https://patchwork.freedesktop.org/patch/452461/
What was the resolution to that argument? It took some fiddling to get
the NV format modifiers to be robust enough that they actually do
differentiate "identical" layouts that actually mismatch between devices
(E.g., some of our SoC GPUs interpret layouts differently than our
discrete GPUs, so that's reflected in the format modifier-building macro
and hence applications can properly deduce that they can *not* share
images directly between these devices, but can share between two similar
discrete GPUs), so I hope the modifier definition allows that.
Cross-device sharing using tiled formats in machines with multiple
similar NV GPUs was an important use case for modifiers on our side.
Thanks,
-James