Mesa (master): gallium/pb_cache: check parameters that are more likely to fail first

Marek Olšák mareko at kemper.freedesktop.org
Tue Jul 19 21:45:35 UTC 2016


Module: Mesa
Branch: master
Commit: fec7f74129622f846c79edc3a6b050db62c89554
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fec7f74129622f846c79edc3a6b050db62c89554

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sun Jul 17 11:59:40 2016 +0200

gallium/pb_cache: check parameters that are more likely to fail first

This makes Bioshock Infinite with deferred flushing 2% faster.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 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 ebd06b0..6a43cbc 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;
 }
 
 /**




More information about the mesa-commit mailing list