微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt6735 玩游戏雷霆战机时发生卡顿的问题

mt6735 玩游戏雷霆战机时发生卡顿的问题

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
玩游戏雷霆战机,有可能发生声音和画面卡顿的情况。
[SOLUTION]
1、请关闭Settings --> Sound & notification --> Sound enhancement中的BesLoudness后测试是否还会卡顿。
如果不再卡顿,则认为是DRC导致。
MBDRC(Multi-Band DRC)导致雷霆战机游戏卡顿的原因是:MBDRC运算量大,并且是track base,每个AudIOTrack都要进行DRC处理。在雷霆战机游戏的过程中,最多有20多个AudioTrack同时处于active状态并进行MBDRC运算,有可能造成CPU loading过大的情况,导致卡顿。
建议采用如下两种work around改法,任选其一:
a、Ringtone维持multi-band DRC,Music调整为1-band DRC。
请按照如下方法修改代码mtkAudioLoud.cpp:
KK:
mediatek\external\AudioComponentEngine\MtkAudioLoud.cpp
L:
vendor\mediatek\proprietary\external\AudioComponentEngine\MtkAudioLoud.cpp
void MtkAudioLoud::copyParam(void)
#if defined(MTK_AUDIO_BLOUD_CUSTOMPARAMETER_V5)
int dCheckStatus;
mInitParam.pMode_Param->pCustom_Param->WS_Gain_Max = mAudioParam.bes_loudness_WS_Gain_Max;
mInitParam.pMode_Param->pCustom_Param->WS_Gain_Min = mAudioParam.bes_loudness_WS_Gain_Min;
mInitParam.pMode_Param->pCustom_Param->FiLTEr_First = mAudioParam.bes_loudness_Filter_First;
mInitParam.pMode_Param->pCustom_Param->Num_Bands = mAudioParam.bes_loudness_Num_Bands;
mInitParam.pMode_Param->pCustom_Param->Flt_Bank_Order = mAudioParam.bes_loudness_Flt_Bank_Order;
mInitParam.pMode_Param->pCustom_Param->DRC_Delay = mAudioParam.DRC_Delay;
mInitParam.pMode_Param->pCustom_Param->Lim_Th = mAudioParam.Lim_Th;
mInitParam.pMode_Param->pCustom_Param->Lim_Gn = mAudioParam.Lim_Gn;
mInitParam.pMode_Param->pCustom_Param->Lim_Const = mAudioParam.Lim_Const;
mInitParam.pMode_Param->pCustom_Param->Lim_Delay = mAudioParam.Lim_Delay;
mInitParam.pMode_Param->pCustom_Param->Sep_LR_Filter = mIsSepLR_Filter =
mAudioParam.bes_loudness_Sep_LR_Filter;
meMCPy((void *)mInitParam.pMode_Param->pCustom_Param->Att_Time, (void *)mAudioParam.Att_Time, 48 *
sizeof(unsigned int));
memcpy((void *)mInitParam.pMode_Param->pCustom_Param->Rel_Time, (void *)mAudioParam.Rel_Time, 48 *
sizeof(unsigned int));
memcpy((void *)mInitParam.pMode_Param->pCustom_Param->Cross_Freq, (void
*)mAudioParam.bes_loudness_Cross_Freq, 7 * sizeof(unsigned int));
memcpy((void *)mInitParam.pMode_Param->pCustom_Param->SB_Mode, (void *)mAudioParam.SB_Mode, 8 *
sizeof(unsigned int));
memcpy((void *)mInitParam.pMode_Param->pCustom_Param->SB_Gn, (void *)mAudioParam.SB_Gn, 8 *
sizeof(unsigned int));
memcpy((void *)mInitParam.pMode_Param->pCustom_Param->Hyst_Th, (void *)mAudioParam.Hyst_Th, 48 *
sizeof(int));
memcpy((void *)mInitParam.pMode_Param->pCustom_Param->DRC_Th, (void *)mAudioParam.DRC_Th, 40 *
sizeof(int));
memcpy((void *)mInitParam.pMode_Param->pCustom_Param->DRC_Gn, (void *)mAudioParam.DRC_Gn, 40 *
sizeof(int));
// add below
if ( mFilterType == AUDIO_COMP_FLT_DRC_FOR_MUSIC )
{
mInitParam.pMode_Param->pCustom_Param->Num_Bands = 1;
mInitParam.pMode_Param->pCustom_Param->SB_Gn[0] = 0;
}
}
// add above

b、修改ProjectConfig.mk中
MTK_AUDIO_BLOUD_CUSTOMPARAMETER_REV = MTK_AUDIO_BLOUD_CUSTOMPARAMETER_V5
=>
MTK_AUDIO_BLOUD_CUSTOMPARAMETER_REV = MTK_AUDIO_BLOUD_CUSTOMPARAMETER_V4
两种修改方法的实质都是修改DRC从multi-band到full-band,这样可以极大地降低DRC的运算量。

2、对于KK1.MP11或KK2.MP13版本,请关闭Settings --> Sound & notification --> Sound
enhancement中的BesSurround后测试是否还会卡顿。
如果不再卡顿,则认为是BesSurround导致,可以申请patch:ALPS01977061。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top