[PATCH i-g-t 3/7] lib/intel_batchbuffer: add intel_bb_create_with_gt function
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Tue Mar 25 19:08:35 UTC 2025
add possibility to use gt id with batchbuffer when on xe
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
---
lib/intel_batchbuffer.c | 25 +++++++++++++++++++++++++
lib/intel_batchbuffer.h | 3 +++
2 files changed, 28 insertions(+)
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index 72bbbf8c6..baf34a837 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -1149,6 +1149,31 @@ intel_bb_create_with_context(int fd, uint32_t ctx, uint32_t vm,
is_i915 ? REGION_SMEM : vram_if_possible(fd, 0));
}
+/**
+ * intel_bb_create_with_gt:
+ * @fd: drm fd - i915 or xe
+ * @gt: for i915 context id, for xe engine id
+ * @vm: for xe vm_id, unused for i915
+ * @size: size of the batchbuffer
+ *
+ * Creates bb with engine id passed in @gt
+ *
+ * Returns:
+ *
+ * Pointer the intel_bb, asserts on failure.
+ */
+struct intel_bb *intel_bb_create_with_gt(int fd, uint32_t size, int vm, int gt)
+{
+ bool is_i915 = is_i915_device(fd);
+ bool relocs = is_i915 && gem_has_relocations(fd);
+
+ return __intel_bb_create(fd, gt, vm, NULL, size,
+ relocs && !aux_needs_softpin(fd), 0, 0, 0,
+ INTEL_ALLOCATOR_SIMPLE,
+ ALLOC_STRATEGY_HIGH_TO_LOW,
+ is_i915 ? REGION_SMEM : vram_if_possible(fd, gt));
+}
+
/**
* intel_bb_create_with_context_in_region:
* @fd: drm fd - i915 or xe
diff --git a/lib/intel_batchbuffer.h b/lib/intel_batchbuffer.h
index 178aaa9d8..d0d3f065f 100644
--- a/lib/intel_batchbuffer.h
+++ b/lib/intel_batchbuffer.h
@@ -323,6 +323,9 @@ struct intel_bb *intel_bb_create(int fd, uint32_t size);
struct intel_bb *
intel_bb_create_with_context(int fd, uint32_t ctx, uint32_t vm,
const intel_ctx_cfg_t *cfg, uint32_t size);
+struct intel_bb *intel_bb_create_with_gt(int fd, uint32_t size, int vm,
+ int gt);
+
struct intel_bb *
intel_bb_create_with_context_in_region(int fd, uint32_t ctx, uint32_t vm,
const intel_ctx_cfg_t *cfg, uint32_t size, uint64_t region);
--
2.45.2
More information about the igt-dev
mailing list