Power VR Frame Time Counter Doubt.

Hi,



I am using PVRScope & PVRTune to get PowerVR Counters on a Odroid XU+E board with SGX544 GPU.



PVRTune Documentation say about “Frame Time Counter” - "The frame time is calculated based on the time the GPU is idle and active (TA & 3D Time). I want to know how this calculation is being performed.



Following is simultaneous counter values (of Group 0) when Anomaly 2 Android Game is running on full GPU & CPU frequency -



Frame time : 0.009103

Frames per second (FPS) : 109.848488

GPU task load: 2D core : 0.000000 %

GPU task load: 3D core : 79.608833 %

GPU task load: Compute core : 0.000000 %

GPU task load: TA core : 45.282978 %

GPU task time: 2D core : 0.000000

GPU task time: 3D core : 0.840669

GPU task time: Compute core : 0.000000

GPU task time: TA core : 0.478188

SPM : 0.000000 %

ISP load : 4.860190 %

TA load : 31.711254 %

USSE clock cycles per pixel : 1.579859

USSE clock cycles per vertex : 69.105301

USSE load: Pixel : 34.233200 %

USSE load: Vertex : 7.979070 %

Vertices per frame : 80777.015625 ( 80554.632812)

Vertices per second : 8873233.000000 ( 8871863.000000)







As you can see the TA Load and 3D Time load is greater than 100% when sum together. Is this an indication that TA and 3D are pipelined and performing parallel processing?



I can see “GPU task time: 3D core” & “GPU task time: TA core” and 3D time, but I have no clue about these counters. How can “Frame time” be obtained from them and what unit are these time reported (millisecond, microsecond)??



I need this understanding in my research.



Thanks For Your Time.



Regards

Anuj Pathania


Hi Anuj,


As you can see the TA Load and 3D Time load is greater than 100% when sum together. Is this an indication that TA and 3D are pipelined and performing parallel processing?

As you've assumed, the TA and 3D workloads are processed in parallel. If you've not already done so, I would recommend reading our "PowerVR Series 5 Architecture Guide for Developers" document (available in our SDK and online here) to better understand how PowerVR GPUs process work.

How can "Frame time" be obtained from them and what unit are these time reported (millisecond, microsecond)?

If you want to calculate the number of ms the GPU takes to process a frame, you use the GPU idle percentage and total frame time (including v-sync), e.g. total_frame_time * ((100-gpu_idle_percentage) * 0.01). Keep in mind that the time taken to complete a given task will depend on how much work the GPU is processing in parallel.

Regards,
Joe