--- calcs/dcn_calc_auto.c +++ dcn_calc_auto.fixed.c @@ -175,16 +175,16 @@ for (k = 0; k <= v->number_of_active_planes - 1; k++) { v->read_bandwidth[k] = v->swath_width_ysingle_dpp[k] * (dcn_bw_ceil2(v->byte_per_pixel_in_dety[k], 1.0) * v->v_ratio[k] +dcn_bw_ceil2(v->byte_per_pixel_in_detc[k], 2.0) / 2.0 * v->v_ratio[k] / 2) / (v->htotal[k] / v->pixel_clock[k]); if (v->dcc_enable[k] == dcn_bw_yes) { - v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 256); + v->read_bandwidth[k] = v->read_bandwidth[k] * (1.0 + 1.0 / 256.0); } if (v->pte_enable == dcn_bw_yes && v->source_scan[k] != dcn_bw_hor && (v->source_surface_mode[k] == dcn_bw_sw_4_kb_s || v->source_surface_mode[k] == dcn_bw_sw_4_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d || v->source_surface_mode[k] == dcn_bw_sw_4_kb_d_x)) { - v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 64); + v->read_bandwidth[k] = v->read_bandwidth[k] * (1.0 + 1.0 / 64.0); } else if (v->pte_enable == dcn_bw_yes && v->source_scan[k] == dcn_bw_hor && (v->source_pixel_format[k] == dcn_bw_rgb_sub_64 || v->source_pixel_format[k] == dcn_bw_rgb_sub_32) && (v->source_surface_mode[k] == dcn_bw_sw_64_kb_s || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_s_x || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_t || v->source_surface_mode[k] == dcn_bw_sw_64_kb_d_x)) { - v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 256); + v->read_bandwidth[k] = v->read_bandwidth[k] * (1.0 + 1.0 / 256.0); } else if (v->pte_enable == dcn_bw_yes) { - v->read_bandwidth[k] = v->read_bandwidth[k] * (1 + 1 / 512); + v->read_bandwidth[k] = v->read_bandwidth[k] * (1.0 + 1.0 / 512.0); } v->total_read_bandwidth_consumed_gbyte_per_second = v->total_read_bandwidth_consumed_gbyte_per_second + v->read_bandwidth[k] / 1000.0; }