vkmark - Man Page

Vulkan benchmark suite


vkmark [options]


vkmark is an extensible Vulkan benchmarking suite with targeted, configurable scenes.


-b,  --benchmark BENCH

A benchmark to run: 'scene(:opt1=val1)*' (the option can be used multiple times)

-s,  --size WxH

Size of the output window (default: 800x600)


Run in fullscreen mode (equivalent to --size -1x-1)

-p,  --present-mode PM

Vulkan present mode (default: mailbox) [immediate, mailbox, fifo, fiforelaxed]

--pixel-format PF

Vulkan pixel format (default: choose best)

-l,  --list-scenes

Display information about the available scenes and their options


Show all scene option values used for benchmarks (only explicitly set options are shown by default)

--winsys-dir DIR

Directory to search in for window system plugins

--data-dir DIR

Directory to search in for scene data files

--winsys WS

Window system plugin to use (default: choose best) [xcb, wayland, kms]

--winsys-options OPTS

Window system options as 'opt1=val1(:opt2=val2)*'


Run indefinitely, looping from the last benchmark back to the first

-d,  --debug

Display debug messages

-D,  --use-device

Use Vulkan device with specified UUID

-L,  --list-devices

List Vulkan devices

-h,  --help

Display help


vkmark offers a suite of scenes that can be used to measure various aspects of Vulkan performance. The way in which each scene is rendered is configurable through a set of options. To get the available scenes and their acceptable options you can use the -l, --list-scenes command line option.

In vkmark, a benchmark is defined as a scene plus a set of option values. You can specify the list and order of the benchmarks to run by using the -b, --benchmark command line option (possibly multiple times). If no benchmarks are specified, a default set of benchmarks is used. If a benchmark option is not specified it assumes its default value (listed with -l, --list-scenes).

As a special case, a benchmark description string is allowed to not contain a scene name (i.e. to start with ':'). In this case, any specified option values are used as the default values for benchmarks following this description string.


To run the default benchmarks:


To run a benchmark using scene 'vertex' with a 'duration' of '5.0' seconds and 'interleave' set to 'false':

vkmark -b vertex:duration=5.0:interleave=false

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

vkmark -b vertex:duration=5.0 -b clear:color=1.0,0.5,0 -b cube

To set default option values for benchmarks and run them:

vkmark -b :duration=2.0 -b vertex -b clear -b :duration=5.0 -b cube

To set default option values for the default benchmarks and run them:

vkmark -b :duration=2.0


vkmark was written by Alexandros Frantzis


August 2017 vkmark 2017.08