Hello,
I have an odroid xu3 board equipped with mali T628(MP6). I run an example called "simpletriangle" and profile the data through DS5. Mali gpu breaks up the scene into tiles and renders a tile(16*16) once a time. When running the example "simpletriangle", I notice that the pmu counter "tiles rendered" is strange. The screen resolution is 1280*720, and the number of tiles rendered should be 3600(1280 * 720 / 256), but DS5 shows the number is 7200(within one frame). So, the gpu renders two frames a time?
How are you measuring the PMU counters?
Start the gator on board, and select "tiles rendered", then DS5 start to capture data from the board. When finished, I zoom in the timeline, and choose data within 16ms which I think is a single frame. The timeline is as follows. OS is android 4.4.
it could be something like a composition activity running (so application renders to 720p off-screen buffer, and then the compositor copies that to the actual 720p window surface).
Do you mean framebuffer0 and framebuffer1? I think GPU will only render one frame and write to framebuffer0 or framebuffer1 within 16ms.
If you have a compositing window system (Android, X11, etc) then it is very possible that the application doesn't render to the framebuffer at all. The application renders to an offscreen memory region, the compositor composits into the real framebuffer. The compositor may also be using the GPU.
Actually I have no idea whether it is a compositing window system. I think the pmu counter "tiles rendered" should be the number of tiles the gpu rendered within 16ms (one frame). If it is a compositing window system, the "tiles rendered" will be 7200? Why? Could you explain in detail?
If it is a compositing window system, the "tiles rendered" will be 7200?
* 3600 from the application
* 3600 from the compositor (if the compositor uses the GPU - not all do)