Module: Mesa Branch: master Commit: ed880fe192d138c6b1115b22c306e7be9646d4a0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ed880fe192d138c6b1115b22c306e7be9646d4a0
Author: Marek Olšák <[email protected]> Date: Sat Sep 1 01:22:08 2018 -0400 gallium/u_inlines: improve pipe_reference_described perf for debug builds Tested-by: Dieter Nützel <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> --- src/gallium/auxiliary/util/u_inlines.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/util/u_inlines.h b/src/gallium/auxiliary/util/u_inlines.h index 83013df53f..820d3080a5 100644 --- a/src/gallium/auxiliary/util/u_inlines.h +++ b/src/gallium/auxiliary/util/u_inlines.h @@ -79,14 +79,15 @@ pipe_reference_described(struct pipe_reference *dst, if (dst != src) { /* bump the src.count first */ if (src) { - assert(pipe_is_referenced(src)); - p_atomic_inc(&src->count); + MAYBE_UNUSED int count = p_atomic_inc_return(&src->count); + assert(count != 1); /* src had to be referenced */ debug_reference(src, get_desc, 1); } if (dst) { - assert(pipe_is_referenced(dst)); - if (p_atomic_dec_zero(&dst->count)) + int count = p_atomic_dec_return(&dst->count); + assert(count != -1); /* dst had to be referenced */ + if (!count) destroy = TRUE; debug_reference(dst, get_desc, -1); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
