GLMARK2-DRM(1)

glmark2-drm πŸ’– the OpenGL (ES) 2.0 benchmark suite, bestie edition

okay so. this is the manual for glmark2-drm, which lives in section 1 of the General Commands Manual. it's a whole vibe. let's get into it ✨


✨ NAME ✨

glmark2-drm β€” the OpenGL (ES) 2.0 benchmark suite πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

glmark2-drm [options]

that's it. that's the whole invocation. she's simple like that πŸ’…


🌸 DESCRIPTION 🌸

so glmark2-drm is a benchmark for OpenGL (ES) 2.0, no cap. the important part: it only uses the subset of the OpenGL 2.0 API that's compatible with OpenGL ES 2.0. that's the whole point of her. she's not out here flexing extra API surface, she's strictly on that ES 2.0-compatible energy πŸ”₯


πŸ‘‘ OPTIONS πŸ‘‘

here's the full menu, bestie. every single one. i'm not skipping a thing, periodt.

  • -b, --benchmark BENCH β€” the benchmark you wanna run, written as 'scene(:opt1=val1)*'. and yes you can pass this option multiple times, stack those benchmarks up 🫢
  • -f, --benchmark-file FILE β€” load your benchmarks from a file instead. the file has a list of benchmark descriptions, one per line. also repeatable, use it multiple times if you want multiple files πŸ’–
  • --validate β€” skip the actual benchmarks and just run a quick output validation test instead. like a vibe check but for rendering output ✨
  • --data-path PATH β€” the path to where the glmark2 models, shaders and textures are chillin'
  • --frame-end METHOD β€” how to end a frame. your choices: [default,none,swap,finish,readpixels]
  • --swap-mode MODE β€” how to swap a frame. heads up: all modes are only supported in the DRM flavor, except 'fifo', which is available in all flavors and forces vsync. options: [default,immediate,mailbox,fifo]
  • --off-screen β€” render to an off-screen surface instead. main character but offstage 🎭
  • --visual-config β€” the visual configuration to use for the rendering target, written like this:
'id=ID:red=R:green=G:blue=B:alpha=A:buffer=BUF:stencil=STENCIL:samples=SAMPLES'

you can put the parameters in any order, and if you leave any out they assume a default value of '0' (for id, samples), -1 (for stencil) or '1' (for red, green, blue, alpha, buffer). also: if 'id' is set to a non-zero value, all the other parameters get ignored, so don't bother, bestie πŸ’€

  • --good-config β€” require a config that meets all the requested component requirements (go look at --visual-config above, iykyk)
  • --reuse-context β€” use a single context for all scenes. by default, each scene gets its own context, so this is the sharing-is-caring setting 🫢
  • -s, --size WxH β€” size of the output window (default: 800x600)
  • --fullscreen β€” run in fullscreen mode. it's equivalent to --size -1x-1, iconic πŸ‘‘
  • --results RESULTS β€” the types of results to report for each benchmark, as a ':' separated list. options: [fps,cpu,shader]
  • --results-file RESULTS-FILE β€” the file to save the results to. the format is determined by the file extension, and your options are [csv,xml]
  • --winsys-options OPTS β€” a list of 'opt=value' pairs for window system specific options, separated by ':'
  • -l, --list-scenes β€” display all the info about the available scenes and their options. honestly run this first, it's giving helpful πŸ¦‹
  • --show-all-options β€” show all the scene option values used for benchmarks. by default only the explicitly set options get shown, so this is the full transparency mode 🌈
  • --run-forever β€” run indefinitely, looping from the last benchmark back to the first. infinite loop, no thoughts, just benchmarks πŸ’€
  • --annotate β€” annotate the benchmarks with on-screen information. this is the same as -b :show-fps=true:title=#info# ✨
  • -d, --debug β€” display debug messages
  • --version β€” display the program version
  • -h, --help β€” display help. when in doubt, bestie πŸ’–

πŸŽ€ BENCHMARKS πŸŽ€

so glmark2-drm offers a whole suite of scenes that you can use to measure many aspects of OpenGL (ES) 2.0 performance. and the way each scene renders? fully configurable through a set of options. if you wanna see the available scenes and which options they accept, just hit the -l, --list-scenes command line option πŸ’…

in glmark2-drm, a benchmark is defined as a scene plus a set of option values. you tell her which benchmarks to run and in what order using the -b, --benchmark command line option β€” and you can pass that thing multiple times, go off. if you don't specify any benchmarks at all, a default set of benchmarks gets used instead. and if you don't specify a particular benchmark option, it assumes its default value (which is listed with -l, --list-scenes, see, told you to run it) 🌸

now here's the special-case tea β˜•: a benchmark description string is allowed to not contain a scene name at all β€” meaning it starts with ':'. when that happens, any option values you specified get used as the default values for the benchmarks following that description string. it's giving setting the vibe for everything after it ✨


🌈 EXAMPLES 🌈

run the default benchmarks

glmark2-drm

one scene, custom options

to run a benchmark using scene 'shading' with a 'duration' of '5.0' seconds and 'shading' of type 'phong':

glmark2-drm -b shading:duration=5.0:shading=phong

a whole series of benchmarks

to run a series of benchmarks, use the -b, --benchmark command line option multiple times:

glmark2-drm -b shading:duration=5.0 -b build:use-vbo=false -b texture

setting default option values for benchmarks

glmark2-drm -b :duration=2.0 -b shading -b build -b :duration=5.0 -b texture

see how the :duration=... ones have no scene name? that's the special case from BENCHMARKS, bestie. she's setting defaults as she goes 🫢


πŸ’œ AUTHOR πŸ’œ

glmark2-drm was written by Alexandros Frantzis and Jesse Barker, based on the original glmark by Ben Smith. absolute legends, we love them πŸ‘‘


ngl that's the whole page. go forth and benchmark, babe πŸ’…

this has been glmark2-drm version 2023.01, dated January 2023. mwah, take care of her πŸŽ€βœ¨

πŸ“¦ where this page comes from