dawn-cmake/scripts/dawn_features.gni

92 lines
3.4 KiB
Plaintext
Raw Normal View History

# Copyright 2018 The Dawn Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//build_overrides/build.gni")
if (build_with_chromium) {
import("//build/config/sanitizers/sanitizers.gni")
}
declare_args() {
# Enables usage of swiftshader on the Vulkan backend.
# Note that this will only work in standalone and in projects that set the
# dawn_swiftshader_dir variable in build_overrides/dawn.gni
# Because of how the Vulkan loader works, setting this makes Dawn only able
# to find the Swiftshader ICD and not the others.
# Enabled by default when fuzzing.
dawn_use_swiftshader = build_with_chromium && use_fuzzing_engine
}
declare_args() {
# Enable Dawn's ASSERTs even in release builds
dawn_always_assert = false
# Should the Dawn static libraries be fully linked vs. GN's default of
# treating them as source sets. This is useful for people using Dawn
# standalone to produce static libraries to use in their projects.
dawn_complete_static_libs = false
# Enables the compilation of Dawn's D3D12 backend
dawn_enable_d3d12 = is_win
# Enables the compilation of Dawn's Metal backend
dawn_enable_metal = is_mac
# Enables the compilation of Dawn's Null backend
# (required for unittests, obviously non-conformant)
dawn_enable_null = true
# Enables the compilation of Dawn's OpenGL backend
# (best effort, non-conformant)
dawn_enable_opengl = is_linux && !is_chromeos
# Enables the compilation of Dawn's Vulkan backend
dawn_enable_vulkan =
is_linux || is_win || is_fuchsia || is_android || dawn_use_swiftshader
# Enable use of reflection compiler in spirv-cross. This is needed
# if performing reflection on systems that the platform language
# shader is SPIR-V, since there isn't an instance of the
# GLSL/HLSL/MSL compiler. This implicitly pulls in the GLSL
# compiler, since it is a sub-class of it.
dawn_enable_cross_reflection = false
# Enables error injection for faking failures to native API calls
dawn_enable_error_injection =
is_debug || (build_with_chromium && use_fuzzing_engine)
# Whether Dawn should enable X11 support.
dawn_use_x11 = is_linux && !is_chromeos
Revert "Turn on WGSL support by default in Dawn" This reverts commit e1d976ed9123ccbe8a9fa31ffb90c2b19fc53eb7. Reason for revert: crbug.com/tint/123 Original change's description: > Turn on WGSL support by default in Dawn > > Tint is available in Chromium now, so we can turn this on. For situations were > WGSL support is not needed it can still be turned off via args.gn. > > Roll third_party/tint/ 16890b9ce..13904a612 (15 commits) > > https://dawn.googlesource.com/tint/+log/16890b9ce8b7..5f43fedcd > > $ git log 16890b9ce..5f43fedcd --date=short --no-merges --format='%ad %ae %s' > 2020-07-16 rharrison Clean up how deps are defined in BUILD.gn > 2020-07-16 dsinclair Remove refs.cfg. > 2020-07-16 dsinclair Fixup group list name > 2020-07-16 dsinclair [msl-writer] Emitting of program constants. > 2020-07-16 dsinclair [msl-writer] Fixup matrix and array constructors. > 2020-07-16 dsinclair Differentiate size and stride in array type name. > 2020-07-16 dneto [spirv-reader] Support duplicate type definitions > 2020-07-15 dsinclair [msl-writer] Add struct offset support. > 2020-07-15 dsinclair [msl-writer] Add builtin support > 2020-07-15 dsinclair Add helpers for referenced variables. > 2020-07-15 dsinclair [msl-writer] Refactor some entry point variable code. > 2020-07-15 dsinclair [msl-writer] Generate entry point functions. > 2020-07-14 dsinclair [msl-writer] Handle emitting user function calls. > 2020-07-14 dsinclair Inherit refererenced globals up the call stack. > 2020-07-14 dsinclair [msl-writer] Generate input/output structs > > Created with: > roll-dep third_party/tint > > Change-Id: Ia437e8dc309b06a64ddd4d91ec3af1499af13553 > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/24920 > Commit-Queue: Ryan Harrison <rharrison@chromium.org> > Reviewed-by: dan sinclair <dsinclair@chromium.org> > Reviewed-by: Ryan Harrison <rharrison@chromium.org> TBR=cwallez@chromium.org,kainino@chromium.org,enga@chromium.org,dneto@google.com,rharrison@chromium.org,dsinclair@chromium.org Change-Id: I21513d5b5d461eccd42aa650fa4b46e85daf642f No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/25480 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2020-07-22 14:34:49 +00:00
# Enable support WGSL for shaders. Currently this is
# experimental, and requires dawn_tint_dir to be set.
dawn_enable_wgsl = false
}
# GN does not allow reading a variable defined in the same declare_args().
# Put them in two separate declare_args() when setting the value of one
# argument based on another.
declare_args() {
# Uses our built version of the Vulkan validation layers
dawn_enable_vulkan_validation_layers =
dawn_enable_vulkan && ((is_linux && !is_chromeos) || is_win || is_mac)
# Uses our built version of the Vulkan loader on platforms where we can't
# assume to have one present at the system level.
dawn_enable_vulkan_loader = dawn_enable_vulkan && is_mac
}
dawn_supports_glfw_for_windowing =
is_win || (is_linux && !is_chromeos) || is_mac