0

Reland 'Add Dawn, SPIRV-Cross and GLFW to //third_party'

This is a reland after contacting the infra team about the addition of
dawn.googlesource.com to allowed_hosts. It also doesn't have the Dawn
build targets listed in BUILD.gn. These will be listed separately.

Dawn is a library implementing WebGPU in native. It uses SPIRV-Cross to
translate shaders from SPIRV to other shading languages, and requires
glfw for testing.

Adds the Zlib license to the list of allowed license for Android.

This also adds back shaderc that was very recently removed. So hopefully
a new third_party review isn't required.

BUG=chromium:870747

Change-Id: Ib5bb0530fc147e41a4f31796c30542e032bf0603
Reviewed-on: https://chromium-review.googlesource.com/c/1286135
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601445}
This commit is contained in:
Corentin Wallez
2018-10-21 10:47:39 +00:00
committed by Commit Bot
parent fb8c90427b
commit 955059ffeb
12 changed files with 110 additions and 4 deletions

40
DEPS

@ -97,11 +97,12 @@ vars = {
'android_git': 'https://android.googlesource.com',
'aomedia_git': 'https://aomedia.googlesource.com',
'chromium_git': 'https://chromium.googlesource.com',
'swiftshader_git': 'https://swiftshader.googlesource.com',
'pdfium_git': 'https://pdfium.googlesource.com',
'boringssl_git': 'https://boringssl.googlesource.com',
'chromium_git': 'https://chromium.googlesource.com',
'dawn_git': 'https://dawn.googlesource.com',
'pdfium_git': 'https://pdfium.googlesource.com',
'skia_git': 'https://skia.googlesource.com',
'swiftshader_git': 'https://swiftshader.googlesource.com',
'webrtc_git': 'https://webrtc.googlesource.com',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling sfntly
@ -223,6 +224,18 @@ vars = {
# the commit queue can handle CLs rolling feed
# and whatever else without interference from each other.
'spv_headers_revision': '801cca8104245c07e8cc53292da87ee1b76946fe',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling feed
# and whatever else without interference from each other.
'spirv_cross_revision': '69b034f26e28a76a6f4e5d9521123072b24d7ea2',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling feed
# and whatever else without interference from each other.
'shaderc_revision': '196d38f64e4d919ddb26557f176ca134e2d88ddc',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling feed
# and whatever else without interference from each other.
'dawn_revision': '16092faa163b20f6b85ff407b1ec1d61cb9d7f2a',
}
# Only these hosts are allowed for dependencies in this DEPS file.
@ -234,6 +247,7 @@ allowed_hosts = [
'chrome-infra-packages.appspot.com',
'chrome-internal.googlesource.com',
'chromium.googlesource.com',
'dawn.googlesource.com',
'pdfium.googlesource.com',
'skia.googlesource.com',
'swiftshader.googlesource.com',
@ -403,6 +417,14 @@ deps = {
'dep_type': 'cipd',
},
# SPIRV-Cross is in third_party/spirv-cross/spirv-cross instead of
# third_party/spirv-cross/src because its header files are at the root of
# the repository and dependencies include them like so:
# #include "spirv-cross/spirv_glsl.hpp"
'src/third_party/spirv-cross/spirv-cross':
Var('chromium_git') + '/external/github.com/KhronosGroup/SPIRV-Cross.git@' +
Var('spirv_cross_revision'),
'src/third_party/spirv-headers/src':
Var('chromium_git') + '/external/github.com/KhronosGroup/SPIRV-Headers.git@' +
Var('spv_headers_revision'),
@ -411,6 +433,10 @@ deps = {
Var('chromium_git') + '/external/github.com/KhronosGroup/SPIRV-Tools.git@' +
Var('spv_tools_revision'),
'src/third_party/shaderc/src':
Var('chromium_git') + '/external/github.com/google/shaderc.git@' +
Var('shaderc_revision'),
'src/third_party/accessibility_test_framework': {
'packages': [
{
@ -537,6 +563,12 @@ deps = {
'src/third_party/angle':
Var('chromium_git') + '/angle/angle.git' + '@' + Var('angle_revision'),
'src/third_party/dawn':
Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'),
'src/third_party/glfw/src':
Var('chromium_git') + '/external/github.com/glfw/glfw.git@' + '096efdf798896cff80a0b2db08d7398b703406fe',
'src/third_party/apache-portable-runtime/src': {
'url': Var('chromium_git') + '/external/apache-portable-runtime.git' + '@' + 'c3f11fcd86b42922834cae91103cf068246c6bb6',
'condition': 'checkout_android',
@ -705,7 +737,7 @@ deps = {
},
'src/third_party/glslang/src':
Var('chromium_git') + '/external/github.com/google/glslang.git' + '@' + 'ec1476b7060306fd9109faf7a4c70a20ea3b538c',
Var('chromium_git') + '/external/github.com/KhronosGroup/glslang.git' + '@' + 'ca042a0ffbb6fe09a47c1c867d911b3a69d2102e',
'src/third_party/google_toolbox_for_mac/src': {
'url': Var('chromium_git') + '/external/github.com/google/google-toolbox-for-mac.git' + '@' + Var('google_toolbox_for_mac_revision'),

11
build_overrides/dawn.gni Normal file

@ -0,0 +1,11 @@
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# The paths to Dawn's dependencies
dawn_glfw_dir = "//third_party/glfw/src"
dawn_jinja2_dir = "//third_party/jinja2"
dawn_googletest_dir = "//third_party/googletest/src"
dawn_shaderc_dir = "//third_party/shaderc/src"
dawn_spirv_cross_dir = "//third_party/spirv-cross/spirv-cross"
dawn_spirv_tools_dir = "//third_party/SPIRV-Tools/src"

@ -0,0 +1,5 @@
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
glslang_spirv_tools_dir = "//third_party/SPIRV-Tools/src"

@ -0,0 +1,6 @@
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
shaderc_glslang_dir = "//third_party/glslang/src"
shaderc_spirv_tools_dir = "//third_party/SPIRV-Tools/src"

@ -58,6 +58,7 @@
/cros_system_api
/custom_tabs_client/src
/cygwin
/dawn
/depot_tools
/devtools-node-modules
/directxsdk
@ -76,6 +77,7 @@
/gestures/gestures
/gles1_conform
/gles2_conform
/glfw/src
/glslang/src
/glslang-angle/src
/gn/
@ -197,6 +199,7 @@
/smhasher/src
/snappy/src
/speex
/spirv-cross/spirv-cross
/spirv-headers/src
/SPIRV-Tools/src
/spirv-tools-angle/src

@ -18,6 +18,7 @@ ANDROID_WHITELISTED_LICENSES = [
'SGI Free Software License B',
'University of Illinois\/NCSA Open Source',
'X11',
'Zlib',
]
def LicenseIsCompatibleWithAndroid(input_api, license):

4
third_party/glfw/OWNERS vendored Normal file

@ -0,0 +1,4 @@
cwallez@chromium.org
kainino@chromium.org
# COMPONENT: Internals>GPU>Internals

14
third_party/glfw/README.chromium vendored Normal file

@ -0,0 +1,14 @@
Name: GLFW
Short Name: GLFW
URL: https://github.com/glfw/glfw
Version: 3.3-dev
Revision: 096efdf798896cff80a0b2db08d7398b703406fe
Security Critical: no
License: Zlib
License File: NOT_SHIPPED
Description:
GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and
Vulkan application development. It provides a simple, platform-independent API
for creating windows, contexts and surfaces, reading input, handling events,
etc.

4
third_party/shaderc/OWNERS vendored Normal file

@ -0,0 +1,4 @@
cwallez@chromium.org
dsinclair@chromium.org
# COMPONENT: Internals>GPU>Internals

10
third_party/shaderc/README.chromium vendored Normal file

@ -0,0 +1,10 @@
Name: Shaderc
Short Name: shaderc
URL: https://github.com/google/shaderc
Version: Unknown
Security Critical: yes
License: Apache 2.0
License File: src/LICENSE
Description:
A collection of SPIR-V related tools/libraries.

4
third_party/spirv-cross/OWNERS vendored Normal file

@ -0,0 +1,4 @@
cwallez@chromium.org
dsinclair@chromium.org
# COMPONENT: Internals>GPU>Internals

12
third_party/spirv-cross/README.chromium vendored Normal file

@ -0,0 +1,12 @@
Name: SPIRV-Cross
Short Name: SPIRV-Cross
URL: https://github.com/KhronosGroup/SPIRV-Cross
Version: Unknown
Security Critical: yes
License: Apache 2.0
License File: spirv-cross/LICENSE
Description:
A translator from SPIR-V bytecode to other shading languages like GLSL, HLSL
and MSL. This project is not secure (yet!) and should only be used for
prototyping, and not shipped to users.