Revert "Revert "Add define to use customize vulkan header.""
This reverts commitb351817588
. Reason for revert: Relanding with android fixes Original change's description: > Revert "Add define to use customize vulkan header." > > This reverts commita492eb0e1f
. > > Reason for revert: Breaking Android roll (b/c builds tools?) > > Original change's description: > > Add define to use customize vulkan header. > > > > Bug: skia: > > Change-Id: Ia87c81a54603a02b2f8f51a735bf173a49afe6c7 > > Reviewed-on: https://skia-review.googlesource.com/81121 > > Commit-Queue: Greg Daniel <egdaniel@google.com> > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > TBR=egdaniel@google.com,bsalomon@google.com > > Change-Id: I80a685bf88af909865f274ffc61686be57e8c313 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/81740 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=egdaniel@google.com,bsalomon@google.com Change-Id: Ia701e884bfa3799dc73002f892feb2ecafe9da12 Reviewed-on: https://skia-review.googlesource.com/81742 Reviewed-by: Derek Sollenberger <djsollen@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
This commit is contained in:
parent
44aa9b2d1e
commit
afb7ec7a40
25
BUILD.gn
25
BUILD.gn
@ -40,6 +40,7 @@ declare_args() {
|
||||
skia_enable_spirv_validation = is_skia_dev_build && is_debug
|
||||
skia_enable_tools = is_skia_dev_build
|
||||
skia_enable_vulkan_debug_layers = is_skia_dev_build && is_debug
|
||||
skia_vulkan_header = ""
|
||||
skia_vulkan_sdk = getenv("VULKAN_SDK")
|
||||
skia_qt_path = getenv("QT_PATH")
|
||||
skia_compile_processors = false
|
||||
@ -63,13 +64,13 @@ declare_args() {
|
||||
}
|
||||
}
|
||||
declare_args() {
|
||||
skia_vulkan_headers = ""
|
||||
skia_tools_vulkan_header_dir = ""
|
||||
if (skia_use_vulkan) {
|
||||
# When buliding on Android we get the header via the NDK so no need for any extra path.
|
||||
if (is_fuchsia) {
|
||||
skia_vulkan_headers = "$fuchsia_vulkan_sdk/include"
|
||||
skia_tools_vulkan_header_dir = "$fuchsia_vulkan_sdk/include"
|
||||
} else if (is_linux || is_win) {
|
||||
skia_vulkan_headers = "$skia_vulkan_sdk/include"
|
||||
skia_tools_vulkan_header_dir = "$skia_vulkan_sdk/include"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -114,8 +115,8 @@ if (skia_use_metal) {
|
||||
# Skia public API, generally provided by :skia.
|
||||
config("skia_public") {
|
||||
include_dirs = skia_public_includes
|
||||
if (skia_vulkan_headers != "") {
|
||||
include_dirs += [ skia_vulkan_headers ]
|
||||
if (skia_tools_vulkan_header_dir != "") {
|
||||
include_dirs += [ skia_tools_vulkan_header_dir ]
|
||||
}
|
||||
defines = []
|
||||
if (is_component_build) {
|
||||
@ -178,6 +179,9 @@ config("skia_private") {
|
||||
lib_dirs = []
|
||||
if (skia_enable_gpu) {
|
||||
include_dirs += [ "src/gpu" ]
|
||||
if (is_skia_dev_build && skia_use_vulkan) {
|
||||
include_dirs += [ "tools/gpu/vk" ]
|
||||
}
|
||||
}
|
||||
if (skia_use_angle) {
|
||||
defines += [ "SK_ANGLE" ]
|
||||
@ -581,6 +585,13 @@ optional("gpu") {
|
||||
if (skia_enable_vulkan_debug_layers) {
|
||||
public_defines += [ "SK_ENABLE_VK_LAYERS" ]
|
||||
}
|
||||
if (skia_vulkan_header != "") {
|
||||
public_defines += [ "SK_VULKAN_HEADER=\"$skia_vulkan_header\"" ]
|
||||
} else {
|
||||
if (is_skia_dev_build) {
|
||||
public_defines += [ "SK_VULKAN_HEADER=\"GrVulkanDefines.h\"" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
if (skia_enable_spirv_validation) {
|
||||
deps += [ "//third_party/spirv-tools" ]
|
||||
@ -887,6 +898,10 @@ if (skia_enable_tools) {
|
||||
|
||||
config("skia.h_config") {
|
||||
include_dirs = [ "$target_gen_dir" ]
|
||||
if (skia_use_vulkan) {
|
||||
# So we can get the header which includes vulkan
|
||||
include_dirs += [ "tools/gpu/vk" ]
|
||||
}
|
||||
}
|
||||
action("skia.h") {
|
||||
public_configs = [ ":skia.h_config" ]
|
||||
|
@ -177,6 +177,7 @@ gn_args = {
|
||||
'skia_use_vulkan': 'true',
|
||||
'target_cpu': '"none"',
|
||||
'target_os': '"android"',
|
||||
'skia_vulkan_header': '"Skia_Vulkan_Android.h"',
|
||||
}
|
||||
gn_args = ' '.join(sorted('%s=%s' % (k,v) for (k,v) in gn_args.iteritems()))
|
||||
|
||||
@ -241,6 +242,11 @@ cflags_cc.add("-fexceptions")
|
||||
cflags = sorted(cflags)
|
||||
cflags.insert(0, "-U_FORTIFY_SOURCE")
|
||||
|
||||
# We need to add the include path to the vulkan defines and header file set in
|
||||
# then skia_vulkan_header gn arg that is used for framework builds.
|
||||
local_includes.add("platform_tools/android/vulkan")
|
||||
export_includes.add("platform_tools/android/vulkan")
|
||||
|
||||
# Most defines go into SkUserConfig.h, where they're seen by Skia and its users.
|
||||
defines = [str(d) for d in js['targets']['//:skia']['defines']]
|
||||
defines.remove('NDEBUG') # Let the Android build control this.
|
||||
|
@ -11,33 +11,40 @@
|
||||
|
||||
#ifdef SK_VULKAN
|
||||
|
||||
#if defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_WIN32)
|
||||
# if !defined(VK_USE_PLATFORM_WIN32_KHR)
|
||||
# define VK_USE_PLATFORM_WIN32_KHR
|
||||
# endif
|
||||
#elif defined(SK_BUILD_FOR_ANDROID)
|
||||
# if !defined(VK_USE_PLATFORM_ANDROID_KHR)
|
||||
# define VK_USE_PLATFORM_ANDROID_KHR
|
||||
# endif
|
||||
#elif defined(SK_BUILD_FOR_UNIX)
|
||||
# if defined(__Fuchsia__)
|
||||
# if !defined(VK_USE_PLATFORM_MAGMA_KHR)
|
||||
# define VK_USE_PLATFORM_MAGMA_KHR
|
||||
#ifdef SK_VULKAN_HEADER
|
||||
#include SK_VULKAN_HEADER
|
||||
#else
|
||||
// This is deprecated and all clients should define their own custum header shim that sets up
|
||||
// defines and includes the vulkan.h header. Then they should define SK_VULKAN_HEADER or set the
|
||||
// skia_vulkan_header in gn to point to their custom header.
|
||||
# if defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_WIN32)
|
||||
# if !defined(VK_USE_PLATFORM_WIN32_KHR)
|
||||
# define VK_USE_PLATFORM_WIN32_KHR
|
||||
# endif
|
||||
# else
|
||||
# if !defined(VK_USE_PLATFORM_XCB_KHR)
|
||||
# define VK_USE_PLATFORM_XCB_KHR
|
||||
# elif defined(SK_BUILD_FOR_ANDROID)
|
||||
# if !defined(VK_USE_PLATFORM_ANDROID_KHR)
|
||||
# define VK_USE_PLATFORM_ANDROID_KHR
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
# elif defined(SK_BUILD_FOR_UNIX)
|
||||
# if defined(__Fuchsia__)
|
||||
# if !defined(VK_USE_PLATFORM_MAGMA_KHR)
|
||||
# define VK_USE_PLATFORM_MAGMA_KHR
|
||||
# endif
|
||||
# else
|
||||
# if !defined(VK_USE_PLATFORM_XCB_KHR)
|
||||
# define VK_USE_PLATFORM_XCB_KHR
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
// We create our own function table and never directly call any functions via vk*(). So no need to
|
||||
// include the prototype functions.
|
||||
#if !defined(VK_NO_PROTOTYPES) && !defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
|
||||
#define VK_NO_PROTOTYPES
|
||||
#endif
|
||||
# if !defined(VK_NO_PROTOTYPES) && !defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
|
||||
# define VK_NO_PROTOTYPES
|
||||
# endif
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
# include <vulkan/vulkan.h>
|
||||
#endif // SK_VULKAN_HEADER
|
||||
|
||||
#define SKIA_REQUIRED_VULKAN_HEADER_VERSION 17
|
||||
#if VK_HEADER_VERSION < SKIA_REQUIRED_VULKAN_HEADER_VERSION
|
||||
|
23
platform_tools/android/vulkan/Skia_Vulkan_Android.h
Normal file
23
platform_tools/android/vulkan/Skia_Vulkan_Android.h
Normal file
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright 2017 Google Inc.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
#ifndef Skia_Vulkan_Android_DEFINED
|
||||
#define Skia_Vulkan_Android_DEFINED
|
||||
|
||||
#if !defined(SK_BUILD_FOR_ANDROID)
|
||||
#error "Must be building for android to use this header"
|
||||
#endif
|
||||
#if !defined(VK_USE_PLATFORM_ANDROID_KHR)
|
||||
# define VK_USE_PLATFORM_ANDROID_KHR
|
||||
#endif
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
33
tools/gpu/vk/GrVulkanDefines.h
Normal file
33
tools/gpu/vk/GrVulkanDefines.h
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright 2017 Google Inc.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
#ifndef GrVulkanDefines_DEFINED
|
||||
#define GrVulkanDefines_DEFINED
|
||||
|
||||
#if defined(SK_BUILD_FOR_WIN) || defined(SK_BUILD_FOR_WIN32)
|
||||
# if !defined(VK_USE_PLATFORM_WIN32_KHR)
|
||||
# define VK_USE_PLATFORM_WIN32_KHR
|
||||
# endif
|
||||
#elif defined(SK_BUILD_FOR_ANDROID)
|
||||
# if !defined(VK_USE_PLATFORM_ANDROID_KHR)
|
||||
# define VK_USE_PLATFORM_ANDROID_KHR
|
||||
# endif
|
||||
#elif defined(SK_BUILD_FOR_UNIX)
|
||||
# if !defined(VK_USE_PLATFORM_XCB_KHR)
|
||||
# define VK_USE_PLATFORM_XCB_KHR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// We create our own function table and never directly call any functions via vk*(). So no need to
|
||||
// include the prototype functions.
|
||||
#if !defined(VK_NO_PROTOTYPES)
|
||||
#define VK_NO_PROTOTYPES
|
||||
#endif
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user