[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