[Mesa-dev] [PATCH 04/38] drivers/dri: set the implemented version of __DRItexBufferExtension

Emil Velikov emil.l.velikov at gmail.com
Mon Feb 17 15:28:56 PST 2014


On 13/02/14 03:03, Ilia Mirkin wrote:
> On Wed, Feb 12, 2014 at 9:56 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> On 13/02/14 02:47, Emil Velikov wrote:
>>> On 13/02/14 02:34, Ilia Mirkin wrote:
>>>> On Wed, Feb 12, 2014 at 8:17 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>>>>> ... over the version number provided by the headers.
>>>>> Explicitly set extension members to improve clarity.
>>>>
>>>> So... the current value is 2, but I see code that does
>>>>
>>>> src/egl/drivers/dri2/egl_dri2.c:#if __DRI_TEX_BUFFER_VERSION >= 3
>>>> src/glx/dri2_glx.c:#if __DRI_TEX_BUFFER_VERSION >= 3
>>>> src/glx/drisw_glx.c:#if __DRI_TEX_BUFFER_VERSION >= 3
>>>>
>>>> What's that all about?
>>>>
>>> Chaos wrt documentation and keeping up with it.
>>>
>>> Until git log churns this is the only reasonable thing that I can think of:
>>>
>>>  - releaseTexBuffer was added with version 3 in mind.
>>>  - no driver implemented the function
>>>  - the version was never bumped or reverted.
>>>
>> Looks like cvs (or whatever was used back in 2009) failure :\
>>
>> Eric introduced v2 with commit 66175aac760, bumping the version 1>2
>> Ian made an update with commit 82634ee8df7, bumping the version 1>2
> 
> Meh, that's a merge-fail from a long time ago.
> 
>>
>> I'll update the header but I'll keep version 2 everywhere (dropping the
>> null member).
> 
> releaseTexBuffer was actually introduced with e59fa4c46c8 ("dri2:
> release texture image."), which also added 2 of the #if's. I'm
> guessing the third got copy/pasted in.
> 
Good catch, while the commit effectively adds a new revision of the
extension if avoids bumping the version number.

At the same time it adds a glx/egl dri2 implementations wrapped in "if
__DRI_TEX_BUFFER_VERSION >=3". Bumping the version in the header, will
result in broken build (2) due to missing _eglReleaseTexImage and
possibly others. With the build issues resolved, the function have some
runtime cost, despite that no driver implements
__DRItexBufferExtensionRec::releaseTexBuffer.


Juan Zhao

Can you provide some clarity on the case ? Namely with e59fa4c46c8
("dri2: release texture image.") you've updated the
__DRItexBufferExtensionRec but the code you've added seems untested.

 - Did you deliberately omitted bumping the __DRI_TEX_BUFFER_VERSION,
what is the idea behind it.

 - Is there any plans on implementing _eglReleaseTexImage that is
required in order to get egl_dri2 building/working ?

IMHO we can safely bump the version in the header, and comment out/drop
the broken code if no-one is going to step up and clean it.

Thanks
-Emil


>   -ilia
> 



More information about the mesa-dev mailing list