A Vulkan layer to display information about the running application using an overlay. To turn on the layer run : VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay /path/to/my_vulkan_app List the available statistics : VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=help /path/to/my_vulkan_app Turn on some statistics : VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=submit,draw,pipeline_graphics /path/to/my_vulkan_app Position the layer : VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=submit,draw,pipeline_graphics,position=top-right /path/to/my_vulkan_app Dump statistics into a file: VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=position=top-right,output_file=/tmp/output.txt /path/to/my_vulkan_app Dump statistics into a file, controlling when such statistics will start to be captured: VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=position=top-right,output_file=/tmp/output.txt,control=mesa_overlay /path/to/my_vulkan_app The above command will open a unix socket with abstract path 'mesa_overlay'. Once a client connects to the socket, the overlay layer will immediately send the following commands to the client: :MesaOverlayControlVersion=1; :DeviceName=; :MesaVersion=; The client connected to the overlay layer can enable statistics capturing by sending the command: :capture=1; And disable it by emitting :capture=0; By default, capture is enabled when an output_file is specified, but it will be disabled by default when a control socket is in use. In the latter case, it needs to be explicitly enabled through the sockets, by using the commands above. The provided script overlay-control.py can be used to start/stop capture. The --path option can be used to specify the socket path. By default, it will try to connect to a path named "mesa_overlay".