Decide whether or not we need to disable arbitration within user batches
based on our intel_engine_has_preemption() flag.

Signed-off-by: Chris Wilson <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
Cc: Mika Kuoppala <[email protected]>
---
 drivers/gpu/drm/i915/gt/intel_lrc.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 929f6bae4eba..983e0e6e909b 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -3263,9 +3263,9 @@ static void execlists_reset_finish(struct intel_engine_cs 
*engine)
                  atomic_read(&execlists->tasklet.count));
 }
 
-static int gen8_emit_bb_start(struct i915_request *rq,
-                             u64 offset, u32 len,
-                             const unsigned int flags)
+static int gen8_emit_bb_start_noarb(struct i915_request *rq,
+                                   u64 offset, u32 len,
+                                   const unsigned int flags)
 {
        u32 *cs;
 
@@ -3299,7 +3299,7 @@ static int gen8_emit_bb_start(struct i915_request *rq,
        return 0;
 }
 
-static int gen9_emit_bb_start(struct i915_request *rq,
+static int gen8_emit_bb_start(struct i915_request *rq,
                              u64 offset, u32 len,
                              const unsigned int flags)
 {
@@ -3774,6 +3774,11 @@ void intel_execlists_set_default_submission(struct 
intel_engine_cs *engine)
 
        if (INTEL_GEN(engine->i915) >= 12)
                engine->flags |= I915_ENGINE_HAS_RELATIVE_MMIO;
+
+       if (intel_engine_has_preemption(engine))
+               engine->emit_bb_start = gen8_emit_bb_start;
+       else
+               engine->emit_bb_start = gen8_emit_bb_start_noarb;
 }
 
 static void execlists_shutdown(struct intel_engine_cs *engine)
@@ -3827,10 +3832,6 @@ logical_ring_default_vfuncs(struct intel_engine_cs 
*engine)
                 * until a more refined solution exists.
                 */
        }
-       if (IS_GEN(engine->i915, 8))
-               engine->emit_bb_start = gen8_emit_bb_start;
-       else
-               engine->emit_bb_start = gen9_emit_bb_start;
 }
 
 static inline void
-- 
2.24.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to