mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 00:00:12 +01:00
gallium: do not increase ref count of the new throttle fence
A new throttle fence was initialized to 1, and increased by 1
again when it's put in drawable->throttle_fence; the ref was
decreased by 1 when it's removed from drawable->throttle_fence,
and never reached to 0, caused leak.
Fixes: ff77bf5cbf7 ("gallium: simplify throttle implementation")
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1949
Signed-off-by: James Xiong <james.xiong@intel.com>
Reported-by: Florian Wesch <fw@info-beamer.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
This commit is contained in:
parent
e8095f2af0
commit
023282a4f6
1 changed files with 4 additions and 2 deletions
|
|
@ -489,9 +489,11 @@ dri_flush(__DRIcontext *cPriv,
|
|||
st->flush(st, flush_flags, &new_fence);
|
||||
|
||||
/* throttle on the previous fence */
|
||||
if (drawable->throttle_fence)
|
||||
if (drawable->throttle_fence) {
|
||||
screen->fence_finish(screen, NULL, drawable->throttle_fence, PIPE_TIMEOUT_INFINITE);
|
||||
screen->fence_reference(screen, &drawable->throttle_fence, new_fence);
|
||||
screen->fence_reference(screen, &drawable->throttle_fence, NULL);
|
||||
}
|
||||
drawable->throttle_fence = new_fence;
|
||||
}
|
||||
else if (flags & (__DRI2_FLUSH_DRAWABLE | __DRI2_FLUSH_CONTEXT)) {
|
||||
st->flush(st, flush_flags, NULL);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue