Vivante GC4000 is The Best Mobile GPU… When It Comes to Accuracy
Most of the time, mobile GPU comparisons involve benchmarks such as Antutu, Nenamark 2, etc…, or people may consider which games will be able to run smoothly with a particular device, but we seldom compare image quality, for the simple reason it’s usually more difficult to achieve.
YOUi Labs has just done that, however, by running the shader code below on several hardware platforms, mainly Android tablets, with the most common mobile GPUs, and used the results obtained with a Desktop PC GPU, Nvidia Geforce GT 630M, has a reference.
precision highp float;
uniform vec2 resolution;
void main( void )
float x = ( 1.0 – ( gl_FragCoord.x / resolution.x ));
float y = ( gl_FragCoord.y / resolution.y ) * 26.0;
float yp = pow( 2.0, floor(y) );
float fade = fract( yp + fract(x) );
if(fract(y) < 0.9)
gl_FragColor = vec4( vec3( fade ), 1.0 );
gl_FragColor = vec4( 0.0 );
Here are the results:
The worst GPUs are Mali-400 MP4 in Exynos 4412 and Geforce ULP in Tegra 3, which can respectively only show 5 and 8 lines before degradation, and the top two GPUs are Qualcomm Adreno 225 in MSM8660A, and Vivante GC4000 in HiSilicon K3V2 processor. Imagination Technologies SGX544 and ARM Mali-T604 also provide decent results, but just not as good as the two aforementioned.
YOUi Labs has also released a free Android app called Shader Effect Test that allows you to evaluate your GPU floating-point accuracy by running visual effects tests on your own device, but for some reasons it does not include the code above.
The company explains that if you plan to run this application on your hardware, this demo will push your GPU and/or drivers to the limits so it may crash, or some shaders may appear off-center or incorrectly positioned. They explain this is normal, at least for some hardware.
I’ve tried it on AMLogic AML8726-MX hardware (Mali-400 MP2), and some of the tests do not look pretty at all, but I can’t draw any conclusion as I haven’t tried with other SoCs.
I’m pretty sure it’s possible to draw smooth edges and properly rounded 3D balls with Mali-400 MP2, but the nature of the tests requires more precision than this GPU can handle.