History

drm/i915: Drop the CONTEXT_CLONE API (v2)

This API allows one context to grab bits out of another context upon creation. It can be used as a short-cut for setparam(getparam()) for things like I915_CONTEXT_PARAM_VM. However, it's never been used by any real userspace. It's used by a few IGT tests and that's it. Since it doesn't add any real value (most of the stuff you can CLONE you can copy in other ways), drop it. There is one thing that this API allows you to clone which you cannot clone via getparam/setparam: timelines. However, timelines are an implementation detail of i915 and not really something that needs to be exposed to userspace. Also, sharing timelines between contexts isn't obviously useful and supporting it has the potential to complicate i915 internally. It also doesn't add any functionality that the client can't get in other ways. If a client really wants a shared timeline, they can use a syncobj and set it as an in and out fence on every submit. v2 (Jason Ekstrand): - More detailed commit message

Jason Ekstrand committed 5 years ago

Commit 4a766ae1 parent 8cc256a4 files · +6 −240Browse files

Showing the changes to include/uapi (1 of 4 files). Show all

Unified · Split

include/uapi/drm/i915_drm.h+3−13
@@ -2006,20 +2006,10 @@ struct drm_i915_gem_context_create_ext_setparam { · 2005 unmodified lines
2006 struct drm_i915_gem_context_param param;2006 struct drm_i915_gem_context_param param;
2007};2007};
2008 2008
2009struct drm_i915_gem_context_create_ext_clone {2009/* This API has been removed. On the off chance someone somewhere has
2010 * attempted to use it, never re-use this extension number.
2011 */
2010#define I915_CONTEXT_CREATE_EXT_CLONE 12012#define I915_CONTEXT_CREATE_EXT_CLONE 1
2011 struct i915_user_extension base;
2012 __u32 clone_id;
2013 __u32 flags;
2014#define I915_CONTEXT_CLONE_ENGINES (1u << 0)
2015#define I915_CONTEXT_CLONE_FLAGS (1u << 1)
2016#define I915_CONTEXT_CLONE_SCHEDATTR (1u << 2)
2017#define I915_CONTEXT_CLONE_SSEU (1u << 3)
2018#define I915_CONTEXT_CLONE_TIMELINE (1u << 4)
2019#define I915_CONTEXT_CLONE_VM (1u << 5)
2020#define I915_CONTEXT_CLONE_UNKNOWN -(I915_CONTEXT_CLONE_VM << 1)
2021 __u64 rsvd;
2022};
2023 2013
2024struct drm_i915_gem_context_destroy {2014struct drm_i915_gem_context_destroy {
2025 __u32 ctx_id;2015 __u32 ctx_id;