diff --git a/av1/encoder/nonrd_pickmode.c b/av1/encoder/nonrd_pickmode.c
index c194c6a..efd9f15 100644
--- a/av1/encoder/nonrd_pickmode.c
+++ b/av1/encoder/nonrd_pickmode.c
@@ -1595,6 +1595,15 @@
 #if COLLECT_PICK_MODE_STAT
   ms_stat.num_blocks[bsize]++;
 #endif
+  init_mbmi(mi, DC_PRED, NONE_FRAME, NONE_FRAME, cm);
+  mi->tx_size =
+      AOMMIN(AOMMIN(max_txsize_lookup[bsize],
+                    tx_mode_to_biggest_tx_size[x->tx_mode_search_type]),
+             TX_16X16);
+  memset(mi->inter_tx_size, mi->tx_size, sizeof(mi->inter_tx_size));
+  memset(xd->tx_type_map, DCT_DCT,
+         sizeof(xd->tx_type_map[0]) * ctx->num_4x4_blk);
+  av1_zero(x->blk_skip);
 
   for (int idx = 0; idx < num_inter_modes; ++idx) {
     int rate_mv = 0;
@@ -1618,16 +1627,8 @@
     aom_usec_timer_start(&ms_stat.timer1);
     ms_stat.num_searches[bsize][this_mode]++;
 #endif
-    init_mbmi(mi, this_mode, ref_frame, NONE_FRAME, cm);
-
-    mi->tx_size =
-        AOMMIN(AOMMIN(max_txsize_lookup[bsize],
-                      tx_mode_to_biggest_tx_size[x->tx_mode_search_type]),
-               TX_16X16);
-    memset(mi->inter_tx_size, mi->tx_size, sizeof(mi->inter_tx_size));
-    memset(xd->tx_type_map, DCT_DCT,
-           sizeof(xd->tx_type_map[0]) * ctx->num_4x4_blk);
-    av1_zero(x->blk_skip);
+    mi->mode = this_mode;
+    mi->ref_frame[0] = ref_frame;
 
     if (ref_frame > usable_ref_frame) continue;
     if (skip_ref_find_pred[ref_frame]) continue;
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c
index 577d948..ca06f85 100644
--- a/av1/encoder/rd.c
+++ b/av1/encoder/rd.c
@@ -617,8 +617,8 @@
     av1_fill_mv_costs(cm->fc, cm->cur_frame_force_integer_mv,
                       cm->allow_high_precision_mv, x);
 
-  if (frame_is_intra_only(cm) && cm->allow_screen_content_tools &&
-      !is_stat_generation_stage(cpi)) {
+  if (!cpi->sf.rt_sf.use_nonrd_pick_mode && frame_is_intra_only(cm) &&
+      cm->allow_screen_content_tools && !is_stat_generation_stage(cpi)) {
     int *dvcost[2] = { &cpi->dv_cost[0][MV_MAX], &cpi->dv_cost[1][MV_MAX] };
     av1_build_nmv_cost_table(cpi->dv_joint_cost, dvcost, &cm->fc->ndvc,
                              MV_SUBPEL_NONE);
