diff options
author | Scott D Phillips <[email protected]> | 2018-05-30 20:24:15 -0700 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-05-31 16:51:47 -0700 |
commit | 29a139b308d51560e0f1d5862fa228023c9a5a04 (patch) | |
tree | 52de69de4aa5075d126ba12ada9199087232bab9 /src/intel/vulkan/anv_private.h | |
parent | bf34ef16ac7c5b59df936dc7a5932c9f518260d9 (diff) |
anv/blorp: Write relocated values into surface states
v2 (Jason Ekstrand):
- Split the blorp bit into it's own patch and re-order a bit
- Use anv_address helpers
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel/vulkan/anv_private.h')
-rw-r--r-- | src/intel/vulkan/anv_private.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 5e07617054c..67a12c7206e 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -1144,6 +1144,22 @@ anv_address_add(struct anv_address addr, uint64_t offset) return addr; } +static inline void +write_reloc(const struct anv_device *device, void *p, uint64_t v, bool flush) +{ + unsigned reloc_size = 0; + if (device->info.gen >= 8) { + reloc_size = sizeof(uint64_t); + *(uint64_t *)p = gen_canonical_address(v); + } else { + reloc_size = sizeof(uint32_t); + *(uint32_t *)p = v; + } + + if (flush && !device->info.has_llc) + gen_flush_range(p, reloc_size); +} + static inline uint64_t _anv_combine_address(struct anv_batch *batch, void *location, const struct anv_address address, uint32_t delta) |