Hi Chris, > - /* Check results match the legacy GET_PARAM (where we can). */ > + /* Confirm the individual engines exist with EXECBUFFER2 */ > for (i = 0; i < engines->num_engines; i++) { > struct drm_i915_engine_info *engine = > (struct drm_i915_engine_info *)&engines->engines[i]; > + I915_DEFINE_CONTEXT_PARAM_ENGINES(p_engines, 1) = { > + .engines = { engine->engine } > + }; > + struct drm_i915_gem_context_param param = { > + .param = I915_CONTEXT_PARAM_ENGINES, > + .value = to_user_pointer(&p_engines), > + .size = sizeof(p_engines), > + }; > + > + struct drm_i915_gem_exec_object2 obj = {}; > + struct drm_i915_gem_execbuffer2 execbuf = { > + .buffers_ptr = to_user_pointer(&obj), > + .buffer_count = 1, > + }; > > igt_debug("%u: class=%u instance=%u flags=%llx capabilities=%llx\n", > i, > @@ -689,6 +713,15 @@ static void engines(int fd) > engine->engine.engine_instance, > engine->flags, > engine->capabilities); > + gem_context_set_param(fd, ¶m); > + igt_assert_eq(__gem_execbuf(fd, &execbuf), -ENOENT); > + } > + gem_context_reset_engines(fd, 0); > + > + /* Check results match the legacy GET_PARAM (where we can). */ > + for (i = 0; i < engines->num_engines; i++) { > + struct drm_i915_engine_info *engine = > + (struct drm_i915_engine_info *)&engines->engines[i]; I would have liked it with one single for loop, perhaps resetting engines individually. But this works, as well and I'm not strong with this: Reviewed-by: Andi Shyti <andi.shyti@xxxxxxxxx> Andi _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx