gpu cpu
[RK3288][Android6.0]偶发会遇到播放GIF动画会卡顿的原因有哪些?怎样去解决呢?
回帖(1)
2022-3-10 10:35:51
Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
现象:
偶发会遇到播放GIF动画会卡顿.
原因一:
CPU开启了温度检测,过热会导致CPU降频.
解决方法:
物理降温,如加散热片,风扇.
原因二:
GPU DVFS降频.可以看到中间有一次降到200M了.
root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock
current_gpu_clk_freq : 416666 KHz
available_freqs : 99000, 198000, 297000, 417000, 480000 (KHz)
root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock
current_gpu_clk_freq : 480000 KHz
available_freqs : 99000, 198000, 297000, 417000, 480000 (KHz)
root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock
current_gpu_clk_freq : 416666 KHz
available_freqs : 99000, 198000, 297000, 417000, 480000 (KHz)
root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock
current_gpu_clk_freq : 297000 KHz
available_freqs : 99000, 198000, 297000, 417000, 480000 (KHz)
root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock
current_gpu_clk_freq : 416666 KHz
available_freqs : 99000, 198000, 297000, 417000, 480000 (KHz)
解决方法:
kris@eco:~/rk3288/kernel$ g df b3e70eaeda236c57e239ea2c3c24da49304b240f 05e0b2c96649d9639c397d049b93c96366219dd7
diff --git a/drivers/gpu/arm/midgard/platform/rk/mali_kbase_dvfs.c b/drivers/gpu/arm/midgard/platform/rk/mali_kbase_dvfs.c
index d1b0c55..b214c01 100755
--- a/drivers/gpu/arm/midgard/platform/rk/mali_kbase_dvfs.c
+++ b/drivers/gpu/arm/midgard/platform/rk/mali_kbase_dvfs.c
@@ -65,8 +65,15 @@
* if counter_of_requests_to_jump_down_in_dvfs_level_table reaches this value,
* the current_dvfs_level will jump down one level actually.
*/
+/*Kris, 170921, increase jump down count to delay frequency switch. {*/
+ #if 0
#define NUM_OF_REQUESTS_TO_PERFORM_ACTUAL_JUMP_DOWN 10
+#else
+#define NUM_OF_REQUESTS_TO_PERFORM_ACTUAL_JUMP_DOWN 20
+/*Kris, 170921, increase jump down count to delay frequency switch. }*/
+
+#endif
Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
现象:
偶发会遇到播放GIF动画会卡顿.
原因一:
CPU开启了温度检测,过热会导致CPU降频.
解决方法:
物理降温,如加散热片,风扇.
原因二:
GPU DVFS降频.可以看到中间有一次降到200M了.
root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock
current_gpu_clk_freq : 416666 KHz
available_freqs : 99000, 198000, 297000, 417000, 480000 (KHz)
root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock
current_gpu_clk_freq : 480000 KHz
available_freqs : 99000, 198000, 297000, 417000, 480000 (KHz)
root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock
current_gpu_clk_freq : 416666 KHz
available_freqs : 99000, 198000, 297000, 417000, 480000 (KHz)
root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock
current_gpu_clk_freq : 297000 KHz
available_freqs : 99000, 198000, 297000, 417000, 480000 (KHz)
root@rk3288:/ # cat /sys/devices/ffa30000.gpu/clock
current_gpu_clk_freq : 416666 KHz
available_freqs : 99000, 198000, 297000, 417000, 480000 (KHz)
解决方法:
kris@eco:~/rk3288/kernel$ g df b3e70eaeda236c57e239ea2c3c24da49304b240f 05e0b2c96649d9639c397d049b93c96366219dd7
diff --git a/drivers/gpu/arm/midgard/platform/rk/mali_kbase_dvfs.c b/drivers/gpu/arm/midgard/platform/rk/mali_kbase_dvfs.c
index d1b0c55..b214c01 100755
--- a/drivers/gpu/arm/midgard/platform/rk/mali_kbase_dvfs.c
+++ b/drivers/gpu/arm/midgard/platform/rk/mali_kbase_dvfs.c
@@ -65,8 +65,15 @@
* if counter_of_requests_to_jump_down_in_dvfs_level_table reaches this value,
* the current_dvfs_level will jump down one level actually.
*/
+/*Kris, 170921, increase jump down count to delay frequency switch. {*/
+ #if 0
#define NUM_OF_REQUESTS_TO_PERFORM_ACTUAL_JUMP_DOWN 10
+#else
+#define NUM_OF_REQUESTS_TO_PERFORM_ACTUAL_JUMP_DOWN 20
+/*Kris, 170921, increase jump down count to delay frequency switch. }*/
+
+#endif
举报