[Mesa-dev] [PATCH 2/2] r600g, radeonsi: use fences provided by the winsys

Fredrik Höglund fredrik at kde.org
Tue Oct 8 14:28:56 PDT 2013


On Tuesday 08 October 2013, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
> 
> This was horribly, horribly broken. The limit was 1024 fences created
> from the start of the application and as you probably know, pipe fences are
> not reusable. If you wanted to use one fence per frame, you could only do
> that for 1024 frames, whish was pretty bad. The error message "too many
> concurrent fences" was misleading.

Not true. r600g has a pool of 1024 internal fences, and when a pipe_fence
is deleted, the internal fence is returned to the pool so it can be reused.

If you see that error message, it really means that the application or the
state tracker has created 1024 fences without waiting on them or
deleting them.  Note that calling glClientWaitSync() or quering the state
of a signalled sync object also causes the state tracker to delete the fence.

This is not an objection to the patch, but I don't believe the ultimate cause
of the problem is the r600g implementation.

Fredrik



More information about the mesa-dev mailing list