Commit 5b31f04a authored by Lionel Landwerlin's avatar Lionel Landwerlin Committed by Tvrtko Ursulin

tests/gem_ctx_sseu: Dynamic (sub)slice programming tests

Verify that the per-context dynamic SSEU uAPI works as expected.

v2: Add subslice tests (Lionel)
    Use MI_SET_PREDICATE for further verification when available (Lionel)

v3: Rename to gem_ctx_rpcs (Lionel)

v4: Update kernel API (Lionel)
    Add 0 value test (Lionel)
    Exercise invalid values (Lionel)

v5: Add perf tests (Lionel)

v6: Add new sysfs entry tests (Lionel)

v7: Test rsvd fields
    Update for kernel series changes

v8: Drop test_no_sseu_support() test (Kelvin)
    Drop drm_intel_*() apis (Chris)

v9: by Chris:
    Drop all do_ioctl/do_ioctl_err()
    Use gem_context_[gs]et_param()
    Use gem_read() instead of mapping memory
    by Lionel:
    Test dynamic sseu on/off more

Tvrtko Ursulin:

 * Various style tweaks and refactorings.
 * New test coverage.

 * Change platform support to just Gen11.
 * Simplify availability test. (Chris Wilson)
 * More invalid pointer tests. (Chris Wilson)

 * Fix MAP_FIXED use (doh!).
 * Fix get/set copy&paste errors.
 * Drop supported platform test. (Chris Wilson)
 * Add mmap__gtt test. (Chris Wilson)

 * Commit message tweaks.
 * Added reset/hang/suspend tests. (Chris Wilson)
 * Assert spinner is busy. (Chris Wilson)
 * Remove some more ABI assumptions. (Chris Wilson)

 * Use default resume time. (Chris Wilson)
 * Trigger hang after rpcs read batch has been submitted. (Chris Wilson)

 * Adjust for uAPI restrictions.

 * Build system changes.

 * Remove all subtests which read the RPCS register. (Joonas Lahtinen)

 * Tidy curly braces. (Joonas Lahtinen)

 * Check flags/rsvd MBZ.

 * Rebase for engine_class/engine_instance uapi change.

 * Fixed
Signed-off-by: Lionel Landwerlin's avatarLionel Landwerlin <>
Signed-off-by: Tvrtko Ursulin's avatarTvrtko Ursulin <>
Reviewed-by: Chris Wilson <> # v14
Reviewed-by: Joonas Lahtinen's avatarJoonas Lahtinen <>
parent 46015e5d
......@@ -99,6 +99,7 @@ gem_close_race_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
gem_close_race_LDADD = $(LDADD) -lpthread
gem_ctx_thrash_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
gem_ctx_thrash_LDADD = $(LDADD) -lpthread
gem_ctx_sseu_LDADD = $(LDADD) $(top_builddir)/lib/
gem_exec_capture_LDADD = $(LDADD) -lz
gem_exec_parallel_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
gem_exec_parallel_LDADD = $(LDADD) -lpthread
......@@ -146,6 +146,9 @@ gem_ctx_isolation_SOURCES = i915/gem_ctx_isolation.c
TESTS_progs += gem_ctx_param
gem_ctx_param_SOURCES = i915/gem_ctx_param.c
TESTS_progs += gem_ctx_sseu
gem_ctx_sseu_SOURCES = i915/gem_ctx_sseu.c
TESTS_progs += gem_ctx_switch
gem_ctx_switch_SOURCES = i915/gem_ctx_switch.c
......@@ -294,11 +294,13 @@ igt_main
/* I915_CONTEXT_PARAM_SSEU tests are located in gem_ctx_sseu.c */
/* NOTE: This testcase intentionally tests for the next free parameter
* to catch ABI extensions. Don't "fix" this testcase without adding all
* the tests for the new param first.
arg.param = I915_CONTEXT_PARAM_PRIORITY + 1;
arg.param = I915_CONTEXT_PARAM_SSEU + 1;
igt_subtest("invalid-param-get") {
arg.ctx_id = ctx;
This diff is collapsed.
......@@ -290,6 +290,14 @@ foreach prog : gem_progs + gen3_progs
test_list += prog
test_executables += executable('gem_ctx_sseu',
join_paths('i915', 'gem_ctx_sseu.c'),
dependencies : test_deps + [ lib_igt_perf ],
install_dir : libexecdir,
install_rpath : libexecdir_rpathdir,
install : true)
test_list += 'gem_ctx_sseu'
test_executables += executable('gem_eio',
join_paths('i915', 'gem_eio.c'),
dependencies : test_deps + [ realtime ],
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment