[Mesa-dev] [PATCH v2] egl_dri2: add support for using modifier attributes in eglCreateImageKHR

Emil Velikov emil.l.velikov at gmail.com
Fri Nov 18 15:24:50 UTC 2016


On 18 November 2016 at 15:17, Daniel Stone <daniel at fooishbar.org> wrote:
> Hi,
>
> On 18 November 2016 at 14:50, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> On 16 November 2016 at 09:28, Varad Gautam <varadgautam at gmail.com> wrote:
>>> +   if (nonzero_modifier_found && dri2_dpy->image->createImageFromDmaBufs2) {
>>> +      dri_image =
>>> +         dri2_dpy->image->createImageFromDmaBufs2(dri2_dpy->dri_screen,
>>> +            attrs.Width, attrs.Height, attrs.DMABufFourCC.Value,
>>> +            fds, num_fds, pitches, offsets, modifiers,
>>> +            attrs.DMABufYuvColorSpaceHint.Value,
>>> +            attrs.DMABufSampleRangeHint.Value,
>>> +            attrs.DMABufChromaHorizontalSiting.Value,
>>> +            attrs.DMABufChromaVerticalSiting.Value,
>>> +            &error,
>>> +            NULL);
>>> +   } else {
>>> +      if (nonzero_modifier_found) {
>>> +         _eglError(EGL_BAD_MATCH, "unsupported dma_buf format modifier");
>>> +         return EGL_NO_IMAGE_KHR;
>>> +      }
>>> +
>> Using something like the following might be better?
>>
>> if (nonzero_modifier_found) {
>>    if (!dri2_dpy->image->createImageFromDmaBufs2)
>>      # assert should never reach here, since the extension should be
>> advertised only if the API is available.
>>    use new API
>> else
>>    use old API
>
> Actually, present-and-zero modifier has a very well-defined meaning:
> it _forces_ linear interpretation of the buffer, whereas a non-present
> modifier may cause a kernel query (e.g. i915_gem_get_tiling) to
> discover a hidden tiling mode. So, if present, the modifier should be
> passed.
>
You are suggesting that we should track "has_modifier" (as opposed to
nonzero_modifier_found) and pass it to DmaBuf2 regardless of the
contents, right ?

Just double-checking.
Emil


More information about the mesa-dev mailing list