[Mesa-dev] [PATCH] r600g: Manage fences per screen rather than per context.

Mathias Fröhlich Mathias.Froehlich at gmx.net
Thu Dec 29 05:57:31 PST 2011


Hi,

On Thursday, December 29, 2011 13:35:19 Michel Dänzer wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
> 
> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=44151
> 
> Probably fixes: https://bugs.freedesktop.org/show_bug.cgi?id=44007
>                 https://bugs.freedesktop.org/show_bug.cgi?id=43993
> 
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
> ---
> 
> This introduces a potential race condition with apps using several contexts
> concurrently in several threads: rscreen->fences.bo is referenced by all
> contexts, so e.g. rscreen->fences.bo->cs_buf->last_flush may be concurrently
> read/written by several threads. However, I think this could already happen
> e.g. when sharing textures between GLX contexts, so it should probably be
> addressed separately. Also, in the case of rscreen->fences.bo I think it's
> harmless, as no caches should need to be flushed for it.
> 
> No regressions (or fixes) in piglit quick.tests.

This actually fixes some piglit problems that I have here using different 
vblank_mode's set in .drirc. These problems arise from the fences may be 
living longer than the context itself. Which should be fixed with this patch 
too.

I am missing a pipe_mutex_destroy in this change.

Other than that - I am fine with that change.
Also tested on a rv770 here - no piglit quick regressions.

Mathias


More information about the mesa-dev mailing list