Rate cost calculation fixing in filter intra search

While use_filter_intra is 0, rate cost calculation is modified
to call intra_mode_info_cost_y(), which is made consistent with
rate cost calculation in filter intra search (handle_filter_
intra_mode()). This slightly changes rate cost in few cases
since intra_mode_info_cost_y() includes more cost (e.g. the case
when palette mode is also allowed). Borg test at speed 1 didn't
show much BDRate changes.
               avg_psnr: ovr_psnr: ssim:
midres2:        0.002     0.003    0.004
screen content: 0.009     0.023    0.014

STATS_CHANGED

Change-Id: If0e40e56d343dca3131dbbc5dedff87552a5dbf9
diff --git a/av1/encoder/intra_mode_search.c b/av1/encoder/intra_mode_search.c
index e5df7e5..f903731 100644
--- a/av1/encoder/intra_mode_search.c
+++ b/av1/encoder/intra_mode_search.c
@@ -1020,6 +1020,7 @@
   }
 }
 
+// Evaluate a given luma intra-mode in inter frames.
 int av1_handle_intra_y_mode(IntraModeSearchState *intra_search_state,
                             const AV1_COMP *cpi, MACROBLOCK *x,
                             BLOCK_SIZE bsize, unsigned int ref_frame_cost,
@@ -1082,8 +1083,12 @@
     int try_filter_intra = 1;
     int64_t best_rd_so_far = INT64_MAX;
     if (rd_stats_y->rate != INT_MAX) {
-      const int tmp_rate = rd_stats_y->rate +
-                           mode_costs->filter_intra_cost[bsize][0] + mode_cost;
+      // best_rd_so_far is the rdcost of DC_PRED without using filter_intra.
+      // Later, in filter intra search, best_rd_so_far is used for comparison.
+      mbmi->filter_intra_mode_info.use_filter_intra = 0;
+      const int tmp_rate =
+          rd_stats_y->rate +
+          intra_mode_info_cost_y(cpi, x, mbmi, bsize, mode_cost);
       best_rd_so_far = RDCOST(x->rdmult, tmp_rate, rd_stats_y->dist);
       try_filter_intra = (best_rd_so_far / 2) <= best_rd;
     }