Hello Community
I did the following tests with Yocto3.14.52_1.1.0.
1) used the original BSP(with IPU prefetch enabled for fb1)
Run /opt/viv_samples/vdk/tutorial1~tutorial7 (do GPU benchmark test).
2)modified the imx6qp-sabreauto.dts as bellow(disable IPU prefetch for fb1).
The original code:
&mxcfb1 {
prefetch;
};
modified code:
#if 0
&mxcfb1 {
prefetch;
};
#endif
then compiled imx6qp-sabreauto.dtb and run /opt/viv_samples/vdk/tutorial1~tutorial7 (do GPU benchmark test).
the results is as bellow:
The LCD display I used is 800 * 480@58Hz.
It seems that when IPU prefetch is enabled, the output fps of GPU demos is fixed to 57.54(the Vsync of LCD).
And when IPU prefetch is disabled, the output fps of GPU demos became reasonable for i.MX6QP.
Could you explain why does the IPU prefetch feature have effects on GPU benchmark test?
Thank you!
ZongbiaoLiao
Hi Zongbiao
Currently IPU prefetch, Resolve is introduced on top of the current IPU-based display subsystem. The concept of Prefetch and Resolve is comprised of two primary functions:
Prefetch: Use Prefetch and Resolve Engine (PRE) to read the display frame buffer ahead of time and store it into double buffer in OCRAM. When IPU needs the pixels for display, it can fetch directly from the double buffer. This helps to avoid a potential IPU display under-run in high loading applications, making the system more robust.
Resolve: When the frame buffer is a GC2000 GPU render target buffer (unresolved tiled buffer format from GC2000), the PRE will resolve it from a tiled to linear buffer format and store into OCRAM, so that the IPU can display the resolved buffer directly. This helps to avoid an additional resolve operation in the GC2000, saving DRAM bandwidth
Please check section 9 and 10 of the following document for complete information about how prefetch affects the gpu perfomance:
http://cache.nxp.com/files/32bit/doc/eng_bulletin/EB810.pdf
Regards