Home > AMLogic, Android, NVidia Tegra 3, Qualcomm Snapdragon S4, Samsung Exynos, Testing > Vivante GC4000 is The Best Mobile GPU… When It Comes to Accuracy

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 );
    else
          gl_FragColor = vec4( 0.0 );
}

Here are the results:

Mobile GPU FPU Accuracy

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.

Shader Effects on Mali-400MP2 (Click to Enlarge)

Shader Effects on Mali-400MP2 (Click to Enlarge)

Shader Effects on Mali-400MP2 (Click to Enlarge)

Shader Effects on Mali-400MP2 (Click to Enlarge)

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.

Via Imagination Technologies

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

  1. GIJoe
    May 7th, 2013 at 13:03 | #1

    Its look like the Honor 2 was a good deal…

  2. m][sko
  3. notzed
    May 8th, 2013 at 06:51 | #3

    fp precision isn’t specified in opengl, so this test doesn’t really mean much. I presume even the accuracy of the pow function will be up to the vendor (in opencl they must meed a minimum and document differences, I don’t know if opengl requires the same).

    There have been a lot of overly-detailed micro-benchmarks of late which I think are starting to miss the big picture. They should always be taken with a grain of salt.

  4. May 9th, 2013 at 05:44 | #4

    The reason behind the “””terrible””” performance of the mali-400 is that the mali utgard fragment shader is half-float only, 16-bit floating point. Good enough for rendering an image on a mobile platform, is what the crazy demosceners thought, years before people started talking about Compute and stuff :)

    Actually… The fragment shader shown lists “precision highp float;”. That simply is not accepted by the mali shader compiler. The author of this must have removed that line when the compiler complained, and then thought nothing of it. Rather bad form. I am sure that his real world use cases (which should be gles2.0 use cases for a fair comparison — another thing he does not point out — he makes no distinction between generations here) are not hampered by the lack of precision on the calculations of the fragment shader.

    Mali-400 fragment shader precision is low, but it is deterministic. The real loser here is PVR. That indeed might be overflows and artifacts there.

  5. May 29th, 2013 at 16:30 | #5

    ARM has started to give an answer to the YOUi Labs tests.
    http://blogs.arm.com/multimedia/965-benchmarking-floating-point-precision-in-mobile-gpus/

  1. May 8th, 2013 at 04:02 | #1
  2. June 18th, 2013 at 07:12 | #2
  3. February 12th, 2014 at 16:25 | #3