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

Reply via email to