On Fri, Jun 26, 2020 at 05:48:00PM +0100, Brian Starkey wrote: > In cases such as DRM_FORMAT_MOD_SAMSUNG_16_16_TILE, the modifier > describes a generic pixel re-ordering which can be applicable to > multiple vendors. > > Define an alias: DRM_FORMAT_MOD_GENERIC_16_16_TILE, which can be > used to describe this layout in a vendor-neutral way, and add a > comment about the expected usage of such "generic" modifiers. > > Changes in v2: > - Move note about future cases to comment (Daniel) > > Signed-off-by: Brian Starkey <brian.starkey@xxxxxxx> Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > include/uapi/drm/drm_fourcc.h | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h > index 299f9ac4840b..cb3db4a21012 100644 > --- a/include/uapi/drm/drm_fourcc.h > +++ b/include/uapi/drm/drm_fourcc.h > @@ -345,8 +345,33 @@ extern "C" { > * When adding a new token please document the layout with a code comment, > * similar to the fourcc codes above. drm_fourcc.h is considered the > * authoritative source for all of these. > + * > + * Generic modifier names: > + * > + * DRM_FORMAT_MOD_GENERIC_* definitions are used to provide vendor-neutral names > + * for layouts which are common across multiple vendors. To preserve > + * compatibility, in cases where a vendor-specific definition already exists and > + * a generic name for it is desired, the common name is a purely symbolic alias > + * and must use the same numerical value as the original definition. > + * > + * Note that generic names should only be used for modifiers which describe > + * generic layouts (such as pixel re-ordering), which may have > + * independently-developed support across multiple vendors. > + * > + * In future cases where a generic layout is identified before merging with a > + * vendor-specific modifier, a new 'GENERIC' vendor or modifier using vendor > + * 'NONE' could be considered. This should only be for obvious, exceptional > + * cases to avoid polluting the 'GENERIC' namespace with modifiers which only > + * apply to a single vendor. > + * > + * Generic names should not be used for cases where multiple hardware vendors > + * have implementations of the same standardised compression scheme (such as > + * AFBC). In those cases, all implementations should use the same format > + * modifier(s), reflecting the vendor of the standard. > */ > > +#define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE > + > /* > * Invalid Modifier > * > -- > 2.17.1 > -- 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