Imagination PowerVR SDK Blog

power down events for every few frames on SGX544


#1

I am developing a game using unity engine targeted for android. I have a device with SGX544. I have a simple scene with a plane. When I use simple fragment shaders there is no problem but when I use more complex fragment shaders, vertical gray lines appear that take 10-30ms. I have captured a screenshot of profiler. I change the shader at runtime to see the difference. Shader1 and shader2 are simple and there is no problem. You see when complex shader3 is used, vertical gray lines appear. So I am asking why gpu powers down when more task is required?

[attachment file=“Untitled-1.jpg”]

And here is a screenshot with shader3 with higher zoom level:
[attachment file=“112.jpg”]
You see every few frames this happens and it takes huge time.
Also Vsync is off. There is nothing happening on cpu side. only a simple plane with 200 tris is present. Surface shader function for shader3 is as following:
[blockquote]
void surf (Input IN, inout SurfaceOutput o) {
fixed4 splat_control = tex2D (_Control, IN.uv_Control);
fixed3 col;
col = splat_control.r * tex2D (_Splat0, IN.uv_Splat0).rgb;
col += splat_control.g * tex2D (_Splat1, IN.uv_Splat0).rgb;
col += splat_control.b * tex2D (_Splat2, IN.uv_Splat0).rgb;
col += splat_control.a * tex2D (_Splat3, IN.uv_Splat0).rgb;
o.Albedo = col;
}
[/blockquote]


#2

Are there any error messages from the hardware in logcat?

Could you provide us with the output from logcat and dmesg.


#3

Thanks for the quick response. There are no errors in logcat. I have attached logcat and dmesg files.


#4

It seems I can’t upload the logs so I uploaded to google drive.
https://drive.google.com/file/d/0B98opaL-EDC-ZVBCb3BpQndHem8/view?usp=sharing


#5

We’re still investigating this, we haven’t been able to reproduce the issue.

If there’s any other details you may provide to help us that would be helpful.


#6

If you happen to have unity game engine installed you can do the following steps to reproduce the problem exactly. You can download the free version of unity in https://unity3d.com/get-unity
STEPS:

  1. Download and unzip the simple project I created as test case. https://drive.google.com/file/d/0B98opaL-EDC-c1Q2NWhxcTVDQnM/view?usp=sharing
  2. Open unity and on the dialog choose Open Other and locate the unzipped folder.
  3. From Project panel double click on test file. This opens the test scene if it was not open already.
  4. From menu choose File>Build & Run.
    Now if you have an android device connected via ADB then the project apk will be installed and run on the device.

#7

What was I thinking!! Here is the apk for the test case. Just install it on a device to reproduce things.
https://drive.google.com/file/d/0B98opaL-EDC-dDZEVmdPUTVhZ3M/view?usp=sharing

And also my device is huawei g700 u10 with SGX544 MP.


#8

I’ve tested the binary on one our devices here, but couldn’t reproduce the issue.

Could you grab your driver version through adb with cat /proc/pvr/version


#9

Version SGX_DDK_Android sgxddk 19 1.9@2204701 (release) mt6589
System Version String: SGX revision = 1.1.5


#10

The apk I provided before creates the situation less frequently. I uploaded another apk with more complexity that creates much more frequent vertical gray lines. Here is the apk: https://drive.google.com/file/d/0B98opaL-EDC-OElQbEhTM1Zka0k/view?usp=sharing


#11

Apologies as our investigation stalled on this and we haven’t had the chance to look at it recently.

We weren’t able to reproduce the issue with the binary on our devices. Do you have any other devices which reproduce the issue for you?