Hi, While testing the multi-CCS static load balancing, Arshad discovered that the CCS workaround was being applied twice, due to commit [*].
Further discussions with Lucas led to rethinking the purpose of I915_ENGINE_FIRST_RENDER_COMPUTE. This flag was originally introduced to handle platforms with different CCS/RCS setups. However, for all GPUs currently supported by i915, we can assume the presence of at least one RCS engine, so the logic can shift to focus on the first CCS engine. Based on this, the six patches in this series are mostly cleanup, with two main goals: 1. Ensure the CCS engine workaround is applied only once 2. Remove the I915_ENGINE_FIRST_RENDER_COMPUTE flag Thanks, Andi [*] 1bfc03b13752 ("drm/i915: Remove special handling for !RCS_MASK()") Changelog: ========== v1 -> v2 - During workaround set-up, avoid checking for FIRST_RENDER_COMPUTE, but move the logic to the CCS engine section. - Define the FIRST_CCS flag which checks for the CCS engine with the lowest istance number. - Remove the I915_ENGINE_FIRST_RENDER_COMPUTE flag and use FIRST_CCS() instead for everyone using it. Andi Shyti (6): drm/i915: Add the FIRST_CCS() helper drm/i915/gt: Move CCS workaround to the correct section drm/i915/gt: Remove FIRST_RENDER_COMPUTE in workaround drm/i915/gt: Check for the first CCS instead of FIRST_RENDER_COMPUTE drm/i915/gt/uc: Use FIRST_CCS() helper for one-time CCS operations drm/i915/gt: Remove unused I915_ENGINE_FIRST_RENDER_COMPUTE flag drivers/gpu/drm/i915/gt/intel_engine_cs.c | 4 -- drivers/gpu/drm/i915/gt/intel_engine_types.h | 3 +- .../drm/i915/gt/intel_execlists_submission.c | 2 +- drivers/gpu/drm/i915/gt/intel_workarounds.c | 72 +++++++++---------- drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 3 +- .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 2 +- drivers/gpu/drm/i915/i915_drv.h | 3 + 7 files changed, 41 insertions(+), 48 deletions(-) -- 2.47.2