tint->dawn: Move src/dawn_native -> src/dawn/native

Bug: dawn:1275
Change-Id: Ic60a00107a015bc677ff929c492f1085ffc38482
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/79083
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
This commit is contained in:
Ben Clayton 2022-02-04 17:07:46 +00:00 committed by Dawn LUCI CQ
parent b2c4d7a244
commit 818001d32e
544 changed files with 3425 additions and 3397 deletions

View File

@ -17,7 +17,7 @@ import("scripts/dawn_overrides_with_defaults.gni")
group("all") {
testonly = true
deps = [
"src/dawn_native:webgpu_dawn",
"src/dawn/native:webgpu_dawn",
"src/fuzzers/dawn:dawn_fuzzers",
"src/tests:dawn_tests",
]

View File

@ -215,7 +215,7 @@ add_subdirectory(generator)
add_subdirectory(src/dawn)
add_subdirectory(src/dawn/common)
add_subdirectory(src/dawn/platform)
add_subdirectory(src/dawn_native)
add_subdirectory(src/dawn/native)
add_subdirectory(src/dawn/wire)
# TODO(dawn:269): Remove once the implementation-based swapchains are removed.
add_subdirectory(src/dawn/utils)

View File

@ -109,4 +109,4 @@ The schema of `dawn_wire.json` is a dictionary with the following keys:
## OpenGL loader generator
The code to load OpenGL entrypoints from a `GetProcAddress` function is generated from [`gl.xml`](../third_party/khronos/gl.xml) and the [list of extensions](../src/dawn_native/opengl/supported_extensions.json) it supports.
The code to load OpenGL entrypoints from a `GetProcAddress` function is generated from [`gl.xml`](../third_party/khronos/gl.xml) and the [list of extensions](../src/dawn/native/opengl/supported_extensions.json) it supports.

View File

@ -9,11 +9,11 @@ Example of backend facilities are GPU memory allocators or the backing API funct
### Error Handling
Dawn (dawn_native) uses the [Error.h](../src/dawn_native/Error.h) error handling to robustly handle errors.
Dawn (dawn_native) uses the [Error.h](../src/dawn/native/Error.h) error handling to robustly handle errors.
With `DAWN_TRY` errors bubble up all the way to, and are "consumed" by the entry-point that was called by the application.
Error consumption uses `Device::ConsumeError` that expose them via the WebGPU "error scopes" and can also influence the device lifecycle by notifying of a device loss, or triggering a device loss..
See [Error.h](../src/dawn_native/Error.h) for more information about using errors.
See [Error.h](../src/dawn/native/Error.h) for more information about using errors.
### Device Lifecycle
@ -26,7 +26,7 @@ The device lifecycle is a bit more complicated than other objects in Dawn for mu
- A device can become "disconnected" when a TDR or hot-unplug happens.
In this case, destruction of the device doesn't need to wait on GPU commands to finish because they just disappeared.
There is a state machine `State` defined in [Device.h](../src/dawn_native/Device.h) that controls all of the above.
There is a state machine `State` defined in [Device.h](../src/dawn/native/Device.h) that controls all of the above.
The most common state is `Alive` when there are potentially GPU commands executing.
Initialization of a device looks like the following:
@ -62,7 +62,7 @@ Toggles can be queried using `DeviceBase::IsToggleEnabled`:
bool useRenderPass = device->IsToggleEnabled(Toggle::UseD3D12RenderPass);
```
Toggles are defined in a table in [Toggles.cpp](../src/dawn_native/Toggles.cpp) that also includes their name and description.
Toggles are defined in a table in [Toggles.cpp](../src/dawn/native/Toggles.cpp) that also includes their name and description.
The name can be used to force enabling of a toggle or, at the contrary, force the disabling of a toogle.
This is particularly useful in tests so that the two sides of a code path can be tested (for example using D3D12 render passes and not).

View File

@ -15,10 +15,10 @@ This repository contains the implementation of Dawn, which is itself composed of
- [`src`](../src):
- [`dawn`](../src/dawn): root directory for Dawn code
- [`common`](../src/dawn/common): helper code that is allowed to be used by Dawn's core libraries, `dawn_native` and `dawn_wire`. Also allowed for use in all other Dawn targets.
- [`native`](../src/dawn/native): code for the implementation of WebGPU on top of graphics APIs. Files in this folder are the "frontend" while subdirectories are "backends".
- [`wire`](../src/dawn/wire): code for an implementation of WebGPU as a client-server architecture.
- [`utils`](../src/dawn/utils): helper code to use Dawn used by tests and samples but disallowed for `dawn_native` and `dawn_wire`.
- [`platform`](../src/dawn/platform): definition of interfaces for dependency injection in `dawn_native` or `dawn_wire`.
- [`dawn_native`](../src/dawn_native): code for the implementation of WebGPU on top of graphics APIs. Files in this folder are the "frontend" while subdirectories are "backends".
- `<backend>`: code for the implementation of the backend on a specific graphics API, for example `d3d12`, `metal` or `vulkan`.
- [`fuzzers`](../src/dawn/fuzzers): various fuzzers for Dawn that are running in [Clusterfuzz](https://google.github.io/clusterfuzz/).
- [`include`](../src/include): public headers with subdirectories for each library. Note that some headers are auto-generated and not present directly in the directory.

View File

@ -36,12 +36,11 @@ static_library("dawn_sample_utils") {
"${dawn_root}/src/dawn:dawn_proc",
"${dawn_root}/src/dawn:dawncpp",
"${dawn_root}/src/dawn/common",
"${dawn_root}/src/dawn/native",
"${dawn_root}/src/dawn/utils",
"${dawn_root}/src/dawn/utils:bindings",
"${dawn_root}/src/dawn/utils:glfw",
"${dawn_root}/src/dawn/wire",
"${dawn_root}/src/dawn_native",
"${dawn_root}/src/dawn_native",
]
public_configs = [ "${dawn_root}/src/dawn/common:internal_config" ]
}

View File

@ -59,8 +59,8 @@
#include "dawn/utils/WGPUHelpers.h"
#include <dawn/dawn_proc.h>
#include <dawn/native/DawnNative.h>
#include <dawn/webgpu_cpp.h>
#include <dawn_native/DawnNative.h>
#include "GLFW/glfw3.h"
#include <memory>

View File

@ -26,7 +26,7 @@
#include <dawn/dawn_proc.h>
#include <dawn/dawn_wsi.h>
#include <dawn_native/DawnNative.h>
#include <dawn/native/DawnNative.h>
#include "GLFW/glfw3.h"
#include <algorithm>

View File

@ -21,7 +21,7 @@ import("dawn_generator.gni")
# autogenerated sources there.
_stale_dirs = [
"dawn",
"dawn_native",
"dawn/native",
"dawn/wire",
"mock",
"src",

View File

@ -26,7 +26,7 @@ import("generator_lib.gni")
# 2. src/include and dawn_gen_root/src/include has to match the structure of
# the source tree too.
# 3. Dawn files must use include relative to src/ or src/include such as
# "dawn/dawn.h" or "dawn_native/backend/BackendStuff.h".
# "dawn/dawn.h" or "dawn/native/backend/BackendStuff.h".
#
# The allowed list below ensure 1). Include directory rules for Dawn ensure 3)
# and 2) is something we need to enforce in code review.
@ -39,8 +39,8 @@ import("generator_lib.gni")
dawn_allowed_gen_output_dirs = [
"src/dawn/",
"src/dawn_native/",
"src/dawn_native/opengl/",
"src/dawn/native/",
"src/dawn/native/opengl/",
"src/dawn/wire/client/",
"src/dawn/wire/server/",
"src/dawn/wire/",

View File

@ -764,7 +764,7 @@ class MultiGeneratorFromDawnJSON(Generator):
def add_commandline_arguments(self, parser):
allowed_targets = [
'dawn_headers', 'dawncpp_headers', 'dawncpp', 'dawn_proc',
'mock_api', 'wire', "dawn_native_utils"
'mock_api', 'wire', "native_utils"
]
parser.add_argument('--dawn-json',
@ -832,8 +832,8 @@ class MultiGeneratorFromDawnJSON(Generator):
if 'webgpu_dawn_native_proc' in targets:
renders.append(
FileRender('dawn_native/api_dawn_native_proc.cpp',
'src/dawn_native/webgpu_dawn_native_proc.cpp',
FileRender('dawn/native/api_dawn_native_proc.cpp',
'src/dawn/native/webgpu_dawn_native_proc.cpp',
[RENDER_PARAMS_BASE, params_dawn]))
if 'dawncpp' in targets:
@ -882,7 +882,7 @@ class MultiGeneratorFromDawnJSON(Generator):
FileRender('mock_api.cpp', 'src/dawn/mock_' + api + '.cpp',
mock_params))
if 'dawn_native_utils' in targets:
if 'native_utils' in targets:
frontend_params = [
RENDER_PARAMS_BASE,
params_dawn,
@ -895,53 +895,53 @@ class MultiGeneratorFromDawnJSON(Generator):
]
impl_dir = metadata.impl_dir + '/' if metadata.impl_dir else ''
native_dir = impl_dir + Name(metadata.native_namespace).snake_case()
native_dir = impl_dir + Name(metadata.native_namespace).Dirs()
namespace = metadata.namespace
renders.append(
FileRender('dawn_native/ValidationUtils.h',
FileRender('dawn/native/ValidationUtils.h',
'src/' + native_dir + '/ValidationUtils_autogen.h',
frontend_params))
renders.append(
FileRender('dawn_native/ValidationUtils.cpp',
FileRender('dawn/native/ValidationUtils.cpp',
'src/' + native_dir + '/ValidationUtils_autogen.cpp',
frontend_params))
renders.append(
FileRender('dawn_native/dawn_platform.h',
FileRender('dawn/native/dawn_platform.h',
'src/' + native_dir + '/' + prefix + '_platform_autogen.h',
frontend_params))
renders.append(
FileRender('dawn_native/api_structs.h',
FileRender('dawn/native/api_structs.h',
'src/' + native_dir + '/' + namespace + '_structs_autogen.h',
frontend_params))
renders.append(
FileRender('dawn_native/api_structs.cpp',
FileRender('dawn/native/api_structs.cpp',
'src/' + native_dir + '/' + namespace + '_structs_autogen.cpp',
frontend_params))
renders.append(
FileRender('dawn_native/ProcTable.cpp',
FileRender('dawn/native/ProcTable.cpp',
'src/' + native_dir + '/ProcTable.cpp', frontend_params))
renders.append(
FileRender('dawn_native/ChainUtils.h',
FileRender('dawn/native/ChainUtils.h',
'src/' + native_dir + '/ChainUtils_autogen.h',
frontend_params))
renders.append(
FileRender('dawn_native/ChainUtils.cpp',
FileRender('dawn/native/ChainUtils.cpp',
'src/' + native_dir + '/ChainUtils_autogen.cpp',
frontend_params))
renders.append(
FileRender('dawn_native/api_absl_format.h',
FileRender('dawn/native/api_absl_format.h',
'src/' + native_dir + '/' + api + '_absl_format_autogen.h',
frontend_params))
renders.append(
FileRender('dawn_native/api_absl_format.cpp',
FileRender('dawn/native/api_absl_format.cpp',
'src/' + native_dir + '/' + api + '_absl_format_autogen.cpp',
frontend_params))
renders.append(
FileRender('dawn_native/ObjectType.h',
FileRender('dawn/native/ObjectType.h',
'src/' + native_dir + '/ObjectType_autogen.h',
frontend_params))
renders.append(
FileRender('dawn_native/ObjectType.cpp',
FileRender('dawn/native/ObjectType.cpp',
'src/' + native_dir + '/ObjectType_autogen.cpp',
frontend_params))

View File

@ -261,13 +261,13 @@ class OpenGLLoaderGenerator(Generator):
return [
FileRender(
'opengl/OpenGLFunctionsBase.cpp',
'src/dawn_native/opengl/OpenGLFunctionsBase_autogen.cpp',
'src/dawn/native/opengl/OpenGLFunctionsBase_autogen.cpp',
[params]),
FileRender('opengl/OpenGLFunctionsBase.h',
'src/dawn_native/opengl/OpenGLFunctionsBase_autogen.h',
'src/dawn/native/opengl/OpenGLFunctionsBase_autogen.h',
[params]),
FileRender('opengl/opengl_platform.h',
'src/dawn_native/opengl/opengl_platform_autogen.h',
'src/dawn/native/opengl/opengl_platform_autogen.h',
[params]),
]

View File

@ -15,7 +15,7 @@
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set namespace_name = Name(metadata.native_namespace) %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
#include "{{native_dir}}/ChainUtils_autogen.h"
#include <unordered_set>

View File

@ -20,7 +20,7 @@
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set namespace_name = Name(metadata.native_namespace) %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
{% set prefix = metadata.proc_table_prefix.lower() %}
#include "{{native_dir}}/{{prefix}}_platform.h"
#include "{{native_dir}}/Error.h"

View File

@ -15,7 +15,7 @@
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set namespace_name = Name(metadata.native_namespace) %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
#include "{{native_dir}}/ObjectType_autogen.h"
namespace {{native_namespace}} {

View File

@ -17,7 +17,7 @@
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set namespace_name = Name(metadata.native_namespace) %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
#include "{{native_dir}}/{{prefix}}_platform.h"
#include "{{native_dir}}/{{Prefix}}Native.h"

View File

@ -15,7 +15,7 @@
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set namespace_name = Name(metadata.native_namespace) %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
#include "{{native_dir}}/ValidationUtils_autogen.h"
namespace {{native_namespace}} {

View File

@ -21,7 +21,7 @@
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set namespace_name = Name(metadata.native_namespace) %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
#include "{{native_dir}}/Error.h"
namespace {{native_namespace}} {

View File

@ -15,7 +15,7 @@
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set namespace_name = Name(metadata.native_namespace) %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
{% set api = metadata.api.lower() %}
#include "{{native_dir}}/{{api}}_absl_format_autogen.h"

View File

@ -19,7 +19,7 @@
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set namespace_name = Name(metadata.native_namespace) %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
{% set prefix = metadata.proc_table_prefix.lower() %}
#include "{{native_dir}}/{{prefix}}_platform.h"

View File

@ -16,7 +16,7 @@
namespace dawn::native {
// This file should be kept in sync with generator/templates/dawn_native/ProcTable.cpp
// This file should be kept in sync with generator/templates/dawn/native/ProcTable.cpp
{% for function in by_category["function"] %}
extern {{as_cType(function.return_type.name)}} Native{{as_cppType(function.name)}}(

View File

@ -15,7 +15,7 @@
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set namespace_name = Name(metadata.native_namespace) %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
{% set namespace = metadata.namespace %}
#include "{{native_dir}}/{{namespace}}_structs_autogen.h"

View File

@ -22,7 +22,7 @@
#include "dawn/{{api}}_cpp.h"
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
#include "{{native_dir}}/Forward.h"
namespace {{native_namespace}} {

View File

@ -22,7 +22,7 @@
#include "dawn/{{api}}_cpp.h"
{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.snake_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
#include "{{native_dir}}/Forward.h"
{% set namespace = metadata.namespace %}

View File

@ -12,7 +12,7 @@
//* See the License for the specific language governing permissions and
//* limitations under the License.
#include "dawn_native/opengl/OpenGLFunctionsBase_autogen.h"
#include "dawn/native/opengl/OpenGLFunctionsBase_autogen.h"
namespace dawn::native::opengl {

View File

@ -15,8 +15,8 @@
#ifndef DAWNNATIVE_OPENGL_OPENGLFUNCTIONSBASE_H_
#define DAWNNATIVE_OPENGL_OPENGLFUNCTIONSBASE_H_
#include "dawn_native/Error.h"
#include "dawn_native/opengl/opengl_platform.h"
#include "dawn/native/Error.h"
#include "dawn/native/opengl/opengl_platform.h"
namespace dawn::native::opengl {
using GetProcAddress = void* (*) (const char*);

View File

@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include "dawn_native/Adapter.h"
#include "dawn/native/Adapter.h"
#include "dawn/common/Constants.h"
#include "dawn_native/Device.h"
#include "dawn_native/Instance.h"
#include "dawn_native/ValidationUtils_autogen.h"
#include "dawn/native/Device.h"
#include "dawn/native/Instance.h"
#include "dawn/native/ValidationUtils_autogen.h"
namespace dawn::native {

View File

@ -15,14 +15,14 @@
#ifndef DAWNNATIVE_ADAPTER_H_
#define DAWNNATIVE_ADAPTER_H_
#include "dawn_native/DawnNative.h"
#include "dawn/native/DawnNative.h"
#include "dawn/common/RefCounted.h"
#include "dawn/common/ityp_span.h"
#include "dawn_native/Error.h"
#include "dawn_native/Features.h"
#include "dawn_native/Limits.h"
#include "dawn_native/dawn_platform.h"
#include "dawn/native/Error.h"
#include "dawn/native/Features.h"
#include "dawn/native/Limits.h"
#include "dawn/native/dawn_platform.h"
#include <string>

View File

@ -1,4 +1,4 @@
#include "dawn_native/AsyncTask.h"
#include "dawn/native/AsyncTask.h"
#include "dawn/platform/DawnPlatform.h"

View File

@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include "dawn_native/AttachmentState.h"
#include "dawn/native/AttachmentState.h"
#include "dawn/common/BitSetIterator.h"
#include "dawn_native/Device.h"
#include "dawn_native/ObjectContentHasher.h"
#include "dawn_native/Texture.h"
#include "dawn/native/Device.h"
#include "dawn/native/ObjectContentHasher.h"
#include "dawn/native/Texture.h"
namespace dawn::native {

View File

@ -18,11 +18,11 @@
#include "dawn/common/Constants.h"
#include "dawn/common/ityp_array.h"
#include "dawn/common/ityp_bitset.h"
#include "dawn_native/CachedObject.h"
#include "dawn_native/IntegerTypes.h"
#include "dawn_native/ObjectBase.h"
#include "dawn/native/CachedObject.h"
#include "dawn/native/IntegerTypes.h"
#include "dawn/native/ObjectBase.h"
#include "dawn_native/dawn_platform.h"
#include "dawn/native/dawn_platform.h"
#include <array>
#include <bitset>

776
src/dawn/native/BUILD.gn Normal file
View File

@ -0,0 +1,776 @@
# Copyright 2020 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("../../../scripts/dawn_overrides_with_defaults.gni")
import("//build_overrides/build.gni")
import("${dawn_root}/generator/dawn_generator.gni")
import("${dawn_root}/scripts/dawn_component.gni")
import("${dawn_root}/scripts/dawn_features.gni")
# Import mac_deployment_target
if (is_mac) {
if (dawn_has_build) {
import("//build/config/mac/mac_sdk.gni")
} else {
mac_deployment_target = "10.11.0"
}
}
# The VVLs are an optional dependency, only use it if the path has been set.
enable_vulkan_validation_layers = dawn_enable_vulkan_validation_layers &&
dawn_vulkan_validation_layers_dir != ""
if (enable_vulkan_validation_layers) {
import("//build_overrides/vulkan_validation_layers.gni")
}
# ANGLE is an optional dependency; only use it if the path has been set.
use_angle = dawn_use_angle && defined(dawn_angle_dir)
# Swiftshader is an optional dependency, only use it if the path has been set.
use_swiftshader = dawn_use_swiftshader && dawn_swiftshader_dir != ""
if (use_swiftshader) {
assert(dawn_enable_vulkan,
"dawn_use_swiftshader requires dawn_enable_vulkan=true")
import("${dawn_swiftshader_dir}/src/Vulkan/vulkan.gni")
}
# The Vulkan loader is an optional dependency, only use it if the path has been
# set.
if (dawn_enable_vulkan) {
enable_vulkan_loader =
dawn_enable_vulkan_loader && dawn_vulkan_loader_dir != ""
}
group("abseil") {
# When build_with_chromium=true we need to include "//third_party/abseil-cpp:absl" while
# it's beneficial to be more specific with standalone Dawn, especially when it comes to
# including it as a dependency in other projects (such as Skia).
if (build_with_chromium) {
public_deps = [ "$dawn_abseil_dir:absl" ]
} else {
public_deps = [ "${dawn_root}/third_party/gn/abseil-cpp:str_format" ]
}
}
config("internal") {
configs = [ "${dawn_root}/src/dawn/common:internal_config" ]
# Suppress warnings that Metal isn't in the deployment target of Chrome:
# initialization of the Metal backend is behind a IsMetalSupported check so
# Dawn won't call Metal functions on macOS 10.10.
# At the time this is written Chromium supports 10.10.0 and above, so if we
# aren't on 10.11 it means we are on 10.11 and above, and Metal is available.
# Skipping this check on 10.11 and above is important as it allows getting
# proper compilation warning when using 10.12 and above feature for example.
# TODO(crbug.com/1004024): Consider using API_AVAILABLE annotations on all
# metal code in dawn once crbug.com/1004024 is sorted out if Chromium still
# supports 10.10 then.
if (is_mac && mac_deployment_target == "10.10.0") {
cflags_objcc = [ "-Wno-unguarded-availability" ]
}
}
config("weak_framework") {
if (is_mac && dawn_enable_metal) {
weak_frameworks = [ "Metal.framework" ]
}
}
# Config that adds the @executable_path rpath if needed so that Swiftshader or the Vulkan loader are found.
config("vulkan_rpath") {
if (is_mac && dawn_enable_vulkan &&
(use_swiftshader || enable_vulkan_loader)) {
ldflags = [
"-rpath",
"@executable_path/",
]
}
}
dawn_json_generator("utils_gen") {
target = "native_utils"
outputs = [
"src/dawn/native/ChainUtils_autogen.h",
"src/dawn/native/ChainUtils_autogen.cpp",
"src/dawn/native/ProcTable.cpp",
"src/dawn/native/dawn_platform_autogen.h",
"src/dawn/native/wgpu_structs_autogen.h",
"src/dawn/native/wgpu_structs_autogen.cpp",
"src/dawn/native/ValidationUtils_autogen.h",
"src/dawn/native/ValidationUtils_autogen.cpp",
"src/dawn/native/webgpu_absl_format_autogen.h",
"src/dawn/native/webgpu_absl_format_autogen.cpp",
"src/dawn/native/ObjectType_autogen.h",
"src/dawn/native/ObjectType_autogen.cpp",
]
}
if (dawn_enable_opengl) {
dawn_generator("opengl_loader_gen") {
script = "${dawn_root}/generator/opengl_loader_generator.py"
args = [
"--gl-xml",
rebase_path("${dawn_root}/third_party/khronos/gl.xml", root_build_dir),
"--supported-extensions",
rebase_path("opengl/supported_extensions.json", root_build_dir),
]
outputs = [
"src/dawn/native/opengl/OpenGLFunctionsBase_autogen.cpp",
"src/dawn/native/opengl/OpenGLFunctionsBase_autogen.h",
"src/dawn/native/opengl/opengl_platform_autogen.h",
]
}
}
# Public dawn native headers so they can be publicly visible for
# dependencies of dawn native
source_set("headers") {
public_deps = [ "${dawn_root}/src/dawn:dawncpp_headers" ]
all_dependent_configs = [ "${dawn_root}/src/dawn/common:public_include_dirs" ]
sources = [
"${dawn_root}/src/include/dawn/native/DawnNative.h",
"${dawn_root}/src/include/dawn/native/dawn_native_export.h",
# Include all backend's public headers so that dependencies can include
# them even when the backends are disabled.
"${dawn_root}/src/include/dawn/native/D3D12Backend.h",
"${dawn_root}/src/include/dawn/native/MetalBackend.h",
"${dawn_root}/src/include/dawn/native/NullBackend.h",
"${dawn_root}/src/include/dawn/native/OpenGLBackend.h",
"${dawn_root}/src/include/dawn/native/VulkanBackend.h",
]
}
# The meat of the compilation for dawn native so that we can cheaply have
# shared_library / static_library versions of it. It compiles all the files
# except those that define exported symbols.
source_set("sources") {
deps = [
":headers",
":utils_gen",
"${dawn_root}/src/dawn/common",
"${dawn_spirv_tools_dir}:spvtools_opt",
"${dawn_spirv_tools_dir}:spvtools_val",
"${dawn_tint_dir}/src:libtint",
]
if (dawn_use_spirv_cross) {
deps += [ "${dawn_root}/third_party/gn/spirv_cross:spirv_cross" ]
}
defines = []
libs = []
data_deps = []
configs += [ ":internal" ]
# Dependencies that are needed to compile dawn native entry points in
# FooBackend.cpp need to be public deps so they are propagated to the
# dawn native target
public_deps = [
":abseil",
"${dawn_root}/src/dawn/platform",
]
sources = get_target_outputs(":utils_gen")
sources += [
"Adapter.cpp",
"Adapter.h",
"AsyncTask.cpp",
"AsyncTask.h",
"AttachmentState.cpp",
"AttachmentState.h",
"BackendConnection.cpp",
"BackendConnection.h",
"BindGroup.cpp",
"BindGroup.h",
"BindGroupLayout.cpp",
"BindGroupLayout.h",
"BindGroupTracker.h",
"BindingInfo.cpp",
"BindingInfo.h",
"BuddyAllocator.cpp",
"BuddyAllocator.h",
"BuddyMemoryAllocator.cpp",
"BuddyMemoryAllocator.h",
"Buffer.cpp",
"Buffer.h",
"CachedObject.cpp",
"CachedObject.h",
"CallbackTaskManager.cpp",
"CallbackTaskManager.h",
"CommandAllocator.cpp",
"CommandAllocator.h",
"CommandBuffer.cpp",
"CommandBuffer.h",
"CommandBufferStateTracker.cpp",
"CommandBufferStateTracker.h",
"CommandEncoder.cpp",
"CommandEncoder.h",
"CommandValidation.cpp",
"CommandValidation.h",
"Commands.cpp",
"Commands.h",
"CompilationMessages.cpp",
"CompilationMessages.h",
"ComputePassEncoder.cpp",
"ComputePassEncoder.h",
"ComputePipeline.cpp",
"ComputePipeline.h",
"CopyTextureForBrowserHelper.cpp",
"CopyTextureForBrowserHelper.h",
"CreatePipelineAsyncTask.cpp",
"CreatePipelineAsyncTask.h",
"Device.cpp",
"Device.h",
"DynamicUploader.cpp",
"DynamicUploader.h",
"EncodingContext.cpp",
"EncodingContext.h",
"EnumClassBitmasks.h",
"EnumMaskIterator.h",
"Error.cpp",
"Error.h",
"ErrorData.cpp",
"ErrorData.h",
"ErrorInjector.cpp",
"ErrorInjector.h",
"ErrorScope.cpp",
"ErrorScope.h",
"ExternalTexture.cpp",
"ExternalTexture.h",
"Features.cpp",
"Features.h",
"Format.cpp",
"Format.h",
"Forward.h",
"IndirectDrawMetadata.cpp",
"IndirectDrawMetadata.h",
"IndirectDrawValidationEncoder.cpp",
"IndirectDrawValidationEncoder.h",
"Instance.cpp",
"Instance.h",
"IntegerTypes.h",
"InternalPipelineStore.cpp",
"InternalPipelineStore.h",
"Limits.cpp",
"Limits.h",
"ObjectBase.cpp",
"ObjectBase.h",
"ObjectContentHasher.cpp",
"ObjectContentHasher.h",
"PassResourceUsage.h",
"PassResourceUsageTracker.cpp",
"PassResourceUsageTracker.h",
"PerStage.cpp",
"PerStage.h",
"PersistentCache.cpp",
"PersistentCache.h",
"Pipeline.cpp",
"Pipeline.h",
"PipelineLayout.cpp",
"PipelineLayout.h",
"PooledResourceMemoryAllocator.cpp",
"PooledResourceMemoryAllocator.h",
"ProgrammableEncoder.cpp",
"ProgrammableEncoder.h",
"QueryHelper.cpp",
"QueryHelper.h",
"QuerySet.cpp",
"QuerySet.h",
"Queue.cpp",
"Queue.h",
"RenderBundle.cpp",
"RenderBundle.h",
"RenderBundleEncoder.cpp",
"RenderBundleEncoder.h",
"RenderEncoderBase.cpp",
"RenderEncoderBase.h",
"RenderPassEncoder.cpp",
"RenderPassEncoder.h",
"RenderPipeline.cpp",
"RenderPipeline.h",
"ResourceHeap.h",
"ResourceHeapAllocator.h",
"ResourceMemoryAllocation.cpp",
"ResourceMemoryAllocation.h",
"RingBufferAllocator.cpp",
"RingBufferAllocator.h",
"Sampler.cpp",
"Sampler.h",
"ScratchBuffer.cpp",
"ScratchBuffer.h",
"ShaderModule.cpp",
"ShaderModule.h",
"StagingBuffer.cpp",
"StagingBuffer.h",
"Subresource.cpp",
"Subresource.h",
"SubresourceStorage.h",
"Surface.cpp",
"Surface.h",
"SwapChain.cpp",
"SwapChain.h",
"Texture.cpp",
"Texture.h",
"TintUtils.cpp",
"TintUtils.h",
"ToBackend.h",
"Toggles.cpp",
"Toggles.h",
"VertexFormat.cpp",
"VertexFormat.h",
"dawn_platform.h",
"utils/WGPUHelpers.cpp",
"utils/WGPUHelpers.h",
"webgpu_absl_format.cpp",
"webgpu_absl_format.h",
]
if (dawn_use_x11) {
libs += [ "X11" ]
sources += [
"XlibXcbFunctions.cpp",
"XlibXcbFunctions.h",
]
}
# Only win32 app needs to link with user32.lib
# In UWP, all availiable APIs are defined in WindowsApp.lib
if (is_win && !dawn_is_winuwp) {
libs += [ "user32.lib" ]
}
if (dawn_is_winuwp && is_debug) {
# DXGIGetDebugInterface1 is defined in dxgi.lib
# But this API is tagged as a development-only capability
# which implies that linking to this function will cause
# the application to fail Windows store certification
# So we only link to it in debug build when compiling for UWP.
# In win32 we load dxgi.dll using LoadLibrary
# so no need for static linking.
libs += [ "dxgi.lib" ]
}
# TODO(dawn:766):
# Should link dxcompiler.lib and WinPixEventRuntime_UAP.lib in UWP
# Somehow use dxcompiler.lib makes CoreApp unable to activate
# WinPIX should be added as third party tools and linked statically
if (dawn_enable_d3d12) {
libs += [ "dxguid.lib" ]
sources += [
"d3d12/AdapterD3D12.cpp",
"d3d12/AdapterD3D12.h",
"d3d12/BackendD3D12.cpp",
"d3d12/BackendD3D12.h",
"d3d12/BindGroupD3D12.cpp",
"d3d12/BindGroupD3D12.h",
"d3d12/BindGroupLayoutD3D12.cpp",
"d3d12/BindGroupLayoutD3D12.h",
"d3d12/BufferD3D12.cpp",
"d3d12/BufferD3D12.h",
"d3d12/CPUDescriptorHeapAllocationD3D12.cpp",
"d3d12/CPUDescriptorHeapAllocationD3D12.h",
"d3d12/CommandAllocatorManager.cpp",
"d3d12/CommandAllocatorManager.h",
"d3d12/CommandBufferD3D12.cpp",
"d3d12/CommandBufferD3D12.h",
"d3d12/CommandRecordingContext.cpp",
"d3d12/CommandRecordingContext.h",
"d3d12/ComputePipelineD3D12.cpp",
"d3d12/ComputePipelineD3D12.h",
"d3d12/D3D11on12Util.cpp",
"d3d12/D3D11on12Util.h",
"d3d12/D3D12Error.cpp",
"d3d12/D3D12Error.h",
"d3d12/D3D12Info.cpp",
"d3d12/D3D12Info.h",
"d3d12/DeviceD3D12.cpp",
"d3d12/DeviceD3D12.h",
"d3d12/Forward.h",
"d3d12/GPUDescriptorHeapAllocationD3D12.cpp",
"d3d12/GPUDescriptorHeapAllocationD3D12.h",
"d3d12/HeapAllocatorD3D12.cpp",
"d3d12/HeapAllocatorD3D12.h",
"d3d12/HeapD3D12.cpp",
"d3d12/HeapD3D12.h",
"d3d12/IntegerTypes.h",
"d3d12/NativeSwapChainImplD3D12.cpp",
"d3d12/NativeSwapChainImplD3D12.h",
"d3d12/PageableD3D12.cpp",
"d3d12/PageableD3D12.h",
"d3d12/PipelineLayoutD3D12.cpp",
"d3d12/PipelineLayoutD3D12.h",
"d3d12/PlatformFunctions.cpp",
"d3d12/PlatformFunctions.h",
"d3d12/QuerySetD3D12.cpp",
"d3d12/QuerySetD3D12.h",
"d3d12/QueueD3D12.cpp",
"d3d12/QueueD3D12.h",
"d3d12/RenderPassBuilderD3D12.cpp",
"d3d12/RenderPassBuilderD3D12.h",
"d3d12/RenderPipelineD3D12.cpp",
"d3d12/RenderPipelineD3D12.h",
"d3d12/ResidencyManagerD3D12.cpp",
"d3d12/ResidencyManagerD3D12.h",
"d3d12/ResourceAllocatorManagerD3D12.cpp",
"d3d12/ResourceAllocatorManagerD3D12.h",
"d3d12/ResourceHeapAllocationD3D12.cpp",
"d3d12/ResourceHeapAllocationD3D12.h",
"d3d12/SamplerD3D12.cpp",
"d3d12/SamplerD3D12.h",
"d3d12/SamplerHeapCacheD3D12.cpp",
"d3d12/SamplerHeapCacheD3D12.h",
"d3d12/ShaderModuleD3D12.cpp",
"d3d12/ShaderModuleD3D12.h",
"d3d12/ShaderVisibleDescriptorAllocatorD3D12.cpp",
"d3d12/ShaderVisibleDescriptorAllocatorD3D12.h",
"d3d12/StagingBufferD3D12.cpp",
"d3d12/StagingBufferD3D12.h",
"d3d12/StagingDescriptorAllocatorD3D12.cpp",
"d3d12/StagingDescriptorAllocatorD3D12.h",
"d3d12/SwapChainD3D12.cpp",
"d3d12/SwapChainD3D12.h",
"d3d12/TextureCopySplitter.cpp",
"d3d12/TextureCopySplitter.h",
"d3d12/TextureD3D12.cpp",
"d3d12/TextureD3D12.h",
"d3d12/UtilsD3D12.cpp",
"d3d12/UtilsD3D12.h",
"d3d12/d3d12_platform.h",
]
}
if (dawn_enable_metal) {
frameworks = [
"Cocoa.framework",
"IOKit.framework",
"IOSurface.framework",
"QuartzCore.framework",
]
sources += [
"Surface_metal.mm",
"metal/BackendMTL.h",
"metal/BackendMTL.mm",
"metal/BindGroupLayoutMTL.h",
"metal/BindGroupLayoutMTL.mm",
"metal/BindGroupMTL.h",
"metal/BindGroupMTL.mm",
"metal/BufferMTL.h",
"metal/BufferMTL.mm",
"metal/CommandBufferMTL.h",
"metal/CommandBufferMTL.mm",
"metal/CommandRecordingContext.h",
"metal/CommandRecordingContext.mm",
"metal/ComputePipelineMTL.h",
"metal/ComputePipelineMTL.mm",
"metal/DeviceMTL.h",
"metal/DeviceMTL.mm",
"metal/Forward.h",
"metal/PipelineLayoutMTL.h",
"metal/PipelineLayoutMTL.mm",
"metal/QuerySetMTL.h",
"metal/QuerySetMTL.mm",
"metal/QueueMTL.h",
"metal/QueueMTL.mm",
"metal/RenderPipelineMTL.h",
"metal/RenderPipelineMTL.mm",
"metal/SamplerMTL.h",
"metal/SamplerMTL.mm",
"metal/ShaderModuleMTL.h",
"metal/ShaderModuleMTL.mm",
"metal/StagingBufferMTL.h",
"metal/StagingBufferMTL.mm",
"metal/SwapChainMTL.h",
"metal/SwapChainMTL.mm",
"metal/TextureMTL.h",
"metal/TextureMTL.mm",
"metal/UtilsMetal.h",
"metal/UtilsMetal.mm",
]
}
if (dawn_enable_null) {
sources += [
"null/DeviceNull.cpp",
"null/DeviceNull.h",
]
}
if (dawn_enable_opengl || dawn_enable_vulkan) {
sources += [
"SpirvValidation.cpp",
"SpirvValidation.h",
]
}
if (dawn_enable_opengl) {
public_deps += [
":opengl_loader_gen",
"${dawn_root}/third_party/khronos:khronos_platform",
]
sources += get_target_outputs(":opengl_loader_gen")
sources += [
"opengl/BackendGL.cpp",
"opengl/BackendGL.h",
"opengl/BindGroupGL.cpp",
"opengl/BindGroupGL.h",
"opengl/BindGroupLayoutGL.cpp",
"opengl/BindGroupLayoutGL.h",
"opengl/BufferGL.cpp",
"opengl/BufferGL.h",
"opengl/CommandBufferGL.cpp",
"opengl/CommandBufferGL.h",
"opengl/ComputePipelineGL.cpp",
"opengl/ComputePipelineGL.h",
"opengl/DeviceGL.cpp",
"opengl/DeviceGL.h",
"opengl/Forward.h",
"opengl/GLFormat.cpp",
"opengl/GLFormat.h",
"opengl/NativeSwapChainImplGL.cpp",
"opengl/NativeSwapChainImplGL.h",
"opengl/OpenGLFunctions.cpp",
"opengl/OpenGLFunctions.h",
"opengl/OpenGLVersion.cpp",
"opengl/OpenGLVersion.h",
"opengl/PersistentPipelineStateGL.cpp",
"opengl/PersistentPipelineStateGL.h",
"opengl/PipelineGL.cpp",
"opengl/PipelineGL.h",
"opengl/PipelineLayoutGL.cpp",
"opengl/PipelineLayoutGL.h",
"opengl/QuerySetGL.cpp",
"opengl/QuerySetGL.h",
"opengl/QueueGL.cpp",
"opengl/QueueGL.h",
"opengl/RenderPipelineGL.cpp",
"opengl/RenderPipelineGL.h",
"opengl/SamplerGL.cpp",
"opengl/SamplerGL.h",
"opengl/ShaderModuleGL.cpp",
"opengl/ShaderModuleGL.h",
"opengl/SpirvUtils.cpp",
"opengl/SpirvUtils.h",
"opengl/SwapChainGL.cpp",
"opengl/SwapChainGL.h",
"opengl/TextureGL.cpp",
"opengl/TextureGL.h",
"opengl/UtilsGL.cpp",
"opengl/UtilsGL.h",
"opengl/opengl_platform.h",
]
}
if (dawn_enable_vulkan) {
public_deps += [ "${dawn_root}/third_party/khronos:vulkan_headers" ]
sources += [
"vulkan/AdapterVk.cpp",
"vulkan/AdapterVk.h",
"vulkan/BackendVk.cpp",
"vulkan/BackendVk.h",
"vulkan/BindGroupLayoutVk.cpp",
"vulkan/BindGroupLayoutVk.h",
"vulkan/BindGroupVk.cpp",
"vulkan/BindGroupVk.h",
"vulkan/BufferVk.cpp",
"vulkan/BufferVk.h",
"vulkan/CommandBufferVk.cpp",
"vulkan/CommandBufferVk.h",
"vulkan/CommandRecordingContext.h",
"vulkan/ComputePipelineVk.cpp",
"vulkan/ComputePipelineVk.h",
"vulkan/DescriptorSetAllocation.h",
"vulkan/DescriptorSetAllocator.cpp",
"vulkan/DescriptorSetAllocator.h",
"vulkan/DeviceVk.cpp",
"vulkan/DeviceVk.h",
"vulkan/ExternalHandle.h",
"vulkan/FencedDeleter.cpp",
"vulkan/FencedDeleter.h",
"vulkan/Forward.h",
"vulkan/NativeSwapChainImplVk.cpp",
"vulkan/NativeSwapChainImplVk.h",
"vulkan/PipelineLayoutVk.cpp",
"vulkan/PipelineLayoutVk.h",
"vulkan/QuerySetVk.cpp",
"vulkan/QuerySetVk.h",
"vulkan/QueueVk.cpp",
"vulkan/QueueVk.h",
"vulkan/RenderPassCache.cpp",
"vulkan/RenderPassCache.h",
"vulkan/RenderPipelineVk.cpp",
"vulkan/RenderPipelineVk.h",
"vulkan/ResourceHeapVk.cpp",
"vulkan/ResourceHeapVk.h",
"vulkan/ResourceMemoryAllocatorVk.cpp",
"vulkan/ResourceMemoryAllocatorVk.h",
"vulkan/SamplerVk.cpp",
"vulkan/SamplerVk.h",
"vulkan/ShaderModuleVk.cpp",
"vulkan/ShaderModuleVk.h",
"vulkan/StagingBufferVk.cpp",
"vulkan/StagingBufferVk.h",
"vulkan/SwapChainVk.cpp",
"vulkan/SwapChainVk.h",
"vulkan/TextureVk.cpp",
"vulkan/TextureVk.h",
"vulkan/UtilsVulkan.cpp",
"vulkan/UtilsVulkan.h",
"vulkan/VulkanError.cpp",
"vulkan/VulkanError.h",
"vulkan/VulkanExtensions.cpp",
"vulkan/VulkanExtensions.h",
"vulkan/VulkanFunctions.cpp",
"vulkan/VulkanFunctions.h",
"vulkan/VulkanInfo.cpp",
"vulkan/VulkanInfo.h",
"vulkan/external_memory/MemoryService.h",
"vulkan/external_semaphore/SemaphoreService.h",
]
if (is_chromeos) {
sources += [
"vulkan/external_memory/MemoryServiceDmaBuf.cpp",
"vulkan/external_semaphore/SemaphoreServiceFD.cpp",
]
defines += [ "DAWN_USE_SYNC_FDS" ]
} else if (is_linux) {
sources += [
"vulkan/external_memory/MemoryServiceOpaqueFD.cpp",
"vulkan/external_semaphore/SemaphoreServiceFD.cpp",
]
} else if (is_fuchsia) {
sources += [
"vulkan/external_memory/MemoryServiceZirconHandle.cpp",
"vulkan/external_semaphore/SemaphoreServiceZirconHandle.cpp",
]
} else {
sources += [
"vulkan/external_memory/MemoryServiceNull.cpp",
"vulkan/external_semaphore/SemaphoreServiceNull.cpp",
]
}
if (build_with_chromium && is_fuchsia) {
# Necessary to ensure that the Vulkan libraries will be in the
# final Fuchsia package.
data_deps = [
"//third_party/fuchsia-sdk:vulkan_base",
"//third_party/fuchsia-sdk:vulkan_validation",
# NOTE: The line below is a work around for http://crbug.com/1001081
"//third_party/fuchsia-sdk/sdk:trace_engine",
]
}
if (dawn_is_winuwp) {
defines += [ "DAWN_IS_WINUWP" ]
}
if (enable_vulkan_validation_layers) {
defines += [
"DAWN_ENABLE_VULKAN_VALIDATION_LAYERS",
"DAWN_VK_DATA_DIR=\"$vulkan_data_subdir\"",
]
}
if (enable_vulkan_loader) {
data_deps += [ "${dawn_vulkan_loader_dir}:libvulkan" ]
}
if (use_swiftshader) {
data_deps +=
[ "${dawn_swiftshader_dir}/src/Vulkan:swiftshader_libvulkan" ]
defines += [ "DAWN_ENABLE_SWIFTSHADER" ]
}
}
if (use_angle) {
data_deps += [
"${dawn_angle_dir}:libEGL",
"${dawn_angle_dir}:libGLESv2",
]
}
}
# The static and shared libraries for dawn_native. Most of the files are
# already compiled in dawn_native_sources, but we still need to compile
# files defining exported symbols.
dawn_component("native") {
DEFINE_PREFIX = "DAWN_NATIVE"
#Make headers publically visible
public_deps = [ ":headers" ]
deps = [
":sources",
"${dawn_root}/src/dawn/common",
]
sources = [ "DawnNative.cpp" ]
configs = [ ":internal" ]
public_configs = [
":weak_framework",
":vulkan_rpath",
]
if (dawn_enable_d3d12) {
sources += [ "d3d12/D3D12Backend.cpp" ]
}
if (dawn_enable_metal) {
sources += [ "metal/MetalBackend.mm" ]
}
if (dawn_enable_null) {
sources += [ "null/NullBackend.cpp" ]
}
if (dawn_enable_opengl) {
sources += [ "opengl/OpenGLBackend.cpp" ]
}
if (dawn_enable_vulkan) {
sources += [ "vulkan/VulkanBackend.cpp" ]
if (enable_vulkan_validation_layers) {
data_deps =
[ "${dawn_vulkan_validation_layers_dir}:vulkan_validation_layers" ]
if (!is_android) {
data_deps +=
[ "${dawn_vulkan_validation_layers_dir}:vulkan_gen_json_files" ]
}
}
}
}
dawn_json_generator("webgpu_dawn_native_proc_gen") {
target = "webgpu_dawn_native_proc"
outputs = [ "src/dawn/native/webgpu_dawn_native_proc.cpp" ]
}
dawn_component("webgpu_dawn") {
# For a single library - build `webgpu_dawn_shared` with GN args:
# dawn_complete_static_libs = true - to package a single lib
#
# is_debug = false
# - setting this to true makes library over 50Mb
#
# use_custom_libcxx = false
# - Otherwise, libc++ symbols may conflict if the
# library is used outside of Chromium.
#
# dawn_use_swiftshader = false
# angle_enable_swiftshader = false
# - SwiftShader can't be built without use_custom_libcxx.
# It should be built separately.
DEFINE_PREFIX = "WGPU"
sources = get_target_outputs(":webgpu_dawn_native_proc_gen")
deps = [
":static",
":webgpu_dawn_native_proc_gen",
]
}

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include "dawn_native/BackendConnection.h"
#include "dawn/native/BackendConnection.h"
namespace dawn::native {

View File

@ -15,8 +15,8 @@
#ifndef DAWNNATIVE_BACKENDCONNECTION_H_
#define DAWNNATIVE_BACKENDCONNECTION_H_
#include "dawn_native/Adapter.h"
#include "dawn_native/DawnNative.h"
#include "dawn/native/Adapter.h"
#include "dawn/native/DawnNative.h"
#include <memory>

View File

@ -12,20 +12,20 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include "dawn_native/BindGroup.h"
#include "dawn/native/BindGroup.h"
#include "dawn/common/Assert.h"
#include "dawn/common/Math.h"
#include "dawn/common/ityp_bitset.h"
#include "dawn_native/BindGroupLayout.h"
#include "dawn_native/Buffer.h"
#include "dawn_native/ChainUtils_autogen.h"
#include "dawn_native/Device.h"
#include "dawn_native/ExternalTexture.h"
#include "dawn_native/ObjectBase.h"
#include "dawn_native/ObjectType_autogen.h"
#include "dawn_native/Sampler.h"
#include "dawn_native/Texture.h"
#include "dawn/native/BindGroupLayout.h"
#include "dawn/native/Buffer.h"
#include "dawn/native/ChainUtils_autogen.h"
#include "dawn/native/Device.h"
#include "dawn/native/ExternalTexture.h"
#include "dawn/native/ObjectBase.h"
#include "dawn/native/ObjectType_autogen.h"
#include "dawn/native/Sampler.h"
#include "dawn/native/Texture.h"
namespace dawn::native {

View File

@ -17,12 +17,12 @@
#include "dawn/common/Constants.h"
#include "dawn/common/Math.h"
#include "dawn_native/BindGroupLayout.h"
#include "dawn_native/Error.h"
#include "dawn_native/Forward.h"
#include "dawn_native/ObjectBase.h"
#include "dawn/native/BindGroupLayout.h"
#include "dawn/native/Error.h"
#include "dawn/native/Forward.h"
#include "dawn/native/ObjectBase.h"
#include "dawn_native/dawn_platform.h"
#include "dawn/native/dawn_platform.h"
#include <array>

View File

@ -12,17 +12,17 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include "dawn_native/BindGroupLayout.h"
#include "dawn/native/BindGroupLayout.h"
#include "dawn/common/BitSetIterator.h"
#include "dawn_native/ChainUtils_autogen.h"
#include "dawn_native/Device.h"
#include "dawn_native/ObjectBase.h"
#include "dawn_native/ObjectContentHasher.h"
#include "dawn_native/ObjectType_autogen.h"
#include "dawn_native/PerStage.h"
#include "dawn_native/ValidationUtils_autogen.h"
#include "dawn/native/ChainUtils_autogen.h"
#include "dawn/native/Device.h"
#include "dawn/native/ObjectBase.h"
#include "dawn/native/ObjectContentHasher.h"
#include "dawn/native/ObjectType_autogen.h"
#include "dawn/native/PerStage.h"
#include "dawn/native/ValidationUtils_autogen.h"
#include <algorithm>
#include <functional>

View File

@ -20,13 +20,13 @@
#include "dawn/common/SlabAllocator.h"
#include "dawn/common/ityp_span.h"
#include "dawn/common/ityp_vector.h"
#include "dawn_native/BindingInfo.h"
#include "dawn_native/CachedObject.h"
#include "dawn_native/Error.h"
#include "dawn_native/Forward.h"
#include "dawn_native/ObjectBase.h"
#include "dawn/native/BindingInfo.h"
#include "dawn/native/CachedObject.h"
#include "dawn/native/Error.h"
#include "dawn/native/Forward.h"
#include "dawn/native/ObjectBase.h"
#include "dawn_native/dawn_platform.h"
#include "dawn/native/dawn_platform.h"
#include <bitset>
#include <map>

View File

@ -16,9 +16,9 @@
#define DAWNNATIVE_BINDGROUPTRACKER_H_
#include "dawn/common/Constants.h"
#include "dawn_native/BindGroupLayout.h"
#include "dawn_native/Pipeline.h"
#include "dawn_native/PipelineLayout.h"
#include "dawn/native/BindGroupLayout.h"
#include "dawn/native/Pipeline.h"
#include "dawn/native/PipelineLayout.h"
#include <array>