diff options
author | Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> | 2020-10-23 09:30:17 +0200 |
---|---|---|
committer | Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> | 2021-04-13 15:44:38 +0200 |
commit | 6fa47495ec9c07c909ae4dd64a922bea4c0b0456 (patch) | |
tree | 0d8ab8754f6d34a6621378a2b2bc0246ac9f4bb4 /lib/media_spin.c | |
parent | 8df4c1cf5bcab7633d9e9bb8d01cf1bcc2f4fbee (diff) |
lib/intel_batchbuffer: Add tracking intel_buf to intel_bb
From now on intel_bb starts tracking added/removed intel_bufs.
We're safe now regardless order of intel_buf close/destroy
or intel_bb destroy paths.
When intel_buf is closed/destroyed first and it was previously added
to intel_bb it calls the code which removes itself from intel_bb.
In destroy path we go over all tracked intel_bufs and clear tracking
information and buffer offset (it is set to INTEL_BUF_INVALID_ADDRESS).
Reset path is handled as follows:
- intel_bb_reset(ibb, false) - just clean objects array leaving
cache / allocator state intact.
- intel_bb_reset(ibb, true) - purge cache as well as detach intel_bufs
from intel_bb (release offsets from allocator).
Remove intel_bb_object_offset_to_buf() function as tracking intel_buf
updates (checks for allocator) their offsets after execbuf.
Alter api_intel_bb according to intel-bb changes.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Petri Latvala <petri.latvala@intel.com>
Diffstat (limited to 'lib/media_spin.c')
-rw-r--r-- | lib/media_spin.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/lib/media_spin.c b/lib/media_spin.c index 5da469a5..d2345d15 100644 --- a/lib/media_spin.c +++ b/lib/media_spin.c @@ -132,7 +132,6 @@ gen8_media_spinfunc(int i915, struct intel_buf *buf, uint32_t spins) intel_bb_exec(ibb, intel_bb_offset(ibb), I915_EXEC_DEFAULT | I915_EXEC_NO_RELOC, false); - intel_bb_object_offset_to_buf(ibb, buf); intel_bb_destroy(ibb); } @@ -186,6 +185,5 @@ gen9_media_spinfunc(int i915, struct intel_buf *buf, uint32_t spins) intel_bb_exec(ibb, intel_bb_offset(ibb), I915_EXEC_DEFAULT | I915_EXEC_NO_RELOC, false); - intel_bb_object_offset_to_buf(ibb, buf); intel_bb_destroy(ibb); } |