diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index bfbf417..221e9d6 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -1258,6 +1258,7 @@
       sf->lpf_sf.cdef_pick_method = CDEF_PICK_FROM_Q;
       sf->rt_sf.check_only_zero_zeromv_on_large_blocks = true;
     }
+    if (speed == 8) sf->rt_sf.prefer_large_partition_blocks = 2;
     if (speed >= 8) {
       sf->rt_sf.use_nonrd_filter_search = 0;
       sf->rt_sf.tx_size_level_based_on_qstep = 1;
@@ -1294,6 +1295,7 @@
       sf->rt_sf.short_circuit_low_temp_var = 0;
       sf->rt_sf.use_nonrd_altref_frame = 1;
     }
+    if (speed == 8) sf->rt_sf.prefer_large_partition_blocks = 3;
     if (speed >= 8) sf->rt_sf.tx_size_level_based_on_qstep = 2;
     if (speed >= 9) {
       sf->rt_sf.gf_length_lvl = 1;
@@ -1323,7 +1325,6 @@
     }
   }
   if (!is_720p_or_larger) {
-    if (speed == 8) sf->rt_sf.prefer_large_partition_blocks = 2;
     if (speed >= 9) {
       sf->rt_sf.force_large_partition_blocks_intra = 1;
     }
@@ -1680,7 +1681,7 @@
     sf->rt_sf.sse_early_term_inter_search = EARLY_TERM_IDX_3;
     sf->rt_sf.screen_content_cdef_filter_qindex_thresh = 20;
     sf->rt_sf.estimate_motion_for_var_based_partition = 0;
-    sf->rt_sf.prefer_large_partition_blocks = 3;
+    sf->rt_sf.prefer_large_partition_blocks = 4;
     sf->rt_sf.skip_intra_pred = 2;
     sf->rt_sf.var_part_split_threshold_shift = 9;
     for (int i = 0; i < BLOCK_SIZES; ++i)
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index 3c53b53..19b190a 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -1457,7 +1457,7 @@
   int check_scene_detection;
 
   // For nonrd mode: Prefer larger partition blks in variance based partitioning
-  // 0: disabled, 1-2: increasing aggressiveness
+  // 0: disabled, 1-4: increasing aggressiveness
   int prefer_large_partition_blocks;
 
   // uses results of temporal noise estimate
diff --git a/av1/encoder/var_based_part.c b/av1/encoder/var_based_part.c
index 75533bd..c5e2edd 100644
--- a/av1/encoder/var_based_part.c
+++ b/av1/encoder/var_based_part.c
@@ -429,7 +429,7 @@
 }
 
 static AOM_INLINE void tune_thresh_based_on_qindex_window(
-    int qindex, int th, int64_t thresholds[]) {
+    int qindex, int th, int source_sad, int ag_idx, int64_t thresholds[]) {
   const int win = 45;
   double weight;
 
@@ -443,8 +443,9 @@
       (int)((1 - weight) * (thresholds[1] << 1) + weight * thresholds[1]);
   thresholds[2] =
       (int)((1 - weight) * (thresholds[2] << 1) + weight * thresholds[2]);
+  const int fac = (!ag_idx && source_sad != kLowSad) ? 1 : 2;
   thresholds[3] =
-      (int)((1 - weight) * (thresholds[3] << 2) + weight * thresholds[3]);
+      (int)((1 - weight) * (thresholds[3] << fac) + weight * thresholds[3]);
 }
 
 static AOM_INLINE void set_vbp_thresholds(AV1_COMP *cpi, int64_t thresholds[],
@@ -568,7 +569,7 @@
     thresholds[2] = (5 * threshold_base) >> 1;
   }
   // Tune thresholds less or more aggressively to prefer larger partitions
-  if (cpi->sf.rt_sf.prefer_large_partition_blocks >= 3) {
+  if (cpi->sf.rt_sf.prefer_large_partition_blocks >= 4) {
     double weight;
     const int win = 20;
     if (current_qindex < QINDEX_LARGE_BLOCK_THR - win)
@@ -618,8 +619,9 @@
       thresholds[3] = INT32_MAX;
     }
   } else if (cpi->sf.rt_sf.prefer_large_partition_blocks >= 2) {
-    tune_thresh_based_on_qindex_window(current_qindex, QINDEX_LARGE_BLOCK_THR,
-                                       thresholds);
+    tune_thresh_based_on_qindex_window(
+        current_qindex, QINDEX_LARGE_BLOCK_THR, source_sad_nonrd,
+        cpi->sf.rt_sf.prefer_large_partition_blocks - 2, thresholds);
   } else if (cpi->sf.rt_sf.prefer_large_partition_blocks >= 1) {
     thresholds[3] <<= 2;
     thresholds[1] <<= (source_sad_nonrd == kLowSad) ? 1 : 0;
