[igt-dev] [PATCH i-g-t v2 0/3] Add support for intel_ctx_t in intel_bb
Karolina Drobnik
karolina.drobnik at intel.com
Tue Oct 25 07:14:58 UTC 2022
Currently, intel_bb assumes that context has a fixed set of engines, which
might not be the case for contexts passed from the userspace. They may use
a custom engines layout, so the legacy flags like I915_EXEC_BLT wouldn't
match the actual engine indices.
To address this issue, the series adds an additional field to intel_bb,
intel_ctx_cfg_t (intel_ctx_t configuration), that describes the engine
instances, together with an engine index lookup function, find_engine().
The function added in the second patch is used by intel_bb_flush_render()
and intel_bb_flush_blit() helpers.
The last patch in the series adds a test where we define a context with
the blitter engine at index 0 (1 in the legacy mode) to verify that
(1) intel_bb can indeed handle external contexts, and (2) intel_bb_exec gets
the correct engine id in intel_bb_flush_blit().
v2:
- Add a blank line, removed by mistake, in __intel_bb_create()
- Update intel_bb_create_with_relocs_and_context() to handle
intel_ctx_cfg_t
- Rewrite find_engine() to return engine id, and update
intel_bb_flush_render() and intel_bb_flush_blit() accordingly
- Add MI_FLUSH_DW (a command that is available on blitter but not
on render) to make sure we actually execute the batch buffer on the
expected engine
All above suggested by Zbigniew
Karolina Drobnik (3):
lib/intel_batchbuffer: Extend __intel_bb_create to handle context
config
lib/intel_batchbuffer: Add support for custom engine layouts
tests/api_intel_bb: Add misplaced_blitter test
lib/igt_draw.c | 2 +-
lib/intel_batchbuffer.c | 92 +++++++++++++++++++++++++--------
lib/intel_batchbuffer.h | 9 +++-
lib/media_fill.c | 2 +-
tests/i915/api_intel_bb.c | 40 +++++++++++++-
tests/i915/gem_ppgtt.c | 2 +-
tests/i915/gem_pxp.c | 16 +++---
tests/i915/kms_fence_pin_leak.c | 2 +-
tests/i915/perf.c | 18 +++----
9 files changed, 138 insertions(+), 45 deletions(-)
--
2.25.1
More information about the igt-dev
mailing list