1*61046927SAndroid Build Coastguard WorkerA Vulkan layer to display information about the running application using an overlay. 2*61046927SAndroid Build Coastguard Worker 3*61046927SAndroid Build Coastguard WorkerBuilding 4*61046927SAndroid Build Coastguard Worker======= 5*61046927SAndroid Build Coastguard Worker 6*61046927SAndroid Build Coastguard WorkerThe overlay layer will be built if :code:`overlay` is passed as a :code:`vulkan-layers` argument. For example: 7*61046927SAndroid Build Coastguard Worker 8*61046927SAndroid Build Coastguard Worker.. code-block:: sh 9*61046927SAndroid Build Coastguard Worker 10*61046927SAndroid Build Coastguard Worker meson -Dvulkan-layers=device-select,overlay builddir/ 11*61046927SAndroid Build Coastguard Worker ninja -C builddir/ 12*61046927SAndroid Build Coastguard Worker sudo ninja -C builddir/ install 13*61046927SAndroid Build Coastguard Worker 14*61046927SAndroid Build Coastguard WorkerSee `docs/install.rst <https://gitlab.freedesktop.org/mesa/mesa/-/blob/master/docs/install.rst>`__ for more information. 15*61046927SAndroid Build Coastguard Worker 16*61046927SAndroid Build Coastguard WorkerBasic Usage 17*61046927SAndroid Build Coastguard Worker======= 18*61046927SAndroid Build Coastguard Worker 19*61046927SAndroid Build Coastguard WorkerTurn on the layer: 20*61046927SAndroid Build Coastguard Worker 21*61046927SAndroid Build Coastguard Worker.. code-block:: sh 22*61046927SAndroid Build Coastguard Worker 23*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_overlay /path/to/my_vulkan_app 24*61046927SAndroid Build Coastguard Worker 25*61046927SAndroid Build Coastguard Worker 26*61046927SAndroid Build Coastguard WorkerList the available statistics: 27*61046927SAndroid Build Coastguard Worker 28*61046927SAndroid Build Coastguard Worker.. code-block:: sh 29*61046927SAndroid Build Coastguard Worker 30*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=help /path/to/my_vulkan_app 31*61046927SAndroid Build Coastguard Worker 32*61046927SAndroid Build Coastguard Worker 33*61046927SAndroid Build Coastguard WorkerTurn on some statistics: 34*61046927SAndroid Build Coastguard Worker 35*61046927SAndroid Build Coastguard Worker.. code-block:: sh 36*61046927SAndroid Build Coastguard Worker 37*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=submit,draw,pipeline_graphics /path/to/my_vulkan_app 38*61046927SAndroid Build Coastguard Worker 39*61046927SAndroid Build Coastguard WorkerPosition the overlay: 40*61046927SAndroid Build Coastguard Worker 41*61046927SAndroid Build Coastguard Worker.. code-block:: sh 42*61046927SAndroid Build Coastguard Worker 43*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=submit,draw,pipeline_graphics,position=top-right /path/to/my_vulkan_app 44*61046927SAndroid Build Coastguard Worker 45*61046927SAndroid Build Coastguard WorkerLogging Statistics 46*61046927SAndroid Build Coastguard Worker======= 47*61046927SAndroid Build Coastguard Worker 48*61046927SAndroid Build Coastguard WorkerLog statistics to a file: 49*61046927SAndroid Build Coastguard Worker 50*61046927SAndroid Build Coastguard Worker.. code-block:: sh 51*61046927SAndroid Build Coastguard Worker 52*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=output_file=/tmp/output.txt /path/to/my_vulkan_app 53*61046927SAndroid Build Coastguard Worker 54*61046927SAndroid Build Coastguard WorkerLogging is enabled for the entire lifecycle of the process unless a control socket is specified (see below). 55*61046927SAndroid Build Coastguard Worker 56*61046927SAndroid Build Coastguard Worker**Note:** some statistics (e.g. :code:`frame_timing` and :code:`gpu_timing`) log values for the entire sample interval instead of per-frame. 57*61046927SAndroid Build Coastguard WorkerFor these statistics, logging the :code:`frame` statistic allows one to compute per-frame statistics after capture. 58*61046927SAndroid Build Coastguard Worker 59*61046927SAndroid Build Coastguard WorkerLog statistics to a file, controlling when such statistics will start to be captured: 60*61046927SAndroid Build Coastguard Worker 61*61046927SAndroid Build Coastguard Worker.. code-block:: sh 62*61046927SAndroid Build Coastguard Worker 63*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG=output_file=/tmp/output.txt,control=mesa_overlay /path/to/my_vulkan_app 64*61046927SAndroid Build Coastguard Worker 65*61046927SAndroid Build Coastguard WorkerThe command above will open a Unix socket with the abstract path :code:`mesa_overlay`. When a control socket is specified, 66*61046927SAndroid Build Coastguard Workerlogging must be explicitly enabled through the control socket. :code:`mesa-overlay-control.py` provides a convenient CLI: 67*61046927SAndroid Build Coastguard Worker 68*61046927SAndroid Build Coastguard Worker.. code-block:: sh 69*61046927SAndroid Build Coastguard Worker 70*61046927SAndroid Build Coastguard Worker mesa-overlay-control.py start-capture 71*61046927SAndroid Build Coastguard Worker 72*61046927SAndroid Build Coastguard Worker.. code-block:: sh 73*61046927SAndroid Build Coastguard Worker 74*61046927SAndroid Build Coastguard Worker mesa-overlay-control.py stop-capture 75*61046927SAndroid Build Coastguard Worker 76*61046927SAndroid Build Coastguard WorkerDirect Socket Control 77*61046927SAndroid Build Coastguard Worker------ 78*61046927SAndroid Build Coastguard Worker 79*61046927SAndroid Build Coastguard WorkerThe Unix socket may be used directly if needed. Once a client connects to the socket, the overlay layer will immediately 80*61046927SAndroid Build Coastguard Workersend the following commands to the client: 81*61046927SAndroid Build Coastguard Worker 82*61046927SAndroid Build Coastguard Worker.. code-block:: sh 83*61046927SAndroid Build Coastguard Worker 84*61046927SAndroid Build Coastguard Worker :MesaOverlayControlVersion=1; 85*61046927SAndroid Build Coastguard Worker :DeviceName=<device name>; 86*61046927SAndroid Build Coastguard Worker :MesaVersion=<mesa version>; 87*61046927SAndroid Build Coastguard Worker 88*61046927SAndroid Build Coastguard WorkerThe client connected to the overlay layer can enable statistics capturing by sending the command: 89*61046927SAndroid Build Coastguard Worker 90*61046927SAndroid Build Coastguard Worker.. code-block:: sh 91*61046927SAndroid Build Coastguard Worker 92*61046927SAndroid Build Coastguard Worker :capture=1; 93*61046927SAndroid Build Coastguard Worker 94*61046927SAndroid Build Coastguard WorkerAnd disable it by sending: 95*61046927SAndroid Build Coastguard Worker 96*61046927SAndroid Build Coastguard Worker.. code-block:: sh 97*61046927SAndroid Build Coastguard Worker 98*61046927SAndroid Build Coastguard Worker :capture=0; 99*61046927SAndroid Build Coastguard Worker 100*61046927SAndroid Build Coastguard Worker.. _docs/install.rst: ../../docs/install.rst 101