Quoting Tvrtko Ursulin (2019-05-23 09:46:08) > > On 23/05/2019 09:06, Chris Wilson wrote: > > const struct intel_execution_engine2 intel_execution_engines2[] = { > > - { "rcs0", I915_ENGINE_CLASS_RENDER, 0 }, > > - { "bcs0", I915_ENGINE_CLASS_COPY, 0 }, > > - { "vcs0", I915_ENGINE_CLASS_VIDEO, 0 }, > > - { "vcs1", I915_ENGINE_CLASS_VIDEO, 1 }, > > - { "vcs2", I915_ENGINE_CLASS_VIDEO, 2 }, > > - { "vecs0", I915_ENGINE_CLASS_VIDEO_ENHANCE, 0 }, > > + { "rcs0", I915_ENGINE_CLASS_RENDER, 0, I915_EXEC_RENDER }, > > + { "bcs0", I915_ENGINE_CLASS_COPY, 0, I915_EXEC_BLT }, > > + { "vcs0", I915_ENGINE_CLASS_VIDEO, 0, I915_EXEC_BSD | I915_EXEC_BSD_RING1 }, > > execbuf will reject this on single vcs parts. :( Am I not seeing some > place where you fudge it into compliance? if (user_ring_id == I915_EXEC_BSD && HAS_ENGINE(dev_priv, VCS1)) { unsigned int bsd_idx = args->flags & I915_EXEC_BSD_MASK; if (bsd_idx == I915_EXEC_BSD_DEFAULT) { bsd_idx = gen8_dispatch_bsd_engine(dev_priv, file); } else if (bsd_idx >= I915_EXEC_BSD_RING1 && bsd_idx <= I915_EXEC_BSD_RING2) { bsd_idx >>= I915_EXEC_BSD_SHIFT; bsd_idx--; } else { DRM_DEBUG("execbuf with unknown bsd ring: %u\n", bsd_idx); return NULL; } engine = dev_priv->engine[_VCS(bsd_idx)]; } else { engine = dev_priv->engine[user_ring_map[user_ring_id]]; } Looks ok to me... I was trying to double check but dif didn't boot on bsw. Sigh. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx