[Mesa-dev] [PATCH 0/4] fence refcnting fixes
Rob Clark
robdclark at gmail.com
Thu Jul 9 05:03:39 PDT 2015
On Thu, Jul 9, 2015 at 4:21 AM, Christian König <deathsimple at vodafone.de> wrote:
> On 08.07.2015 22:34, Rob Clark wrote:
>>
>> From: Rob Clark <robclark at freedesktop.org>
>>
>> This isn't at all clear for pipe driver writers currently, since it
>> is not documented anywhere. But radeon/nouveau/llvmpipe seem to drop
>> the ref on the **fence passed in to pipe->flush() (if *fence!=NULL).
>> Freedreno/ilo/vc4 where not doing this. Some state trackers do call
>> screen->fence_reference(screen, &fence, NULL) before pipe->flush(),
>> but others do not.
>>
>> Add a comment for pipe->flush() to clairify what is expected of the
>> driver, and fixup freedreno/ilo/vc4 to comply.
>>
>> Note: that ilo/vc4 patches are untested
>
>
> Oh, yes please. That also annoyed me once or twice while hacking on the
> state trackers.
>
> Since I'm not into the drivers those changes are Acked-by: Christian König
> <christian.koenig at amd.com>
>
> Do you want to take care of the state trackers as well or should I look into
> the video state trackers to fix this myself?
I guess w/ the doc change + fixing drivers, we don't strictly need to
change the other state trackers to explicitly unref their last_fence,
if that is what you had in mind? It probably wouldn't hurt, but
shouldn't be required..
BR,
-R
> Regards,
> Christian.
>
>
>>
>> Rob Clark (4):
>> gallium: clarify reference counting for fence
>> freedreno: unref old fence
>> ilo: unref old fence
>> vc4: unref old fence
>>
>> src/gallium/drivers/freedreno/freedreno_context.c | 2 +-
>> src/gallium/drivers/freedreno/freedreno_fence.c | 2 +-
>> src/gallium/drivers/ilo/ilo_context.c | 5 ++++-
>> src/gallium/drivers/ilo/ilo_screen.c | 2 +-
>> src/gallium/drivers/vc4/vc4_context.c | 3 ++-
>> src/gallium/drivers/vc4/vc4_fence.c | 2 +-
>> src/gallium/include/pipe/p_context.h | 8 +++++++-
>> 7 files changed, 17 insertions(+), 7 deletions(-)
>>
>
More information about the mesa-dev
mailing list