Open GHCRajan opened 3 years ago
glmark2_es2_wayland score around 50
50 is actually very low, though you need to make sure you're not limited by vsync. If your FPS
and FrameTime
are the same for most tests, you probably are. I recommend using glmark2-es2-drm
with the --off-screen
argument.
The glmark2-es-drm
score with --off-screen
for my Pi 4 is 461.
PVR SGX GPU
PowerVR has a wide range of GPUs. Without a specific model name, it's hard to tell how capable your GPU is. I googled a bit, and found the datasheet for AM437x Sitara™ Processors (Rev. E)
and, at least in that datasheet, it says the GPU is a PowerVR SGX 530, which was released in 2005. Your specific board / chip may be different though.
Can you give me the complete output of flutter-pi? I'm especially interested in the EGL / GLES info that's printed out.
You can also enable the performance overlay in flutter. The easiest way to do that is by passing showPerformanceOverlay: true
to the MaterialApp
or WidgetsApp
constructor.
Thank you for your reply.
Please find below the output of flutter-pi around EGL / GLES info.
Thank you for your suggestion, I have enabled the performance overlay with the default application. Please find the numbers after few button touches.
Raster max: 1480 ms/frame, avg 213.1 ms/frame UI max: 298 ms/frame, avg 5 ms/frame
The above values are based on the engine binaries 1.22.4.
When I ran the command, glmark2-es2-drm --off-screen, the final score is glmark2 Score: 326 after ignoring the repeated messages PVR:(Error): SGXKickTA: TA went out of Mem and SPM occurred during last TA kick [0, ]
Though the scores are comparable (326 versus 461), raster thread seems to be taking more time. Is there any suggestion to improve this raster thread?
Thanks
The raster thread time is basically GPU time, so the time it takes for the GPU to render the image. UI thread time is the time spent inside the dart VM.
Though the scores are comparable (326 versus 461), raster thread seems to be taking more time. Is there any suggestion to improve this raster thread?
I agree, the raster thread time seems to be way higher than what you'd expect given the glmark score. There are some tools from PowerVR you can use to profile it, maybe you can find out what takes the GPU so long: https://www.imaginationtech.com/developers/powervr-sdk-tools/pvrtune/ You probably need to install PVRPerfServer on your AM4372 board and PVRTune GUI on your development machine.
There's also PVRTune Complete, which sadly is only available under NDA.
Thank you for your reply. Will reach out to the vendor for any possible support around this.
In the meantime, is there any possibility to configure this renderer as 30 fps or less ? In otherwords, Can the flutter-pi renderer reports a "slow" GPU to engine and expects lower FPS ?
Thanks
In the meantime, is there any possibility to configure this renderer as 30 fps or less ? In otherwords, Can the flutter-pi renderer reports a "slow" GPU to engine and expects lower FPS ?
It can't report a slow GPU, but it can somewhat emulate a slow screen and only actually report vsync to the engine every 2nd vblank or such. Why would that be helpful though? Flutter (IIRC) will just skip any frames it didn't have time to render, so emulating a slow screen wouldn't change anything. It'd just introduce additional latency
Hello,
First of all, sincere appreciation for your efforts with this flutter-pi renderer. Out of the various renderers I have tried on my AM4372 GP EVM (ARMv7, 1GHz, PVR SGX GPU, 1GB RAM, 7" Display), this one worked like a charm.
Able to build and run apps in both DEBUG & RELEASE modes (locally created as well as particle_background, gallery etc). For the past few days, I could not make progress in improving the application performance.
Default button application takes more than 1.3 seconds between touch event and display update with counter. Added trace messages to flutter-pi and observe the following. { [event #1605890907099] count: 1, evt0: kind: 2, phase: 2 [event #1605890907137] count: 1, evt0: kind: 2, phase: 1 [present in #1605890908313] count: 1 [present out #1605890908319] [present in #1605890908334] count: 1 [present out #1605890908340] }
Touch and GPU appears to be instantaneous (glmark2_es2_wayland score around 50). Where as flutter engine appears to be taking more time. (CPU load > 40% for simple touch). Have tried various options (release engine from your repo, locally built one, forcing processor at 1GHz from userland than on demand, faster uSD card etc) without much improvement. Engine is built and running in release more. (No DEBUG ribbon on the GUI, binary size around 7MB etc). No errors in generating app.so / bundle.
Looking forward for your expert suggestion to analyze the problematic area and get this running smoothly. Let me know if more details are needed.
Thanks