[Mesa-dev] What is DRI_IMAGE and do I want it?

Ilia Mirkin imirkin at alum.mit.edu
Thu Feb 13 08:24:55 PST 2014


On Thu, Feb 13, 2014 at 10:15 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> On 13/02/14 05:33, Ilia Mirkin wrote:
>> Hello list,
>>
>> A number of piglit tests fail with the nouveau dri driver (for
>> pre-nv30 cards), e.g.
>>
>> http://people.freedesktop.org/~imirkin/nv10-comparison/nv18-imirkin/spec/EGL_EXT_client_extensions/conformance%20test%203.html
>>
>> libEGL fatal: DRI2: did not find extension DRI_IMAGE version 1
>>
>> I noticed that the nouveau driver extensions are specified as
>>
>> static const __DRIextension *nouveau_driver_extensions[] = {
>> &driCoreExtension.base,
>> &driDRI2Extension.base,
>> &nouveau_vtable.base,
>> NULL
>> };
>>
>> without &driImageDriverExtension.base in there (which is only used by
>> i915/i965, although I assume st/dri implements it in its own way),
>> which is most likely the cause of that failure. I looked at the
>> functions pointed at by the structure, and they all seem to be
>> available with the nouveau driver (but there could be something subtle
>> I'm missing). So... should I just drop in
>> &driImageDriverExtension.base into the list? What is it for? Is there
>> a downside to including it?
>>
> Extension names are messy and there is a bunch of DRI_IMAGE* out there.
> - driImageDriverExtension is DRI_IMAGE_DRIVER.

OK, so what is DRI_IMAGE_DRIVER good for? I assume only useful if you
also implement DRI_IMAGE?

>
> The main user of DRI_IMAGE is egl, with is DRI3 using v7 for it's
> createImageFromFds(read prime).
>
> Seems relatively easy (v1 at least) but not in a way of "use the
> dri_util implementation", as there is none. Feels free to pursue if
> you're planning on adding EGL and/or DRI3 support for pre nv30 cards.

In what way is driImageDriverExtension not generic? It just calls
stuff in the driver vtable which is already available (like
create/destroy buffer, I forget). However it doesn't appear that
there's a generic DRI_IMAGE impl.

Anyways, this is the crucial bit of information though -- this is only
for EGL and DRI3, neither of which I have. DRI3 might become a thing
though... in which case I guess the work will have to be done. For
now, it'll be "-x egl" for future piglit runs :)

  -ilia


More information about the mesa-dev mailing list