From fec7f74129622f846c79edc3a6b050db62c89554 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 17 Jul 2016 11:59:40 +0200 Subject: [PATCH] gallium/pb_cache: check parameters that are more likely to fail first MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This makes Bioshock Infinite with deferred flushing 2% faster. Reviewed-by: Nicolai Hähnle --- src/gallium/auxiliary/pipebuffer/pb_cache.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/gallium/auxiliary/pipebuffer/pb_cache.c b/src/gallium/auxiliary/pipebuffer/pb_cache.c index ebd06b0e030..6a43cbc85be 100644 --- a/src/gallium/auxiliary/pipebuffer/pb_cache.c +++ b/src/gallium/auxiliary/pipebuffer/pb_cache.c @@ -114,25 +114,24 @@ static int pb_cache_is_buffer_compat(struct pb_cache_entry *entry, pb_size size, unsigned alignment, unsigned usage) { + struct pb_cache *mgr = entry->mgr; struct pb_buffer *buf = entry->buffer; - if (usage & entry->mgr->bypass_usage) - return 0; - - if (buf->size < size) + if (!pb_check_usage(usage, buf->usage)) return 0; /* be lenient with size */ - if (buf->size > (unsigned) (entry->mgr->size_factor * size)) + if (buf->size < size || + buf->size > (unsigned) (mgr->size_factor * size)) return 0; - if (!pb_check_alignment(alignment, buf->alignment)) + if (usage & mgr->bypass_usage) return 0; - if (!pb_check_usage(usage, buf->usage)) + if (!pb_check_alignment(alignment, buf->alignment)) return 0; - return entry->mgr->can_reclaim(buf) ? 1 : -1; + return mgr->can_reclaim(buf) ? 1 : -1; } /** -- 2.30.2