[wayland-protocols v3] linux-dmabuf: advertise format modifiers with modifier event

Varad Gautam varadgautam at gmail.com
Tue Jan 17 14:28:57 UTC 2017


Hi,

On Tue, Jan 17, 2017 at 7:40 PM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> On Mon, 21 Nov 2016 15:47:39 +0530
> Varad Gautam <varadgautam at gmail.com> wrote:
>
>> From: Varad Gautam <varad.gautam at collabora.com>
>>
>> advertise the supported fourcc format modifiers along with supported
>> formats to the client.
>>
>> bump zwp_linux_dmabuf_v1, zwp_linux_buffer_params_v1 interface
>> versions to 3.
>>
>> v2: specify request name in event description for clarity (Yong Bakos)
>> v3: grammar fixup (Yong Bakos)
>>
>> Signed-off-by: Varad Gautam <varad.gautam at collabora.com>
>> Reviewed-by: Yong Bakos <ybakos at humanoriented.com>
>> ---
>>  unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml | 25 +++++++++++++++++++---
>>  1 file changed, 22 insertions(+), 3 deletions(-)
>>
>> diff --git a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
>> index a0aa42e..cc5d604 100644
>> --- a/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
>> +++ b/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml
>> @@ -26,7 +26,7 @@
>>      THIS SOFTWARE.
>>    </copyright>
>>
>> -  <interface name="zwp_linux_dmabuf_v1" version="2">
>> +  <interface name="zwp_linux_dmabuf_v1" version="3">
>>      <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
>> @@ -34,7 +34,8 @@
>>
>>        This interface offers ways to create generic dmabuf-based
>>        wl_buffers. Immediately after a client binds to this interface,
>> -      the set of supported formats is sent with 'format' events.
>> +      the set of supported formats and format modifiers is sent with
>> +      'format' and 'modifier' events.
>
> Hi,
>
> so does this mean that when v3 is bound, the client will receive *both*
> 'format' and 'modifier' events?
>
> What does it mean if a format comes via 'format' event but not via
> 'modifiers' event?
>
> Can a format come only via 'modifiers' event?

Bind triggers both `format` and `modifier` events. - the `format` event carries
only the DRM_FORMAT_* code, (preserved from v1), whereas `modifier`
sends a supported <format, modifier> pair. So, for each supported format,
there would be one `format` event, and as many `modifier` events as the
number of modifiers supported for that format.

Thanks,
Varad

>
> Otherwise looks fine to me. With those clarifications it's at least:
> Acked-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
>
> The event size is 5 words which is 20 bytes. One wire buffer can hold
> around 200 such events. If we ever need to send more format/modifier
> combinations than that, well, I suppose we'll cross that bridge then.
>
>
> Thanks,
> pq
>
>>
>>        The following are required from clients:
>>
>> @@ -110,9 +111,27 @@
>>        </description>
>>        <arg name="format" type="uint" summary="DRM_FORMAT code"/>
>>      </event>
>> +
>> +    <event name="modifier" since="3">
>> +      <description summary="supported buffer format modifier">
>> +        This event advertises the formats that the server supports, along with
>> +        the modifiers supported for each format. All the supported modifiers for
>> +        all the supported formats are advertised once when the client binds to
>> +        this interface. A roundtrip after binding guarantees that the client
>> +        has received all supported format-modifier pairs.
>> +
>> +        For the definition of the format and modifier codes, see the
>> +        zwp_linux_buffer_params_v1::create request.
>> +      </description>
>> +      <arg name="format" type="uint" summary="DRM_FORMAT code"/>
>> +      <arg name="modifier_hi" type="uint"
>> +           summary="high 32 bits of layout modifier"/>
>> +      <arg name="modifier_lo" type="uint"
>> +           summary="low 32 bits of layout modifier"/>
>> +    </event>
>>    </interface>
>>
>> -  <interface name="zwp_linux_buffer_params_v1" version="2">
>> +  <interface name="zwp_linux_buffer_params_v1" version="3">
>>      <description summary="parameters for creating a dmabuf-based wl_buffer">
>>        This temporary object is a collection of dmabufs and other
>>        parameters that together form a single logical buffer. The temporary
>


More information about the wayland-devel mailing list