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:`screenshot` 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,screenshot 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_screenshot /path/to/my_vulkan_app 24*61046927SAndroid Build Coastguard Worker 25*61046927SAndroid Build Coastguard Worker 26*61046927SAndroid Build Coastguard WorkerList the help menu: 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_screenshot VK_LAYER_MESA_SCREENSHOT_CONFIG=help /path/to/my_vulkan_app 31*61046927SAndroid Build Coastguard Worker 32*61046927SAndroid Build Coastguard WorkerEnable log output in stdout/stderr: 33*61046927SAndroid Build Coastguard Worker 34*61046927SAndroid Build Coastguard Worker.. code-block:: sh 35*61046927SAndroid Build Coastguard Worker 36*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_screenshot VK_LAYER_MESA_SCREENSHOT_CONFIG=log_type=<info|debug> /path/to/my_vulkan_app 37*61046927SAndroid Build Coastguard Worker 38*61046927SAndroid Build Coastguard WorkerRedirect screenshots taken to a different directory: 39*61046927SAndroid Build Coastguard Worker 40*61046927SAndroid Build Coastguard Worker.. code-block:: sh 41*61046927SAndroid Build Coastguard Worker 42*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_screenshot VK_LAYER_MESA_SCREENSHOT_CONFIG=output_dir=/path/to/new_dir /path/to/my_vulkan_app 43*61046927SAndroid Build Coastguard Worker 44*61046927SAndroid Build Coastguard WorkerCapture pre-determined screenshots: 45*61046927SAndroid Build Coastguard Worker 46*61046927SAndroid Build Coastguard Worker.. code-block:: sh 47*61046927SAndroid Build Coastguard Worker 48*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_screenshot VK_LAYER_MESA_SCREENSHOT_CONFIG=frames=1/5/7/15-4-5 /path/to/my_vulkan_app 49*61046927SAndroid Build Coastguard Worker 50*61046927SAndroid Build Coastguard WorkerNote: 51*61046927SAndroid Build Coastguard Worker - Individual frames are separated by '/' and must be listed before the frame range 52*61046927SAndroid Build Coastguard Worker - The frame range is determined by <range start>-<range count>-<range interval> 53*61046927SAndroid Build Coastguard Worker - Example: '1/5/7/15-4-5' gives individual frames [1,5,7], then the frame range gives [15,20,25,30], combining into [1,5,7,15,20,25,30] 54*61046927SAndroid Build Coastguard Worker 55*61046927SAndroid Build Coastguard WorkerTo capture all frames: 56*61046927SAndroid Build Coastguard Worker 57*61046927SAndroid Build Coastguard Worker.. code-block:: sh 58*61046927SAndroid Build Coastguard Worker 59*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_screenshot VK_LAYER_MESA_SCREENSHOT_CONFIG=frames=all /path/to/my_vulkan_app 60*61046927SAndroid Build Coastguard Worker 61*61046927SAndroid Build Coastguard WorkerDirect Socket Control 62*61046927SAndroid Build Coastguard Worker--------------------- 63*61046927SAndroid Build Coastguard Worker 64*61046927SAndroid Build Coastguard WorkerEnabling communication with the client can be done with the following setup: 65*61046927SAndroid Build Coastguard Worker 66*61046927SAndroid Build Coastguard Worker.. code-block:: sh 67*61046927SAndroid Build Coastguard Worker 68*61046927SAndroid Build Coastguard Worker VK_LOADER_LAYERS_ENABLE=VK_LAYER_MESA_screenshot VK_LAYER_MESA_SCREENSHOT_CONFIG=comms /path/to/my_vulkan_app 69*61046927SAndroid Build Coastguard Worker 70*61046927SAndroid Build Coastguard WorkerThe Unix socket may be used directly if needed. Once a client connects to the socket, the overlay layer will immediately 71*61046927SAndroid Build Coastguard Workersend the following commands to the client: 72*61046927SAndroid Build Coastguard Worker 73*61046927SAndroid Build Coastguard Worker.. code-block:: sh 74*61046927SAndroid Build Coastguard Worker 75*61046927SAndroid Build Coastguard Worker :MesaOverlayControlVersion=1; 76*61046927SAndroid Build Coastguard Worker :DeviceName=<device name>; 77*61046927SAndroid Build Coastguard Worker :MesaVersion=<mesa version>; 78*61046927SAndroid Build Coastguard Worker 79*61046927SAndroid Build Coastguard WorkerThe client connected to the overlay layer can trigger a screenshot to be taken by sending the command: 80*61046927SAndroid Build Coastguard Worker 81*61046927SAndroid Build Coastguard Worker.. code-block:: sh 82*61046927SAndroid Build Coastguard Worker 83*61046927SAndroid Build Coastguard Worker :capture=<screenshot_name.png>; 84*61046927SAndroid Build Coastguard Worker 85*61046927SAndroid Build Coastguard WorkerNote that the screenshot name must include '.png', other image types are not supported. 86*61046927SAndroid Build Coastguard Worker 87*61046927SAndroid Build Coastguard Worker.. _docs/install.rst: ../../docs/install.rst 88