Glmark2

From LinuxReviews
Jump to navigationJump to search
Benchmark icon.png

glmark2 is a rather simple free OpenGL ES 2.0 graphics performance benchmark tool for GNU/Linux. It has a variety of "scenes" it renders in order to give you a broad ball-park idea of your graphics performance. It really does not tell you very much at all on modern computers.

Getting and running glmark2

You can install it with dnf -y install glmark2 on Fedora and by clicking here to install on Ubuntu. It is not available on Gentoo Linux, so Gentoo users will have to compile it themselves.

glmark2 is best started from in terminal because that's where it outputs the results. You will not get any graphical window with results or other feedback from glmark2 once the benchmark is done, all the information it provides is spewed out in the console (thus, you will never see it if you run glmark2 using your desktop environments menu).

Glmark2-2021-02.jpg
glmark2 version 2021-02 executed with glmark2 -s 1920x1000 -f refract

glmark2 will by default render in a tiny 800x600 window. You may want to use the -s argument to change that to something like glmark2 -s 1920x1050 - however, do keep in mind that the benchmark results will vary greatly depending on the resolution you run it at (800x600 will produce a much higher score than 1920x1050 will).

glmark2 will, after drawing simple animations on the screen while never loading a GPU like the RX570 more than 25% at 1920x1080, have filled the terminal with some results which do not really tell you anything. The frames-per-seconds numbers will be in the many hundreds. glmark2 does produce a "glmark2 Score" but this will also not tell you much. For example, a RX 570 at 1920x1050 scores 528 and a Intel HD 5500 integrated GPU scores 427. While somewhat apart they are much closer than they are in more meaningful benchmarks.

The reason glmark2's scores for low-end and high-end GPUs are relatively close has to do with how much, or little, stress it places on the GPU. A Intel iGPU at 90% load does not perform all that differently from a RX 570 at 25% of it's capacity. There appears to be a limitation in either glmark2 or Mesa which limits GPU utilization above a certain FPS.

Other variants

There is a variant of glmark2 called vkmark. It is a Vulkan implementation of the exact same benchmark. It has the exact same tests and limitations as glmark2.

Review and conclusion

Overall, it's a pretty useless benchmark tool. A better way to do benchmarks would be to HOWTO See A Games Frames Per Second And Other Data In A HUD Overlay.

There are, sadly, no good free software alternatives but there are some way more advanced proprietary freeware alternatives like UNIGINE Superposition and Basemark GPU which run on GNU/Linux. Tests like that those produce useful and comparable and meaningful results. glmark2 simply doesn't.

glmark2 results

Example output from a MSI/AMD RX 570

The output of a typical run, here glmark2 -s 1920x1050, will look like this:

=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     X.Org
    GL_RENDERER:   Radeon RX 570 Series (POLARIS10, DRM 3.27.0, 5.0.9-Jinsol, LLVM 8.0.0)
    GL_VERSION:    4.5 (Compatibility Profile) Mesa 19.0.3
=======================================================
[build] use-vbo=false: FPS: 509 FrameTime: 1.965 ms
[build] use-vbo=true: FPS: 560 FrameTime: 1.786 ms
[texture] texture-filter=nearest: FPS: 551 FrameTime: 1.815 ms
[texture] texture-filter=linear: FPS: 549 FrameTime: 1.821 ms
[texture] texture-filter=mipmap: FPS: 578 FrameTime: 1.730 ms
[shading] shading=gouraud: FPS: 543 FrameTime: 1.842 ms
[shading] shading=blinn-phong-inf: FPS: 593 FrameTime: 1.686 ms
[shading] shading=phong: FPS: 589 FrameTime: 1.698 ms
[shading] shading=cel: FPS: 594 FrameTime: 1.684 ms
[bump] bump-render=high-poly: FPS: 573 FrameTime: 1.745 ms
[bump] bump-render=normals: FPS: 576 FrameTime: 1.736 ms
[bump] bump-render=height: FPS: 539 FrameTime: 1.855 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 556 FrameTime: 1.799 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 564 FrameTime: 1.773 ms
[pulsar] light=false:quads=5:texture=false: FPS: 520 FrameTime: 1.923 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 537 FrameTime: 1.862 ms
[desktop] effect=shadow:windows=4: FPS: 561 FrameTime: 1.783 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 407 FrameTime: 2.457 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 463 FrameTime: 2.160 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 409 FrameTime: 2.445 ms
[ideas] speed=duration: FPS: 505 FrameTime: 1.980 ms
[jellyfish] <default>: FPS: 561 FrameTime: 1.783 ms
[terrain] <default>: FPS: 464 FrameTime: 2.155 ms
[shadow] <default>: FPS: 602 FrameTime: 1.661 ms
[refract] <default>: FPS: 584 FrameTime: 1.712 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 613 FrameTime: 1.631 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 607 FrameTime: 1.647 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 588 FrameTime: 1.701 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 560 FrameTime: 1.786 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 579 FrameTime: 1.727 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 525 FrameTime: 1.905 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 565 FrameTime: 1.770 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 567 FrameTime: 1.764 ms
=======================================================
                                  glmark2 Score: 548 
=======================================================

What, if anything, these numbers mean in terms of performance is unclear.

The "glmark2 Score" may mean something and since our kind readers keep dumping results of their glmark2 runs in the comment section.

User-Submitted glmark2 Results, Default (800x600)

Please click the "edit" button on the headline right above this text to share results. You will likely be able to understand what kind of {"t": "Card", "v": "123"}, line you should add below. Just leave a comment below if it's way beyond your skill-set.

Kemonomimi rabbit.svg
Note: glmark2 scores will vary dramatically depending on what window size you use. -s 1920x1080 will obviously produce scores that are much lower than -s 640x480 will produce. The following results are with the default -s 800x600 resolution. Make sure you don't add results from runs with non-default resolutions below.
"glmark2 Score", default resolution (800x600)

That GTX 1060 result doesn't make any sense vs the RTX 3090 result, who knows that is going on there.

Please run glmark2 with no arguments if you want to contribute results to the above graph in order to make the results comparable (we should perhaps add a separate section for -s 1920x1080? Let us know what you think in the comments below).

We have removed all the cut-and-paste results added as comments and added them to the above graph instead.

Alternatives

Links

The glmark2 git repository is at github.com/glmark2/glmark2.


Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.