diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 375053f..d157685 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -1719,7 +1719,7 @@
   av1_init_motion_fpf(&mv_search_params->search_site_cfg[SS_CFG_FPF],
                       fpf_y_stride);
 
-  if (cpi->sf.tpl_sf.search_method == FAST_DIAMOND) {
+  if (cpi->sf.tpl_sf.search_method == FAST_BIGDIA) {
     av1_init_motion_compensation_bigdia(
         &mv_search_params->search_site_cfg[SS_CFG_TPL_SRC], y_stride);
     av1_init_motion_compensation_bigdia(
diff --git a/av1/encoder/firstpass.c b/av1/encoder/firstpass.c
index d1e415e..1401963 100644
--- a/av1/encoder/firstpass.c
+++ b/av1/encoder/firstpass.c
@@ -234,7 +234,7 @@
   FULLPEL_MOTION_SEARCH_PARAMS ms_params;
   av1_make_default_fullpel_ms_params(&ms_params, cpi, x, bsize, ref_mv,
                                      first_pass_search_sites,
-                                     fine_search_interval, 0);
+                                     fine_search_interval);
   ms_params.search_method = NSTEP;
 
   FULLPEL_MV this_best_mv;
diff --git a/av1/encoder/mcomp.c b/av1/encoder/mcomp.c
index bdbff81..9767338 100644
--- a/av1/encoder/mcomp.c
+++ b/av1/encoder/mcomp.c
@@ -80,8 +80,7 @@
                                         const MACROBLOCK *x, BLOCK_SIZE bsize,
                                         const MV *ref_mv,
                                         const search_site_config *search_sites,
-                                        int fine_search_interval,
-                                        int fast_dia_search_level) {
+                                        int fine_search_interval) {
   const MV_SPEED_FEATURES *mv_sf = &cpi->sf.mv_sf;
 
   // High level params
@@ -106,7 +105,6 @@
   ms_params->prune_mesh_search = mv_sf->prune_mesh_search;
   ms_params->run_mesh_search = 0;
   ms_params->fine_search_interval = fine_search_interval;
-  ms_params->fast_dia_search_level = fast_dia_search_level;
 
   ms_params->is_intra_mode = 0;
 
@@ -1454,14 +1452,18 @@
                            const FULLPEL_MOTION_SEARCH_PARAMS *ms_params,
                            const int search_step, const int do_init_search,
                            int *cost_list, FULLPEL_MV *best_mv) {
-  if (ms_params->fast_dia_search_level)
-    return bigdia_search_level1(start_mv, ms_params,
-                                AOMMAX(MAX_MVSEARCH_STEPS - 3, search_step),
-                                do_init_search, cost_list, best_mv);
-  else
-    return bigdia_search(start_mv, ms_params,
-                         AOMMAX(MAX_MVSEARCH_STEPS - 2, search_step),
-                         do_init_search, cost_list, best_mv);
+  return bigdia_search(start_mv, ms_params,
+                       AOMMAX(MAX_MVSEARCH_STEPS - 2, search_step),
+                       do_init_search, cost_list, best_mv);
+}
+
+static int fast_bigdia_search(const FULLPEL_MV start_mv,
+                              const FULLPEL_MOTION_SEARCH_PARAMS *ms_params,
+                              const int search_step, const int do_init_search,
+                              int *cost_list, FULLPEL_MV *best_mv) {
+  return bigdia_search_level1(start_mv, ms_params,
+                              AOMMAX(MAX_MVSEARCH_STEPS - 3, search_step),
+                              do_init_search, cost_list, best_mv);
 }
 
 static int diamond_search_sad(FULLPEL_MV start_mv,
@@ -1888,6 +1890,10 @@
   }
 
   switch (search_method) {
+    case FAST_BIGDIA:
+      var = fast_bigdia_search(start_mv, ms_params, step_param, 0, cost_list,
+                               best_mv);
+      break;
     case FAST_DIAMOND:
       var = fast_dia_search(start_mv, ms_params, step_param, 0, cost_list,
                             best_mv);
diff --git a/av1/encoder/mcomp.h b/av1/encoder/mcomp.h
index d4e2d6f..7cef4fc 100644
--- a/av1/encoder/mcomp.h
+++ b/av1/encoder/mcomp.h
@@ -136,7 +136,8 @@
   BIGDIA = 3,
   SQUARE = 4,
   FAST_HEX = 5,
-  FAST_DIAMOND = 6
+  FAST_DIAMOND = 6,
+  FAST_BIGDIA = 7,
 } UENUM1BYTE(SEARCH_METHODS);
 
 // This struct holds fullpixel motion search parameters that should be constant
@@ -170,11 +171,6 @@
 
   // For calculating mv cost
   MV_COST_PARAMS mv_cost_params;
-
-  // Search level flag for FAST_DIAMOND search method.
-  // 0 : Number of search steps 2
-  // 1 : Number of search steps 3
-  int fast_dia_search_level;
 } FULLPEL_MOTION_SEARCH_PARAMS;
 
 void av1_make_default_fullpel_ms_params(FULLPEL_MOTION_SEARCH_PARAMS *ms_params,
@@ -182,8 +178,7 @@
                                         const MACROBLOCK *x, BLOCK_SIZE bsize,
                                         const MV *ref_mv,
                                         const search_site_config *search_sites,
-                                        int fine_search_interval,
-                                        int fast_dia_search_level);
+                                        int fine_search_interval);
 
 // Sets up configs for fullpixel diamond search
 void av1_init_dsmotion_compensation(search_site_config *cfg, int stride);
diff --git a/av1/encoder/motion_search_facade.c b/av1/encoder/motion_search_facade.c
index 809c08b..2db1c89 100644
--- a/av1/encoder/motion_search_facade.c
+++ b/av1/encoder/motion_search_facade.c
@@ -185,7 +185,7 @@
       &mv_search_params->search_site_cfg[SS_CFG_SRC];
   FULLPEL_MOTION_SEARCH_PARAMS full_ms_params;
   av1_make_default_fullpel_ms_params(&full_ms_params, cpi, x, bsize, &ref_mv,
-                                     src_search_sites, fine_search_interval, 0);
+                                     src_search_sites, fine_search_interval);
 
   switch (mbmi->motion_mode) {
     case SIMPLE_TRANSLATION: {
@@ -421,7 +421,7 @@
     FULLPEL_MOTION_SEARCH_PARAMS full_ms_params;
     av1_make_default_fullpel_ms_params(&full_ms_params, cpi, x, bsize,
                                        &ref_mv[id].as_mv, NULL,
-                                       /*fine_search_interval=*/0, 0);
+                                       /*fine_search_interval=*/0);
 
     av1_set_ms_compound_refs(&full_ms_params.ms_buffers, second_pred, mask,
                              mask_stride, id);
@@ -547,7 +547,7 @@
   FULLPEL_MOTION_SEARCH_PARAMS full_ms_params;
   av1_make_default_fullpel_ms_params(&full_ms_params, cpi, x, bsize,
                                      &ref_mv.as_mv, NULL,
-                                     /*fine_search_interval=*/0, 0);
+                                     /*fine_search_interval=*/0);
 
   av1_set_ms_compound_refs(&full_ms_params.ms_buffers, second_pred, mask,
                            mask_stride, ref_idx);
@@ -765,7 +765,7 @@
   const int fine_search_interval = use_fine_search_interval(cpi);
   FULLPEL_MOTION_SEARCH_PARAMS full_ms_params;
   av1_make_default_fullpel_ms_params(&full_ms_params, cpi, x, bsize, &ref_mv,
-                                     src_search_sites, fine_search_interval, 0);
+                                     src_search_sites, fine_search_interval);
 
   var = av1_full_pixel_search(start_mv, &full_ms_params, step_param,
                               cond_cost_list(cpi, cost_list),
diff --git a/av1/encoder/nonrd_pickmode.c b/av1/encoder/nonrd_pickmode.c
index 93a0c82..e2ccf6d 100644
--- a/av1/encoder/nonrd_pickmode.c
+++ b/av1/encoder/nonrd_pickmode.c
@@ -182,7 +182,7 @@
   FULLPEL_MOTION_SEARCH_PARAMS full_ms_params;
   av1_make_default_fullpel_ms_params(&full_ms_params, cpi, x, bsize, &center_mv,
                                      src_search_sites,
-                                     /*fine_search_interval=*/0, 0);
+                                     /*fine_search_interval=*/0);
 
   av1_full_pixel_search(start_mv, &full_ms_params, step_param,
                         cond_cost_list(cpi, cost_list), &tmp_mv->as_fullmv,
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 2875e6d..4b77551 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -2963,7 +2963,7 @@
       &cpi->mv_search_params.search_site_cfg[SS_CFG_LOOKAHEAD];
   av1_make_default_fullpel_ms_params(&fullms_params, cpi, x, bsize,
                                      &dv_ref.as_mv, lookahead_search_sites,
-                                     /*fine_search_interval=*/0, 0);
+                                     /*fine_search_interval=*/0);
   fullms_params.is_intra_mode = 1;
 
   for (enum IntrabcMotionDirection dir = IBC_MOTION_ABOVE;
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index fdf6107..c58eca9 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -563,8 +563,7 @@
 
     sf->tpl_sf.prune_starting_mv = 2;
     sf->tpl_sf.subpel_force_stop = HALF_PEL;
-    sf->tpl_sf.search_method = FAST_DIAMOND;
-    sf->tpl_sf.fast_dia_search_level = 1;
+    sf->tpl_sf.search_method = FAST_BIGDIA;
 
     sf->tx_sf.tx_type_search.winner_mode_tx_type_pruning = 1;
     sf->tx_sf.tx_type_search.fast_intra_tx_type_search = 1;
@@ -844,8 +843,6 @@
     sf->rd_sf.optimize_coefficients = NO_TRELLIS_OPT;
     sf->rd_sf.simple_model_rd_from_var = 1;
 
-    sf->tpl_sf.search_method = FAST_DIAMOND;
-
     sf->lpf_sf.cdef_pick_method = CDEF_PICK_FROM_Q;
     sf->lpf_sf.lpf_pick = LPF_PICK_FROM_Q;
 
@@ -942,7 +939,6 @@
   tpl_sf->subpel_force_stop = EIGHTH_PEL;
   tpl_sf->search_method = NSTEP;
   tpl_sf->disable_filtered_key_tpl = 0;
-  tpl_sf->fast_dia_search_level = 0;
 }
 
 static AOM_INLINE void init_gm_sf(GLOBAL_MOTION_SPEED_FEATURES *gm_sf) {
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index a2d24fb..436d639 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -345,11 +345,6 @@
 
   // Not run TPL for filtered Key frame.
   int disable_filtered_key_tpl;
-
-  // Search level flag for FAST_DIAMOND search method.
-  // 0 : Number of search steps 2
-  // 1 : Number of search steps 3
-  int fast_dia_search_level;
 } TPL_SPEED_FEATURES;
 
 typedef struct GLOBAL_MOTION_SPEED_FEATURES {
diff --git a/av1/encoder/temporal_filter.c b/av1/encoder/temporal_filter.c
index 5a007b8..9ce3306 100644
--- a/av1/encoder/temporal_filter.c
+++ b/av1/encoder/temporal_filter.c
@@ -129,7 +129,7 @@
 
   av1_make_default_fullpel_ms_params(&full_ms_params, cpi, mb, block_size,
                                      &baseline_mv, &search_site_cfg,
-                                     /*fine_search_interval=*/0, 0);
+                                     /*fine_search_interval=*/0);
   full_ms_params.run_mesh_search = 1;
   full_ms_params.search_method = full_search_method;
   full_ms_params.mv_cost_params.mv_cost_type = mv_cost_type;
@@ -182,7 +182,7 @@
         av1_make_default_fullpel_ms_params(&full_ms_params, cpi, mb,
                                            subblock_size, &baseline_mv,
                                            &search_site_cfg,
-                                           /*fine_search_interval=*/0, 0);
+                                           /*fine_search_interval=*/0);
         full_ms_params.run_mesh_search = 1;
         full_ms_params.search_method = full_search_method;
         full_ms_params.mv_cost_params.mv_cost_type = mv_cost_type;
diff --git a/av1/encoder/tpl_model.c b/av1/encoder/tpl_model.c
index 013d034..84975b2 100644
--- a/av1/encoder/tpl_model.c
+++ b/av1/encoder/tpl_model.c
@@ -165,7 +165,7 @@
 
   // When motion search method is FAST_DIAMOND retrive
   // search_site_cfg from corresponding buffers.
-  if (tpl_sf->search_method == FAST_DIAMOND) {
+  if (tpl_sf->search_method == FAST_BIGDIA) {
     search_site_cfg = &cpi->mv_search_params.search_site_cfg[SS_CFG_TPL_SRC];
     if (search_site_cfg->stride != stride_ref)
       search_site_cfg =
@@ -179,9 +179,9 @@
   assert(search_site_cfg->stride == stride_ref);
 
   FULLPEL_MOTION_SEARCH_PARAMS full_ms_params;
-  av1_make_default_fullpel_ms_params(
-      &full_ms_params, cpi, x, bsize, &center_mv, search_site_cfg,
-      /*fine_search_interval=*/0, cpi->sf.tpl_sf.fast_dia_search_level);
+  av1_make_default_fullpel_ms_params(&full_ms_params, cpi, x, bsize, &center_mv,
+                                     search_site_cfg,
+                                     /*fine_search_interval=*/0);
   full_ms_params.search_method = tpl_sf->search_method;
 
   av1_full_pixel_search(start_mv, &full_ms_params, step_param,
