/* Wa_1509235366:dg2 */
                wa_write_or(wal, GEN12_GAMCNTRL_CTRL, INVALIDATION_BROADCAST_MODE_DIS |
                            GLOBAL_INVALIDATION_MODE);
-
-               /*
-                * The following are not actually "workarounds" but rather
-                * recommended tuning settings documented in the bspec's
-                * performance guide section.
-                */
-               wa_write_or(wal, XEHP_L3SCQREG7, BLEND_FILL_CACHING_OPT_DIS);
        }
 
        if (IS_DG2_GRAPHICS_STEP(i915, G11, STEP_A0, STEP_B0)) {
        }
 }
 
+/*
+ * The bspec performance guide has recommended MMIO tuning settings.  These
+ * aren't truly "workarounds" but we want to program them with the same
+ * workaround infrastructure to ensure that they're automatically added to
+ * the GuC save/restore lists, re-applied at the right times, and checked for
+ * any conflicting programming requested by real workarounds.
+ *
+ * Programming settings should be added here only if their registers are not
+ * part of an engine's register state context.  If a register is part of a
+ * context, then any tuning settings should be programmed in an appropriate
+ * function invoked by __intel_engine_init_ctx_wa().
+ */
+static void
+add_render_compute_tuning_settings(struct drm_i915_private *i915,
+                                  struct i915_wa_list *wal)
+{
+       if (IS_PONTEVECCHIO(i915)) {
+               wa_write(wal, XEHPC_L3SCRUB,
+                        SCRUB_CL_DWNGRADE_SHARED | SCRUB_RATE_4B_PER_CLK);
+       }
+
+       if (IS_DG2(i915)) {
+               wa_write_or(wal, XEHP_L3SCQREG7, BLEND_FILL_CACHING_OPT_DIS);
+       }
+}
+
 /*
  * The workarounds in this function apply to shared registers in
  * the general render reset domain that aren't tied to a
 {
        struct drm_i915_private *i915 = engine->i915;
 
-       if (IS_PONTEVECCHIO(i915)) {
-               /*
-                * The following is not actually a "workaround" but rather
-                * a recommended tuning setting documented in the bspec's
-                * performance guide section.
-                */
-               wa_write(wal, XEHPC_L3SCRUB, SCRUB_CL_DWNGRADE_SHARED | SCRUB_RATE_4B_PER_CLK);
+       add_render_compute_tuning_settings(i915, wal);
 
+       if (IS_PONTEVECCHIO(i915)) {
                /* Wa_16016694945 */
                wa_masked_en(wal, XEHPC_LNCFMISCCFGREG0, XEHPC_OVRLSCCC);
        }