[PATCH v2] linux-dmabuf: clarify DRM_FORMAT_MOD_INVALID

Pekka Paalanen ppaalanen at gmail.com
Wed Apr 17 11:10:57 UTC 2019


On Tue, 16 Apr 2019 10:06:43 -0700
Chia-I Wu <olvaffe at gmail.com> wrote:

> DRM_FORMAT_MOD_INVALID means to derive the modifier from the dmabuf.
> It provides legacy support and makes it easier to replace wl_drm.
> 
> Signed-off-by: Chia-I Wu <olvaffe at gmail.com>
> ---
>  .../linux-dmabuf/linux-dmabuf-unstable-v1.xml    | 16 +++++++++++++++-
>  1 file changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
> index 154afe2..e1ac82f 100644
> --- a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
> +++ b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
> @@ -28,6 +28,7 @@
>      <description summary="factory for creating dmabuf-based wl_buffers">
>        Following the interfaces from:
>        https://www.khronos.org/registry/egl/extensions/EXT/EGL_EXT_image_dma_buf_import.txt
> +      https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt
>        and the Linux DRM sub-system's AddFb2 ioctl.
>  
>        This interface offers ways to create generic dmabuf-based
> @@ -129,8 +130,16 @@
>          binds to this interface. A roundtrip after binding guarantees that
>          the client has received all supported format-modifier pairs.
>  
> +        For legacy support, DRM_FORMAT_MOD_INVALID (that is, modifier_hi ==
> +        0x00ffffff and modifier_lo == 0xffffffff) is considered a valid
> +        modifier. It indicates that the server can support the format with an
> +        implicit modifier. When a plane has DRM_FORMAT_MOD_INVALID as its
> +        modifier, the effective modifier will be derived from the dmabuf
> +        rather than the explicitly specified value.
> +
>          For the definition of the format and modifier codes, see the
> -        zwp_linux_buffer_params_v1::create request.
> +        zwp_linux_buffer_params_v1::create and zwp_linux_buffer_params_v1::add
> +        requests.
>        </description>
>        <arg name="format" type="uint" summary="DRM_FORMAT code"/>
>        <arg name="modifier_hi" type="uint"
> @@ -197,6 +206,11 @@
>          compression, etc. driver-specific modifications to the base format
>          defined by the DRM fourcc code.
>  
> +        Warning: It should be an error if the format/modifier pair was not
> +        advertised with the modifier event. This is not enforced yet because
> +        some implementations always accept DRM_FORMAT_MOD_INVALID. Also
> +        version 2 of this protocol does not have the modifier event.
> +
>          This request raises the PLANE_IDX error if plane_idx is too large.
>          The error PLANE_SET is raised if attempting to set a plane that
>          was already set.

Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.com>

I'm also ok with the patch v3 wording:

+        For legacy support, DRM_FORMAT_MOD_INVALID (that is, modifier_hi ==
+        0x00ffffff and modifier_lo == 0xffffffff) is allowed in this event.
+        It indicates that the server can support the format with an implicit
+        modifier. When a plane has DRM_FORMAT_MOD_INVALID as its modifier, it
+        is as if no explicit modifier is specified. The effective modifier
+        will be derived from the dmabuf.


Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20190417/8bf1d8cf/attachment.sig>


More information about the wayland-devel mailing list