From 40a945f293e2cc1a6ed130777c973c5cbcde1059 Mon Sep 17 00:00:00 2001 From: Yuly Novikov Date: Thu, 1 Mar 2018 17:37:43 -0500 Subject: [PATCH] Rename vulkan_loader to libvulkan Also add a build argument to build it as a shared library. BUG=angleproject:2343 Change-Id: Ia590632b94d71b10d3ee64974fa4f5b4f00c3a70 Reviewed-on: https://chromium-review.googlesource.com/954403 Reviewed-by: Jamie Madill Commit-Queue: Yuly Novikov --- BUILD.gn | 3 +-- doc/DebuggingTips.md | 11 +++++++++++ gni/angle.gni | 1 + third_party/vulkan-validation-layers/BUILD.gn | 8 +++++++- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index f0c233ec2..345f27d95 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -429,8 +429,7 @@ if (angle_enable_vulkan) { "$angle_root/third_party/vulkan-validation-layers:vulkan_config", ] if (!is_android) { - deps += - [ "$angle_root/third_party/vulkan-validation-layers:vulkan_loader" ] + deps += [ "$angle_root/third_party/vulkan-validation-layers:libvulkan" ] data_deps += [ "$angle_root/third_party/vulkan-validation-layers:vulkan_gen_json_files" ] public_configs += [ "$angle_root/third_party/vulkan-validation-layers:vulkan_loader_config" ] } diff --git a/doc/DebuggingTips.md b/doc/DebuggingTips.md index 17b5d01de..793a1f8d8 100644 --- a/doc/DebuggingTips.md +++ b/doc/DebuggingTips.md @@ -24,3 +24,14 @@ export TRACE_LIBGL="/usr/lib/libGL.so.1" # may require a different path apitrace trace -o mytrace ./out/Debug/hello_triangle qapitrace mytrace ``` + +## Running ANGLE under GAPID on Linux + +[GAPID](https://github.com/google/gapid) can be used to capture trace of Vulkan commands on Linux. +For it to work, libvulkan has to be a shared library, instead of being statically linked into ANGLE, which is the default behavior. +This is done with the gn arg: +``` +angle_shared_libvulkan = true +``` + +When capturing traces of gtest based tests built inside Chromium checkout, make sure to run the tests with `--single-process-tests` argument. \ No newline at end of file diff --git a/gni/angle.gni b/gni/angle.gni index 3bf2c94d2..c347602fc 100644 --- a/gni/angle.gni +++ b/gni/angle.gni @@ -31,6 +31,7 @@ declare_args() { (current_cpu == "arm" && android32_ndk_api_level >= 24) || (current_cpu == "arm64" && android64_ndk_api_level >= 24) } + angle_shared_libvulkan = false } declare_args() { diff --git a/third_party/vulkan-validation-layers/BUILD.gn b/third_party/vulkan-validation-layers/BUILD.gn index c8ca7945b..d84a266b6 100644 --- a/third_party/vulkan-validation-layers/BUILD.gn +++ b/third_party/vulkan-validation-layers/BUILD.gn @@ -273,7 +273,13 @@ config("vulkan_loader_config") { } if (!is_android) { - static_library("vulkan_loader") { + if (angle_shared_libvulkan) { + library_type = "shared_library" + } else { + library_type = "static_library" + } + + target(library_type, "libvulkan") { sources = [ "src/loader/cJSON.c", "src/loader/cJSON.h",