diff --git a/src/intel/vulkan/anv_batch_chain.c b/src/intel/vulkan/anv_batch_chain.c index e0504cdfdc4..28e2b8a3aaa 100644 --- a/src/intel/vulkan/anv_batch_chain.c +++ b/src/intel/vulkan/anv_batch_chain.c @@ -385,9 +385,11 @@ anv_batch_bo_link(struct anv_cmd_buffer *cmd_buffer, assert(((*bb_start >> 29) & 0x07) == 0); assert(((*bb_start >> 23) & 0x3f) == 49); - write_reloc(cmd_buffer->device, - prev_bbo->bo->map + bb_start_offset + 4, - next_bbo->bo->offset + next_bbo_offset, true); + uint64_t *map = prev_bbo->bo->map + bb_start_offset + 4; + *map = intel_canonical_address(next_bbo->bo->offset + next_bbo_offset); + + if (cmd_buffer->device->physical->memory.need_clflush) + intel_flush_range(map, sizeof(uint64_t)); } static void diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index eef8ed7e6f2..ec2ff4161b4 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -1447,16 +1447,6 @@ anv_batch_emit_reloc(struct anv_batch *batch, return address_u64; } -static inline void -write_reloc(const struct anv_device *device, void *p, uint64_t v, bool flush) -{ - unsigned reloc_size = sizeof(uint64_t); - *(uint64_t *)p = intel_canonical_address(v); - - if (flush && device->physical->memory.need_clflush) - intel_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)