lima: ignore flags while looking for BO in cache
authorVasily Khoruzhick <anarsoul@gmail.com>
Fri, 25 Oct 2019 05:14:05 +0000 (22:14 -0700)
committerVasily Khoruzhick <anarsoul@gmail.com>
Fri, 1 Nov 2019 20:12:07 +0000 (13:12 -0700)
Any BO would work, we don't have any BO types yet anyway. Moreover
lima_submit_add_bo() changes BO flags so they won't match allocation
flags.

Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
src/gallium/drivers/lima/lima_bo.c

index 779e23ce1c8691ef42eb44e871c942d97d221b9b..2ee80e190cf51f6e7a2c01387a427ca370c7d7bd 100644 (file)
@@ -256,8 +256,7 @@ lima_bo_cache_get(struct lima_screen *screen, uint32_t size, uint32_t flags)
    }
 
    list_for_each_entry_safe(struct lima_bo, entry, bucket, size_list) {
-      if (entry->size >= size &&
-          entry->flags == flags) {
+      if (entry->size >= size) {
          /* Check if BO is idle. If it's not it's better to allocate new one */
          if (!lima_bo_wait(entry, LIMA_GEM_WAIT_WRITE, 0)) {
             if (lima_debug & LIMA_DEBUG_BO_CACHE) {
@@ -269,6 +268,7 @@ lima_bo_cache_get(struct lima_screen *screen, uint32_t size, uint32_t flags)
 
          lima_bo_cache_remove(entry);
          p_atomic_set(&entry->refcnt, 1);
+         entry->flags = flags;
          bo = entry;
          if (lima_debug & LIMA_DEBUG_BO_CACHE) {
             fprintf(stderr, "%s: got BO: %p (size=%d), requested size %d\n",