Message ID | 20200626164800.11595-1-brian.starkey@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm: drm_fourcc: Add generic alias for 16_16_TILE modifier | expand |
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@arm.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > 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 >
On Mon, Jun 29, 2020 at 10:32:41AM +0200, Daniel Vetter wrote: > 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@arm.com> > > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Thanks. I guess this should go into drm-misc-next? @Liviu would you be able to pick it up? Cheers, -Brian > > > --- > > 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
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 *
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@arm.com> --- include/uapi/drm/drm_fourcc.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)