gallium/u_inlines: improve pipe_reference_described perf for debug builds

Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
Marek Olšák
2018-09-01 01:22:08 -04:00
parent c042a34b14
commit ed880fe192
+5 -4
View File
@@ -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);