drm/i915: Re-expose SINGLE_TIMELINE flags for context creation
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 21 May 2019 21:11:28 +0000 (22:11 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 22 May 2019 07:40:35 +0000 (08:40 +0100)
The SINGLE_TIMELINE flag can be used to create a context such that all
engine instances within that context share a common timeline. This can
be useful for mixing operations between real and virtual engines, or
when using a composite context for a single client API context.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190521211134.16117-4-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem_context.c
include/uapi/drm/i915_drm.h

index d38d8a45a5cfb0f53093775c059396696d5f40bb..d391d474820f634ac3997c04e4dffc8e1ede177e 100644 (file)
@@ -96,8 +96,6 @@
 #include "i915_trace.h"
 #include "i915_user_extensions.h"
 
-#define I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE (1 << 1)
-
 #define ALL_L3_SLICES(dev) (1 << NUM_L3_SLICES(dev)) - 1
 
 static struct i915_global_gem_context {
@@ -505,8 +503,6 @@ i915_gem_create_context(struct drm_i915_private *dev_priv, unsigned int flags)
 
        lockdep_assert_held(&dev_priv->drm.struct_mutex);
 
-       BUILD_BUG_ON(I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE &
-                    ~I915_CONTEXT_CREATE_FLAGS_UNKNOWN);
        if (flags & I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE &&
            !HAS_EXECLISTS(dev_priv))
                return ERR_PTR(-EINVAL);
index 82bd488ed0d1a4c9e860f921ea6adb9b26f7fa02..957ba8e60e025413ae15a320b4f10e3fd112f014 100644 (file)
@@ -1469,8 +1469,9 @@ struct drm_i915_gem_context_create_ext {
        __u32 ctx_id; /* output: id of new context*/
        __u32 flags;
 #define I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS       (1u << 0)
+#define I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE      (1u << 1)
 #define I915_CONTEXT_CREATE_FLAGS_UNKNOWN \
-       (-(I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS << 1))
+       (-(I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE << 1))
        __u64 extensions;
 };