On Tue, May 25, 2021 at 10:52:01AM +0100, Tvrtko Ursulin wrote:
On 06/05/2021 20:14, Matthew Brost wrote:
Disable semaphores when using GuC scheduling as semaphores are broken in the current GuC firmware.
What is "current"? Given that the patch itself is like year and a half old.
Stale comment. Semaphore work with the firmware we just haven't enabled them in the i915 with GuC submission as this an optimization and not required for functionality.
Matt
Regards,
Tvrtko
Cc: John Harrison john.c.harrison@intel.com Signed-off-by: Matthew Brost matthew.brost@intel.com
drivers/gpu/drm/i915/gem/i915_gem_context.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c index 993faa213b41..d30260ffe2a7 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_context.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c @@ -230,7 +230,8 @@ static void intel_context_set_gem(struct intel_context *ce, ce->timeline = intel_timeline_get(ctx->timeline); if (ctx->sched.priority >= I915_PRIORITY_NORMAL &&
intel_engine_has_timeslices(ce->engine))
intel_engine_has_timeslices(ce->engine) &&
__set_bit(CONTEXT_USE_SEMAPHORES, &ce->flags); intel_context_set_watchdog_us(ce, ctx->watchdog.timeout_us);intel_engine_has_semaphores(ce->engine))
@@ -1939,7 +1940,8 @@ static int __apply_priority(struct intel_context *ce, void *arg) if (!intel_engine_has_timeslices(ce->engine)) return 0;
- if (ctx->sched.priority >= I915_PRIORITY_NORMAL)
- if (ctx->sched.priority >= I915_PRIORITY_NORMAL &&
intel_context_set_use_semaphores(ce); else intel_context_clear_use_semaphores(ce);intel_engine_has_semaphores(ce->engine))