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:
parent
b2c4d7a244
commit
818001d32e
2
BUILD.gn
2
BUILD.gn
|
@ -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",
|
||||
]
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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).
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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" ]
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -21,7 +21,7 @@ import("dawn_generator.gni")
|
|||
# autogenerated sources there.
|
||||
_stale_dirs = [
|
||||
"dawn",
|
||||
"dawn_native",
|
||||
"dawn/native",
|
||||
"dawn/wire",
|
||||
"mock",
|
||||
"src",
|
||||
|
|
|
@ -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/",
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
|
@ -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]),
|
||||
]
|
||||
|
||||
|
|
|
@ -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>
|
|
@ -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"
|
|
@ -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}} {
|
|
@ -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"
|
||||
|
|
@ -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}} {
|
|
@ -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}} {
|
|
@ -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"
|
||||
|
|
@ -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"
|
||||
|
|
@ -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)}}(
|
|
@ -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"
|
||||
|
|
@ -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}} {
|
|
@ -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 %}
|
|
@ -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 {
|
||||
|
||||
|
|
|
@ -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*);
|
||||
|
|
|
@ -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 {
|
||||
|
|
@ -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>
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
#include "dawn_native/AsyncTask.h"
|
||||
#include "dawn/native/AsyncTask.h"
|
||||
|
||||
#include "dawn/platform/DawnPlatform.h"
|
||||
|
|
@ -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 {
|
||||
|
|
@ -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>
|
|
@ -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",
|
||||
]
|
||||
}
|
|
@ -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 {
|
||||
|
|
@ -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>
|
||||
|
|
@ -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 {
|
||||
|
|
@ -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>
|
||||
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
||||