anv: Always add in EXEC_OBJECT_WRITE when specified in extra_flags
authorJason Ekstrand <jason@jlekstrand.net>
Thu, 21 Nov 2019 12:00:14 +0000 (06:00 -0600)
committerJason Ekstrand <jason@jlekstrand.net>
Fri, 6 Dec 2019 19:58:07 +0000 (19:58 +0000)
Otherwise, we're trusting in the execbuf_add_bo which sets
EXEC_OBJECT_WRITE to to always be the first one that gets called.  This
is likely true for fences but it seems somewhat fragile.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/intel/vulkan/anv_batch_chain.c

index f58299b6760274e7db360ee2711453dc46a50a4f..67bd4df64bd82b9e68b2e7b7fc4ea9eab19aebe8 100644 (file)
@@ -1136,6 +1136,11 @@ anv_execbuf_add_bo(struct anv_device *device,
       obj->rsvd2 = 0;
    }
 
+   if (extra_flags & EXEC_OBJECT_WRITE) {
+      obj->flags |= EXEC_OBJECT_WRITE;
+      obj->flags &= ~EXEC_OBJECT_ASYNC;
+   }
+
    if (relocs != NULL) {
       assert(obj->relocation_count == 0);