I am trying to discover why my single app with two overlapped triangles has 0% HSR Efficiency (counter exposed in PVRTune). Alpha blending is disabled.
The app just clear the screen and draw two 2D triangles on the screen, no-zbuffer. Triangles are rendered on the near place (Z is set to 0 for both of them). Z operations are disabled.
Hardware is a Motorola One with a PowerVR Rogue GE8320. I know this hardware supports HSR because if I try the app linked in this post it works.
As far as I understand after reading all the topics about this, this should work without Z-Buffer, the tag buffer supports this. So I started to made changes to be more similar to the mentioned app.
Just double checked alpha blending is disabled
Separated the two triangles in two different batches
Enable Z-Buffer
Added different z to each triangle using glPolygonOffset
But no luck, HSR is always at 0%. The .apk for testing can be downloaded at
We’ve tested your app in a PVR Device (Acer Chromebook R13, GPU PowerVR GX6250). We were able to perform a PVR Tune record which worked fine, showing a HSR value of about 60% (see attached image).
Could you please double-check which PVR GPU your device has? I haven’t been able to find a Motorola One with PVR GPU so far (I’ve reviewed 11 different Motorola One models but all have Adreno or Mali GPU), I might have skipped some. Also if possible please provide the Android and DDK version of your device.
PVRMonitor is currently available on GitHub including the source code (https://github.com/powervr-graphics/PVRMonitor). Unfortunately at the moment it won’t work since PVRMonitor needs to collaborate with another tool to extract GPU counter values and we’re still fixing some issues related with that other tool.
I’m sorry I cannot help you get HSR values at the moment for your device, I’ll update you about any progress in PVRTune as soon as I have news.
Thanks for your help Alejandro. I will wait for the fix in PVRTune.
I wanted to make sure about something, I don’t need to use ZBuffer to have HSR right? My first try was using two overlapped triangles, with Z=0 sent to the pixel shader and not using ZBuffer.