summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/anv_private.h
diff options
context:
space:
mode:
authorScott D Phillips <[email protected]>2018-03-13 10:57:39 -0700
committerJason Ekstrand <[email protected]>2018-06-01 14:27:10 -0700
commit27cc68d9e90c8d2031383fa6dc28fe910a351eb6 (patch)
tree605ec95eb4117756ec3ab60aad6b71f6677d53e8 /src/intel/vulkan/anv_private.h
parentc7db0ed4e94dce563d722e1b098684fbd7315d51 (diff)
anv: For pinned BOs, skip relocations, but track bo usage
References to pinned BOs won't need to be relocated at a later point, so just write the final value of the reference into the bo directly. Add a `set` to the relocation lists for tracking dependencies that were previously tracked by relocations. When a batch is executed, we add the referenced pinned BOs to the exec list. v2: - visit bos from the dependency set in a deterministic order (Jason) v3: - compar => compare, drat (Jason) - Reworded commit message, provided by (Jordan) Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel/vulkan/anv_private.h')
-rw-r--r--src/intel/vulkan/anv_private.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index bbbf7ecd4cf..d89e2dcc378 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -47,7 +47,9 @@
#include "blorp/blorp.h"
#include "compiler/brw_compiler.h"
#include "util/macros.h"
+#include "util/hash_table.h"
#include "util/list.h"
+#include "util/set.h"
#include "util/u_atomic.h"
#include "util/u_vector.h"
#include "util/vma.h"
@@ -1076,6 +1078,7 @@ struct anv_reloc_list {
uint32_t array_length;
struct drm_i915_gem_relocation_entry * relocs;
struct anv_bo ** reloc_bos;
+ struct set * deps;
};
VkResult anv_reloc_list_init(struct anv_reloc_list *list,