Refactor Vulkan support to support Fuchsia
- Refactor runtime lookup of Vulkan functions
- Support Magma surfaces
- Add build flags to toggle Vulkan support
BUG=skia:
Change-Id: Ic71965c453507882521443006c4155c7481a9a3f
Reviewed-on: https://skia-review.googlesource.com/9342
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Michael Jurka <mikejurka@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 1801c32..8bbd12a 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -37,6 +37,7 @@
skia_enable_tools = is_skia_dev_build
skia_enable_vulkan_debug_layers = is_skia_dev_build && is_debug
skia_vulkan_sdk = getenv("VULKAN_SDK")
+ skia_link_with_vulkan = true
}
declare_args() {
skia_use_dng_sdk = !is_fuchsia && skia_use_libjpeg_turbo && skia_use_zlib
@@ -47,6 +48,11 @@
} else {
skia_use_vulkan = skia_vulkan_sdk != ""
}
+ if (is_win) {
+ skia_vulkan_headers_path = "$skia_vulkan_sdk/Include"
+ } else {
+ skia_vulkan_headers_path = "$skia_vulkan_sdk/include"
+ }
}
# Our tools require static linking (they use non-exported symbols).
@@ -133,22 +139,26 @@
libs = []
lib_dirs = []
if (skia_use_vulkan) {
+ include_dirs += [ skia_vulkan_headers_path ]
+
if (skia_vulkan_sdk != "" && !is_android) {
if (is_win) {
- include_dirs += [ "$skia_vulkan_sdk/Include/" ]
lib_dirs += [
"$skia_vulkan_sdk/Bin",
"$skia_vulkan_sdk/Lib",
]
} else {
- include_dirs += [ "$skia_vulkan_sdk/include/" ]
lib_dirs += [ "$skia_vulkan_sdk/lib/" ]
}
}
- if (is_win) {
- libs += [ "vulkan-1.lib" ]
- } else {
- libs += [ "vulkan" ]
+
+ if (skia_link_with_vulkan) {
+ defines += [ "SK_LINK_WITH_VULKAN" ]
+ if (is_win) {
+ libs += [ "vulkan-1.lib" ]
+ } else {
+ libs += [ "vulkan" ]
+ }
}
}
if (skia_enable_gpu) {