September 25, 2020, 1:43pm
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
Added different z to each triangle using glPolygonOffset
But no luck, HSR is always at 0%. The .apk for testing can be downloaded at
Can anyone shed some light please?
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.
September 28, 2020, 11:47am
Thanks for your reply. Effectively, it is not a Motorola One, sorry about that. It is a LG K40S with the GPU mentioned above, GE8320.
Android version is 9 (API Level 28). Regarding DDK version, I am not sure how to get that information, could you please help me?
Thanks for the quick reply.
To know the DDK version, you can install the AIDA64 software for Android (
https://play.google.com/store/apps/details?id=com.finalwire.aida64&hl=en_GB) and copy-paste the value displayed for “Display”->“GPU Version”.
Also, could you please provide what PVR Tune version are you using?
Lastly, I’d ask if possible that you try a couple of 3D apps to verify if the HSR GPU value works properly for those other apps.
September 28, 2020, 3:51pm
GPU Version: OpenGL ES 3.2 build 1.10@5130912
PVRTune Version: 14.149 (Build 20.1@5740574)
Yes, as mentioned above, the application posted here:
Emmmm,I did a test recently, I was using the Unity3d engine, I made a button on the interface to generate a full-screen Opaque Plane, and every time I click, I generate one more Plane, when I connect to the PVRTune debugging on my phone, A Plane HSR Efficiency is 0%, but when I generate two Planes, the value is 33%, I wonder, because according to my understanding should not be 50%? How can I understand that?
reports correct HSR efficiency on my device.
Thanks for all the information. We’re still trying to reproduce the issue. I’ll come back to you in a few days, sorry for the late reply.
We were able to reproduce the issue. The Tools Team will be taking care of it. I’ll update you as soon as I’ve news.
Thank you! So the problem is in PVR Tune, not on my device?
Can I use an alternative? I am trying to download PVRMonitor for Android
But it seems links are broken.
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.
You’re right, you don’t need to use a Z-Buffer for HSR to work. You can find some interesting notes about how it internally works in another forum post (
Hidden surface removal for alpha blended fragment under opaque one).
As mentioned in my previous post, I’ll keep you updated about any progress with PVRTune regarding the issue you’re experiencing.