summaryrefslogtreecommitdiff
path: root/chromium/third_party/shaderc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-29 10:46:47 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-11-02 12:02:10 +0000
commit99677208ff3b216fdfec551fbe548da5520cd6fb (patch)
tree476a4865c10320249360e859d8fdd3e01833b03a /chromium/third_party/shaderc
parentc30a6232df03e1efbd9f3b226777b07e087a1122 (diff)
downloadqtwebengine-chromium-99677208ff3b216fdfec551fbe548da5520cd6fb.tar.gz
BASELINE: Update Chromium to 86.0.4240.124
Change-Id: Ide0ff151e94cd665ae6521a446995d34a9d1d644 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/shaderc')
-rw-r--r--chromium/third_party/shaderc/src/Android.mk14
-rw-r--r--chromium/third_party/shaderc/src/BUILD.gn10
-rw-r--r--chromium/third_party/shaderc/src/CHANGES21
-rw-r--r--chromium/third_party/shaderc/src/CMakeLists.txt15
-rw-r--r--chromium/third_party/shaderc/src/DEPS14
-rw-r--r--chromium/third_party/shaderc/src/android_test/Android.mk14
-rw-r--r--chromium/third_party/shaderc/src/android_test/jni/Android.mk14
-rw-r--r--chromium/third_party/shaderc/src/android_test/jni/Application.mk14
-rw-r--r--chromium/third_party/shaderc/src/cmake/linux-mingw-toolchain.cmake22
-rw-r--r--chromium/third_party/shaderc/src/cmake/setup_build.cmake14
-rw-r--r--chromium/third_party/shaderc/src/cmake/utils.cmake14
-rw-r--r--chromium/third_party/shaderc/src/examples/CMakeLists.txt14
-rw-r--r--chromium/third_party/shaderc/src/examples/online-compile/CMakeLists.txt14
-rw-r--r--chromium/third_party/shaderc/src/glslc/CMakeLists.txt33
-rw-r--r--chromium/third_party/shaderc/src/glslc/README.asciidoc5
-rw-r--r--chromium/third_party/shaderc/src/glslc/src/file_compiler.cc39
-rw-r--r--chromium/third_party/shaderc/src/glslc/src/file_compiler.h4
-rw-r--r--chromium/third_party/shaderc/src/glslc/src/main.cc15
-rwxr-xr-xchromium/third_party/shaderc/src/kokoro/linux/build-docker.sh98
-rwxr-xr-x[-rw-r--r--]chromium/third_party/shaderc/src/kokoro/linux/build.sh102
-rwxr-xr-x[-rw-r--r--]chromium/third_party/shaderc/src/kokoro/linux/build_clang_asan.sh2
-rwxr-xr-x[-rw-r--r--]chromium/third_party/shaderc/src/kokoro/linux/build_clang_debug.sh2
-rwxr-xr-x[-rw-r--r--]chromium/third_party/shaderc/src/kokoro/linux/build_clang_release.sh2
-rwxr-xr-x[-rw-r--r--]chromium/third_party/shaderc/src/kokoro/linux/build_gcc_coverage.sh2
-rwxr-xr-x[-rw-r--r--]chromium/third_party/shaderc/src/kokoro/linux/build_gcc_debug.sh2
-rwxr-xr-x[-rw-r--r--]chromium/third_party/shaderc/src/kokoro/linux/build_gcc_debug_exception.sh2
-rwxr-xr-x[-rw-r--r--]chromium/third_party/shaderc/src/kokoro/linux/build_gcc_release.sh2
-rwxr-xr-x[-rw-r--r--]chromium/third_party/shaderc/src/kokoro/linux/build_mingw_release.sh0
-rw-r--r--chromium/third_party/shaderc/src/kokoro/linux/continuous_license_check.cfg16
-rwxr-xr-xchromium/third_party/shaderc/src/kokoro/linux/license_check.sh28
-rwxr-xr-xchromium/third_party/shaderc/src/kokoro/linux/license_check_docker.sh20
-rw-r--r--chromium/third_party/shaderc/src/kokoro/linux/presubmit_license_check.cfg16
-rw-r--r--chromium/third_party/shaderc/src/libshaderc/Android.mk14
-rw-r--r--chromium/third_party/shaderc/src/libshaderc/CMakeLists.txt14
-rw-r--r--chromium/third_party/shaderc/src/libshaderc/src/shaderc_cpp_test.cc2
-rw-r--r--chromium/third_party/shaderc/src/libshaderc/src/shaderc_test.cc2
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_spvc/Android.mk14
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_spvc/CMakeLists.txt14
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_spvc/include/spvc/spvc.h10
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_spvc/include/spvc/spvc.hpp15
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc.cc17
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_cpp_test.cc4
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_private.cc51
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_test.cc2
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_util/Android.mk14
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_util/CMakeLists.txt14
-rw-r--r--chromium/third_party/shaderc/src/libshaderc_util/include/libshaderc_util/file_finder.h2
-rw-r--r--chromium/third_party/shaderc/src/license-checker.cfg42
-rw-r--r--chromium/third_party/shaderc/src/spvc/CMakeLists.txt14
-rw-r--r--chromium/third_party/shaderc/src/spvc/src/main.cc28
-rw-r--r--chromium/third_party/shaderc/src/third_party/CMakeLists.txt24
-rwxr-xr-xchromium/third_party/shaderc/src/utils/roll-deps2
52 files changed, 737 insertions, 146 deletions
diff --git a/chromium/third_party/shaderc/src/Android.mk b/chromium/third_party/shaderc/src/Android.mk
index 0cad257cb6f..e1ad18a6d92 100644
--- a/chromium/third_party/shaderc/src/Android.mk
+++ b/chromium/third_party/shaderc/src/Android.mk
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
ROOT_SHADERC_PATH := $(call my-dir)
include $(ROOT_SHADERC_PATH)/third_party/Android.mk
diff --git a/chromium/third_party/shaderc/src/BUILD.gn b/chromium/third_party/shaderc/src/BUILD.gn
index d9bd6028f0e..57368fedd7a 100644
--- a/chromium/third_party/shaderc/src/BUILD.gn
+++ b/chromium/third_party/shaderc/src/BUILD.gn
@@ -164,13 +164,11 @@ config("shaderc_spvc_public") {
"${spirv_headers_dir}/include",
# Accessing a private spirv-tools headers.
"${spirv_tools_dir}",
+ # Accessing auto-generated spirv-tools headers. The headers are generated by
+ # actions in ${spirv_tools_dir}/BUILD.gn, hence locate the action outputs
+ # using the generated file directory corresponding to that build file.
+ get_path_info("${spirv_tools_dir}/BUILD.gn", "gen_dir"),
]
-
- if (build_with_chromium) {
- include_dirs += [ "${target_gen_dir}/../../SPIRV-Tools/src", ]
- } else {
- include_dirs += [ "${target_gen_dir}/../SPIRV-Tools", ]
- }
if (is_component_build) {
defines = [ "SHADERC_SHAREDLIB" ]
diff --git a/chromium/third_party/shaderc/src/CHANGES b/chromium/third_party/shaderc/src/CHANGES
index 391c5c061bf..bc383595526 100644
--- a/chromium/third_party/shaderc/src/CHANGES
+++ b/chromium/third_party/shaderc/src/CHANGES
@@ -1,7 +1,24 @@
Revision history for Shaderc
-v2020.2-dev 2020-06-09
- - Start v2020.2-dev
+v2020.3-dev 2020-07-23
+ - Start v2020.3-dev
+
+v2020.2 2020-07-23
+ - General:
+ - Remove VS2013 support
+ - Support both posix and non-posix MinGW toolchains
+ - Support optionally building Tint tooling for WGSL
+ - Add -h option to glslc, spvc; same as --help
+ - Add source file license checker
+ - BUILD.gn improvements
+
+ - glslc, libshaderc:
+ - Update to Glslang generator 9
+ - Add interface to support 16bit types in HLSL
+ - Add glslc hidden experimental option -mfmt=wgsl; requires Tint
+
+ - spvc:
+ - Add minimum buffer size for Dawn reflection
v2020.1 2020-06-09
This is the last version that officially supports VS2013.
diff --git a/chromium/third_party/shaderc/src/CMakeLists.txt b/chromium/third_party/shaderc/src/CMakeLists.txt
index 93a808a20b6..6392d2bd40a 100644
--- a/chromium/third_party/shaderc/src/CMakeLists.txt
+++ b/chromium/third_party/shaderc/src/CMakeLists.txt
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
cmake_minimum_required(VERSION 2.8.12)
project(shaderc)
enable_testing()
@@ -10,6 +24,7 @@ endif()
message(STATUS "Shaderc: build type is \"${CMAKE_BUILD_TYPE}\".")
option(SHADERC_ENABLE_SPVC "Enable libshaderc_spvc" OFF)
+option(SHADERC_ENABLE_WGSL_OUTPUT "Enable WGSL output" OFF)
option(SHADERC_SKIP_INSTALL "Skip installation" ${SHADERC_SKIP_INSTALL})
if(NOT ${SHADERC_SKIP_INSTALL})
diff --git a/chromium/third_party/shaderc/src/DEPS b/chromium/third_party/shaderc/src/DEPS
index 9abe91b9176..06fa0ed3d1c 100644
--- a/chromium/third_party/shaderc/src/DEPS
+++ b/chromium/third_party/shaderc/src/DEPS
@@ -4,13 +4,13 @@ vars = {
'google_git': 'https://github.com/google',
'khronos_git': 'https://github.com/KhronosGroup',
- 'effcee_revision' : '5af957bbfc7da4e9f7aa8cac11379fa36dd79b84',
- 'glslang_revision': '839704450200e407490c538418f4d1a493b789ab',
- 'googletest_revision': 'c6e309b268d4fb9138bed7d0f56b7709c29f102f',
- 're2_revision': '14d3193228e3b3cfd21094474d64434a4840bae9',
- 'spirv_headers_revision': '11d7637e7a43cd88cfd4e42c99581dcb682936aa',
- 'spirv_tools_revision': 'd4b9f576ebb48e716efe14c7ea634a11427fa34d',
- 'spirv_cross_revision': 'f9ae06512ef744a1379d564ed0a202b12dc3478b',
+ 'effcee_revision' : '2ec8f8738118cc483b67c04a759fee53496c5659',
+ 'glslang_revision': 'f257e0ea6b9aeab2dc7af3207ac6d29d2bbc01d0',
+ 'googletest_revision': 'adeef192947fbc0f68fa14a6c494c8df32177508',
+ 're2_revision': 'ca11026a032ce2a3de4b3c389ee53d2bdc8794d6',
+ 'spirv_headers_revision': '3fdabd0da2932c276b25b9b4a988ba134eba1aa6',
+ 'spirv_tools_revision': 'b8de4f57e9838c107bcbf17cf1e02608651c0e1d',
+ 'spirv_cross_revision': '4c7944bb4260ab0466817c932a9673b6cf59438e',
}
deps = {
diff --git a/chromium/third_party/shaderc/src/android_test/Android.mk b/chromium/third_party/shaderc/src/android_test/Android.mk
index 4959331bc3f..31ad38195a5 100644
--- a/chromium/third_party/shaderc/src/android_test/Android.mk
+++ b/chromium/third_party/shaderc/src/android_test/Android.mk
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
diff --git a/chromium/third_party/shaderc/src/android_test/jni/Android.mk b/chromium/third_party/shaderc/src/android_test/jni/Android.mk
index 8a362595e73..1360751ca17 100644
--- a/chromium/third_party/shaderc/src/android_test/jni/Android.mk
+++ b/chromium/third_party/shaderc/src/android_test/jni/Android.mk
@@ -1,2 +1,16 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
LOCAL_PATH := $(call my-dir)
include $(LOCAL_PATH)/../Android.mk
diff --git a/chromium/third_party/shaderc/src/android_test/jni/Application.mk b/chromium/third_party/shaderc/src/android_test/jni/Application.mk
index c5d90ef574b..ef50946021c 100644
--- a/chromium/third_party/shaderc/src/android_test/jni/Application.mk
+++ b/chromium/third_party/shaderc/src/android_test/jni/Application.mk
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
APP_ABI := all
APP_BUILD_SCRIPT := Android.mk
APP_STL := c++_static
diff --git a/chromium/third_party/shaderc/src/cmake/linux-mingw-toolchain.cmake b/chromium/third_party/shaderc/src/cmake/linux-mingw-toolchain.cmake
index 400b9a0b2d6..60e965e4156 100644
--- a/chromium/third_party/shaderc/src/cmake/linux-mingw-toolchain.cmake
+++ b/chromium/third_party/shaderc/src/cmake/linux-mingw-toolchain.cmake
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
SET(CMAKE_SYSTEM_NAME Windows)
set(MINGW_COMPILER_PREFIX "i686-w64-mingw32" CACHE STRING
@@ -8,8 +22,12 @@ set(MINGW_SYSROOT "/usr/${MINGW_COMPILER_PREFIX}" CACHE STRING
# Which compilers to use for C and C++
find_program(CMAKE_RC_COMPILER NAMES ${MINGW_COMPILER_PREFIX}-windres)
-find_program(CMAKE_C_COMPILER NAMES ${MINGW_COMPILER_PREFIX}-gcc)
-find_program(CMAKE_CXX_COMPILER NAMES ${MINGW_COMPILER_PREFIX}-g++)
+find_program(CMAKE_C_COMPILER NAMES
+ ${MINGW_COMPILER_PREFIX}-gcc-posix
+ ${MINGW_COMPILER_PREFIX}-gcc)
+find_program(CMAKE_CXX_COMPILER NAMES
+ ${MINGW_COMPILER_PREFIX}-g++-posix
+ ${MINGW_COMPILER_PREFIX}-g++)
SET(CMAKE_FIND_ROOT_PATH ${MINGW_SYSROOT})
diff --git a/chromium/third_party/shaderc/src/cmake/setup_build.cmake b/chromium/third_party/shaderc/src/cmake/setup_build.cmake
index 4dc49c7ac88..5dab38416c5 100644
--- a/chromium/third_party/shaderc/src/cmake/setup_build.cmake
+++ b/chromium/third_party/shaderc/src/cmake/setup_build.cmake
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
if(NOT COMMAND find_host_package)
macro(find_host_package)
find_package(${ARGN})
diff --git a/chromium/third_party/shaderc/src/cmake/utils.cmake b/chromium/third_party/shaderc/src/cmake/utils.cmake
index e3b3a7795ae..ffa933674bb 100644
--- a/chromium/third_party/shaderc/src/cmake/utils.cmake
+++ b/chromium/third_party/shaderc/src/cmake/utils.cmake
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
# utility functions
function (shaderc_use_gmock TARGET)
diff --git a/chromium/third_party/shaderc/src/examples/CMakeLists.txt b/chromium/third_party/shaderc/src/examples/CMakeLists.txt
index 176c40b4c47..ce1f4c02107 100644
--- a/chromium/third_party/shaderc/src/examples/CMakeLists.txt
+++ b/chromium/third_party/shaderc/src/examples/CMakeLists.txt
@@ -1 +1,15 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
add_subdirectory(online-compile)
diff --git a/chromium/third_party/shaderc/src/examples/online-compile/CMakeLists.txt b/chromium/third_party/shaderc/src/examples/online-compile/CMakeLists.txt
index feab8f20df0..6cceb6be1bb 100644
--- a/chromium/third_party/shaderc/src/examples/online-compile/CMakeLists.txt
+++ b/chromium/third_party/shaderc/src/examples/online-compile/CMakeLists.txt
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
add_executable(shaderc-online-compile main.cc)
shaderc_default_compile_options(shaderc-online-compile)
target_include_directories(shaderc-online-compile PUBLIC ${shaderc_SOURCE_DIR}/libshaderc_util/include)
diff --git a/chromium/third_party/shaderc/src/glslc/CMakeLists.txt b/chromium/third_party/shaderc/src/glslc/CMakeLists.txt
index acf6fb0b262..31664d1d651 100644
--- a/chromium/third_party/shaderc/src/glslc/CMakeLists.txt
+++ b/chromium/third_party/shaderc/src/glslc/CMakeLists.txt
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
find_package(Threads)
add_library(glslc STATIC
@@ -17,9 +31,22 @@ add_library(glslc STATIC
shaderc_default_compile_options(glslc)
target_include_directories(glslc PUBLIC ${glslang_SOURCE_DIR})
-target_link_libraries(glslc PRIVATE glslang OSDependent OGLCompiler
- HLSL glslang SPIRV ${CMAKE_THREAD_LIBS_INIT})
-target_link_libraries(glslc PRIVATE shaderc_util shaderc)
+
+if (SHADERC_ENABLE_WGSL_OUTPUT)
+ if (IS_DIRECTORY "${tint_SOURCE_DIR}/include")
+ target_include_directories(glslc PRIVATE "${tint_SOURCE_DIR}/include")
+ target_include_directories(glslc PRIVATE "${tint_SOURCE_DIR}")
+ endif()
+ # Turn on features in the tint/tint.h header
+ add_definitions(-DTINT_BUILD_SPV_READER=1 -DTINT_BUILD_WGSL_WRITER=1)
+ add_definitions(-DSHADERC_ENABLE_WGSL_OUTPUT=1)
+endif(SHADERC_ENABLE_WGSL_OUTPUT)
+
+target_link_libraries(glslc PRIVATE
+ glslang OSDependent OGLCompiler HLSL glslang SPIRV # Glslang libraries
+ $<$<BOOL:${SHADERC_ENABLE_WGSL_OUTPUT}>:libtint> # Tint libraries, optional
+ shaderc_util shaderc # internal Shaderc libraries
+ ${CMAKE_THREAD_LIBS_INIT})
add_executable(glslc_exe src/main.cc)
shaderc_default_compile_options(glslc_exe)
diff --git a/chromium/third_party/shaderc/src/glslc/README.asciidoc b/chromium/third_party/shaderc/src/glslc/README.asciidoc
index bfcdbb4067b..dfd105b01e4 100644
--- a/chromium/third_party/shaderc/src/glslc/README.asciidoc
+++ b/chromium/third_party/shaderc/src/glslc/README.asciidoc
@@ -13,6 +13,7 @@ Clang-compatible arguments.
----
glslc [--help]
+glslc [-h]
glslc [--show-limits]
@@ -119,9 +120,9 @@ Otherwise,
=== Overall Options
-==== `--help`
+==== `--help`, `-h`
-`--help` tells the glslc compiler to display all available options and exit.
+Option `--help` or `-h` tells the glslc compiler to display all available options and exit.
==== `--show-limits`
diff --git a/chromium/third_party/shaderc/src/glslc/src/file_compiler.cc b/chromium/third_party/shaderc/src/glslc/src/file_compiler.cc
index 839cc6eebcd..5d67be1b5b2 100644
--- a/chromium/third_party/shaderc/src/glslc/src/file_compiler.cc
+++ b/chromium/third_party/shaderc/src/glslc/src/file_compiler.cc
@@ -20,6 +20,10 @@
#include <iostream>
#include <sstream>
+#if SHADERC_ENABLE_WGSL_OUTPUT == 1
+#include "tint/tint.h"
+#endif // SHADERC_ENABLE_WGSL_OUTPUT==1
+
#include "file.h"
#include "file_includer.h"
#include "shader_stage.h"
@@ -246,6 +250,26 @@ bool FileCompiler::EmitCompiledResult(
*out << "}" << std::endl;
}
break;
+ case SpirvBinaryEmissionFormat::WGSL: {
+#if SHADERC_ENABLE_WGSL_OUTPUT == 1
+ tint::Context ctx;
+ tint::reader::spirv::Parser spv_reader(
+ &ctx, std::vector<uint32_t>(result.begin(), result.end()));
+ if (!spv_reader.Parse()) {
+ std::cout << "error: failed to convert SPIR-V binary to WGSL: "
+ << spv_reader.error() << std::endl;
+ return false;
+ }
+ tint::writer::wgsl::Generator wgsl_writer(spv_reader.module());
+ if (!wgsl_writer.Generate()) {
+ std::cout << "error: failed to convert to WGSL: "
+ << wgsl_writer.error() << std::endl;
+ return false;
+ }
+ *out << wgsl_writer.result();
+#endif // SHADERC_ENABLE_WGSL_OUTPUT==1
+ break;
+ }
}
}
@@ -344,12 +368,15 @@ bool FileCompiler::ValidateOptions(size_t num_files) {
case SpirvBinaryEmissionFormat::CInitList:
std::cerr << "C-style initializer list";
break;
+ case SpirvBinaryEmissionFormat::WGSL:
+ std::cerr << "WGSL source program";
+ break;
case SpirvBinaryEmissionFormat::Unspecified:
// The compiler should never be here at runtime. This case is added to
// complete the switch cases.
break;
}
- std::cerr << " when the output is not SPIR-V binary code" << std::endl;
+ std::cerr << " when only preprocessing the source" << std::endl;
return false;
}
if (dependency_info_dumping_handler_ &&
@@ -357,9 +384,19 @@ bool FileCompiler::ValidateOptions(size_t num_files) {
std::cerr << "glslc: error: cannot dump dependency info when specifying "
"any binary output format"
<< std::endl;
+ return false;
}
}
+ if (binary_emission_format_ == SpirvBinaryEmissionFormat::WGSL) {
+#if SHADERC_ENABLE_WGSL_OUTPUT != 1
+ std::cerr << "glslc: error: can't output WGSL: glslc was built without "
+ "WGSL output support"
+ << std::endl;
+ return false;
+#endif
+ }
+
return true;
}
diff --git a/chromium/third_party/shaderc/src/glslc/src/file_compiler.h b/chromium/third_party/shaderc/src/glslc/src/file_compiler.h
index 1fa7c7e5ad5..cd41f737581 100644
--- a/chromium/third_party/shaderc/src/glslc/src/file_compiler.h
+++ b/chromium/third_party/shaderc/src/glslc/src/file_compiler.h
@@ -43,8 +43,10 @@ class FileCompiler {
// code form.
Binary, // Emits SPIR-V binary code directly.
Numbers, // Emits SPIR-V binary code as a list of hex numbers.
- CInitList, // Emits SPIR-V bianry code as a C-style initializer list
+ CInitList, // Emits SPIR-V binary code as a C-style initializer list
// of hex numbers.
+ WGSL, // Emits SPIR-V module converted to WGSL source text.
+ // Requires a build with Tint support.
};
FileCompiler()
diff --git a/chromium/third_party/shaderc/src/glslc/src/main.cc b/chromium/third_party/shaderc/src/glslc/src/main.cc
index bed325bb5b2..2b1c03edbc9 100644
--- a/chromium/third_party/shaderc/src/glslc/src/main.cc
+++ b/chromium/third_party/shaderc/src/glslc/src/main.cc
@@ -125,12 +125,15 @@ Options:
tesc, tesseval, tese, geometry, geom, compute, and comp.
-g Generate source-level debug information.
Currently this option has no effect.
+ -h Display available options.
--help Display available options.
-I <value> Add directory to include search path.
-mfmt=<format> Output SPIR-V binary code using the selected format. This
option may be specified only when the compilation output is
- in SPIR-V binary code form. Available options include bin, c
- and num. By default the binary output format is bin.
+ in SPIR-V binary code form. Available options are:
+ bin - SPIR-V binary words. This is the default.
+ c - Binary words as C initializer list of 32-bit ints
+ num - List of comma-separated 32-bit hex integers
-M Generate make dependencies. Implies -E and -w.
-MM An alias for -M.
-MD Generate make dependencies and compile.
@@ -263,7 +266,7 @@ int main(int argc, char** argv) {
for (int i = 1; i < argc; ++i) {
const string_piece arg = argv[i];
- if (arg == "--help") {
+ if (arg == "--help" || arg == "-h") {
::PrintHelp(&std::cout);
return 0;
} else if (arg == "--show-limits") {
@@ -310,7 +313,8 @@ int main(int argc, char** argv) {
compiler.options().SetHlslIoMapping(true);
} else if (arg == "-fhlsl-offsets") {
compiler.options().SetHlslOffsets(true);
- } else if (arg == "-fhlsl_functionality1" || arg == "-fhlsl-functionality1") {
+ } else if (arg == "-fhlsl_functionality1" ||
+ arg == "-fhlsl-functionality1") {
compiler.options().SetHlslFunctionality1(true);
} else if (arg == "-finvert-y") {
compiler.options().SetInvertY(true);
@@ -477,6 +481,9 @@ int main(int argc, char** argv) {
} else if (binary_output_format == "c") {
compiler.SetSpirvBinaryOutputFormat(
glslc::FileCompiler::SpirvBinaryEmissionFormat::CInitList);
+ } else if (binary_output_format == "wgsl") {
+ compiler.SetSpirvBinaryOutputFormat(
+ glslc::FileCompiler::SpirvBinaryEmissionFormat::WGSL);
} else {
std::cerr << "glslc: error: invalid value '" << binary_output_format
<< "' in '-mfmt=" << binary_output_format << "'" << std::endl;
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/build-docker.sh b/chromium/third_party/shaderc/src/kokoro/linux/build-docker.sh
new file mode 100755
index 00000000000..fb65f81a68a
--- /dev/null
+++ b/chromium/third_party/shaderc/src/kokoro/linux/build-docker.sh
@@ -0,0 +1,98 @@
+#!/bin/bash
+
+# Copyright (C) 2017 Google Inc.
+#
+# 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.
+
+# Linux Build Script run inside docker container.
+
+set -e # Fail on any error.
+
+. /bin/using.sh # Declare the bash `using` function for configuring toolchains.
+
+set -x # Display commands being run.
+
+SKIP_TESTS="False"
+BUILD_TYPE="Debug"
+
+using cmake-3.17.2
+using ninja-1.10.0
+
+if [ ! -z "$COMPILER" ]; then
+ using "$COMPILER"
+fi
+
+# Possible configurations are:
+# ASAN, COVERAGE, RELEASE, DEBUG, DEBUG_EXCEPTION, RELEASE_MINGW
+
+if [ $CONFIG = "RELEASE" ] || [ $CONFIG = "RELEASE_MINGW" ]
+then
+ BUILD_TYPE="RelWithDebInfo"
+fi
+
+ADDITIONAL_CMAKE_FLAGS=""
+if [ $CONFIG = "ASAN" ]
+then
+ ADDITIONAL_CMAKE_FLAGS="-DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_C_FLAGS=-fsanitize=address"
+elif [ $CONFIG = "COVERAGE" ]
+then
+ ADDITIONAL_CMAKE_FLAGS="-DENABLE_CODE_COVERAGE=ON"
+ SKIP_TESTS="True"
+elif [ $CONFIG = "DEBUG_EXCEPTION" ]
+then
+ ADDITIONAL_CMAKE_FLAGS="-DDISABLE_EXCEPTIONS=ON -DDISABLE_RTTI=ON"
+elif [ $CONFIG = "RELEASE_MINGW" ]
+then
+ ADDITIONAL_CMAKE_FLAGS="-Dgtest_disable_pthreads=ON -DCMAKE_TOOLCHAIN_FILE=$ROOT_DIR/cmake/linux-mingw-toolchain.cmake"
+ SKIP_TESTS="True"
+fi
+
+cd $ROOT_DIR
+./utils/git-sync-deps
+
+mkdir build
+cd $ROOT_DIR/build
+
+# Invoke the build.
+BUILD_SHA=${KOKORO_GITHUB_COMMIT:-$KOKORO_GITHUB_PULL_REQUEST_COMMIT}
+echo $(date): Starting build...
+cmake -GNinja -DCMAKE_INSTALL_PREFIX=$KOKORO_ARTIFACTS_DIR/install -DSHADERC_ENABLE_SPVC=ON -DRE2_BUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=$BUILD_TYPE $ADDITIONAL_CMAKE_FLAGS ..
+
+echo $(date): Build glslang...
+ninja glslangValidator
+
+echo $(date): Build everything...
+ninja
+echo $(date): Build completed.
+
+echo $(date): Check Shaderc for copyright notices...
+ninja check-copyright
+
+if [ $CONFIG = "COVERAGE" ]
+then
+ echo $(date): Check coverage...
+ ninja report-coverage
+ echo $(date): Check coverage completed.
+fi
+
+echo $(date): Starting ctest...
+if [ $SKIP_TESTS = "False" ]
+then
+ ctest --output-on-failure -j4
+fi
+echo $(date): ctest completed.
+
+# Package the build.
+ninja install
+cd $KOKORO_ARTIFACTS_DIR
+tar czf install.tgz install
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/build.sh b/chromium/third_party/shaderc/src/kokoro/linux/build.sh
index a1a33961839..765a3874ec4 100644..100755
--- a/chromium/third_party/shaderc/src/kokoro/linux/build.sh
+++ b/chromium/third_party/shaderc/src/kokoro/linux/build.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright (C) 2017 Google Inc.
+# Copyright (C) 2020 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,94 +16,22 @@
#
# Linux Build Script.
+set -e # Fail on any error.
-# Fail on any error.
-set -e
-# Display commands being run.
-set -x
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
+ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )"
-BUILD_ROOT=$PWD
-SRC=$PWD/github/shaderc
CONFIG=$1
COMPILER=$2
-SKIP_TESTS="False"
-BUILD_TYPE="Debug"
-
-CMAKE_C_CXX_COMPILER=""
-if [ $COMPILER = "clang" ]
-then
- PATH=/usr/lib/llvm-3.8/bin:$PATH
- CMAKE_C_CXX_COMPILER="-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++"
-fi
-
-# Possible configurations are:
-# ASAN, COVERAGE, RELEASE, DEBUG, DEBUG_EXCEPTION, RELEASE_MINGW
-
-if [ $CONFIG = "RELEASE" ] || [ $CONFIG = "RELEASE_MINGW" ]
-then
- BUILD_TYPE="RelWithDebInfo"
-fi
-
-ADDITIONAL_CMAKE_FLAGS=""
-if [ $CONFIG = "ASAN" ]
-then
- ADDITIONAL_CMAKE_FLAGS="-DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_C_FLAGS=-fsanitize=address"
- [ $COMPILER = "clang" ] || { echo "$CONFIG requires clang"; exit 1; }
-elif [ $CONFIG = "COVERAGE" ]
-then
- ADDITIONAL_CMAKE_FLAGS="-DENABLE_CODE_COVERAGE=ON"
- SKIP_TESTS="True"
-elif [ $CONFIG = "DEBUG_EXCEPTION" ]
-then
- ADDITIONAL_CMAKE_FLAGS="-DDISABLE_EXCEPTIONS=ON -DDISABLE_RTTI=ON"
-elif [ $CONFIG = "RELEASE_MINGW" ]
-then
- ADDITIONAL_CMAKE_FLAGS="-Dgtest_disable_pthreads=ON -DCMAKE_TOOLCHAIN_FILE=$SRC/cmake/linux-mingw-toolchain.cmake"
- SKIP_TESTS="True"
-fi
-
-# Get NINJA.
-wget -q https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-linux.zip
-unzip -q ninja-linux.zip
-export PATH="$PWD:$PATH"
-
-cd $SRC
-./utils/git-sync-deps
-
-mkdir build
-cd $SRC/build
-
-# Invoke the build.
-BUILD_SHA=${KOKORO_GITHUB_COMMIT:-$KOKORO_GITHUB_PULL_REQUEST_COMMIT}
-echo $(date): Starting build...
-cmake -GNinja -DCMAKE_INSTALL_PREFIX=$KOKORO_ARTIFACTS_DIR/install -DSHADERC_ENABLE_SPVC=ON -DRE2_BUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=$BUILD_TYPE $ADDITIONAL_CMAKE_FLAGS $CMAKE_C_CXX_COMPILER ..
-
-echo $(date): Build glslang...
-ninja glslangValidator
-
-echo $(date): Build everything...
-ninja
-echo $(date): Build completed.
-
-echo $(date): Check Shaderc for copyright notices...
-ninja check-copyright
-
-if [ $CONFIG = "COVERAGE" ]
-then
- echo $(date): Check coverage...
- ninja report-coverage
- echo $(date): Check coverage completed.
-fi
-
-echo $(date): Starting ctest...
-if [ $SKIP_TESTS = "False" ]
-then
- ctest --output-on-failure -j4
-fi
-echo $(date): ctest completed.
-
-# Package the build.
-ninja install
-cd $KOKORO_ARTIFACTS_DIR
-tar czf install.tgz install
+docker run --rm -i \
+ --volume "${ROOT_DIR}:${ROOT_DIR}" \
+ --volume "${KOKORO_ARTIFACTS_DIR}:${KOKORO_ARTIFACTS_DIR}" \
+ --workdir "${ROOT_DIR}" \
+ --env ROOT_DIR="${ROOT_DIR}" \
+ --env SCRIPT_DIR="${SCRIPT_DIR}" \
+ --env CONFIG="${CONFIG}" \
+ --env COMPILER="${COMPILER}" \
+ --env KOKORO_ARTIFACTS_DIR="${KOKORO_ARTIFACTS_DIR}" \
+ --entrypoint "${SCRIPT_DIR}/build-docker.sh" \
+ "gcr.io/shaderc-build/radial-build:latest"
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/build_clang_asan.sh b/chromium/third_party/shaderc/src/kokoro/linux/build_clang_asan.sh
index dae31730635..9110bc5cd3c 100644..100755
--- a/chromium/third_party/shaderc/src/kokoro/linux/build_clang_asan.sh
+++ b/chromium/third_party/shaderc/src/kokoro/linux/build_clang_asan.sh
@@ -22,4 +22,4 @@ set -e
set -x
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
-source $SCRIPT_DIR/build.sh ASAN clang
+source $SCRIPT_DIR/build.sh ASAN "clang-10.0.0"
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/build_clang_debug.sh b/chromium/third_party/shaderc/src/kokoro/linux/build_clang_debug.sh
index 6e045ae65ff..227237e7be8 100644..100755
--- a/chromium/third_party/shaderc/src/kokoro/linux/build_clang_debug.sh
+++ b/chromium/third_party/shaderc/src/kokoro/linux/build_clang_debug.sh
@@ -22,4 +22,4 @@ set -e
set -x
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
-source $SCRIPT_DIR/build.sh DEBUG clang
+source $SCRIPT_DIR/build.sh DEBUG "clang-10.0.0"
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/build_clang_release.sh b/chromium/third_party/shaderc/src/kokoro/linux/build_clang_release.sh
index de73841d494..126f5d441a7 100644..100755
--- a/chromium/third_party/shaderc/src/kokoro/linux/build_clang_release.sh
+++ b/chromium/third_party/shaderc/src/kokoro/linux/build_clang_release.sh
@@ -22,4 +22,4 @@ set -e
set -x
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
-source $SCRIPT_DIR/build.sh RELEASE clang
+source $SCRIPT_DIR/build.sh RELEASE "clang-10.0.0"
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_coverage.sh b/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_coverage.sh
index 4ee18484677..7270334c6c2 100644..100755
--- a/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_coverage.sh
+++ b/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_coverage.sh
@@ -22,4 +22,4 @@ set -e
set -x
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
-source $SCRIPT_DIR/build.sh COVERAGE gcc
+source $SCRIPT_DIR/build.sh COVERAGE "gcc-7" # gcc-8+ has issues with lcov
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_debug.sh b/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_debug.sh
index 23f4819b32d..3a96cf762ed 100644..100755
--- a/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_debug.sh
+++ b/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_debug.sh
@@ -22,4 +22,4 @@ set -e
set -x
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
-source $SCRIPT_DIR/build.sh DEBUG gcc
+source $SCRIPT_DIR/build.sh DEBUG "gcc-9"
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_debug_exception.sh b/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_debug_exception.sh
index d2c8e9a8238..9849336acec 100644..100755
--- a/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_debug_exception.sh
+++ b/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_debug_exception.sh
@@ -22,4 +22,4 @@ set -e
set -x
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
-source $SCRIPT_DIR/build.sh DEBUG_EXCEPTION gcc
+source $SCRIPT_DIR/build.sh DEBUG_EXCEPTION "gcc-9"
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_release.sh b/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_release.sh
index fedc393677b..912360499e3 100644..100755
--- a/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_release.sh
+++ b/chromium/third_party/shaderc/src/kokoro/linux/build_gcc_release.sh
@@ -22,4 +22,4 @@ set -e
set -x
SCRIPT_DIR=`dirname "$BASH_SOURCE"`
-source $SCRIPT_DIR/build.sh RELEASE gcc
+source $SCRIPT_DIR/build.sh RELEASE "gcc-9"
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/build_mingw_release.sh b/chromium/third_party/shaderc/src/kokoro/linux/build_mingw_release.sh
index 0b54dc68cd2..0b54dc68cd2 100644..100755
--- a/chromium/third_party/shaderc/src/kokoro/linux/build_mingw_release.sh
+++ b/chromium/third_party/shaderc/src/kokoro/linux/build_mingw_release.sh
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/continuous_license_check.cfg b/chromium/third_party/shaderc/src/kokoro/linux/continuous_license_check.cfg
new file mode 100644
index 00000000000..066a4d3b910
--- /dev/null
+++ b/chromium/third_party/shaderc/src/kokoro/linux/continuous_license_check.cfg
@@ -0,0 +1,16 @@
+# Copyright (C) 2020 Google Inc.
+#
+# 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.
+
+# Continuous build configuration.
+build_file: "shaderc/kokoro/linux/license_check.sh"
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/license_check.sh b/chromium/third_party/shaderc/src/kokoro/linux/license_check.sh
new file mode 100755
index 00000000000..a36e4ff6a1a
--- /dev/null
+++ b/chromium/third_party/shaderc/src/kokoro/linux/license_check.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+# Copyright (C) 2020 Google Inc.
+#
+# 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.
+
+set -e # Fail on any error.
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd )"
+ROOT_DIR="$( cd "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd )"
+
+docker run --rm -i \
+ --volume "${ROOT_DIR}:${ROOT_DIR}:ro" \
+ --workdir "${ROOT_DIR}" \
+ --env ROOT_DIR="${ROOT_DIR}" \
+ --env SCRIPT_DIR="${SCRIPT_DIR}" \
+ --entrypoint "${SCRIPT_DIR}/license_check_docker.sh" \
+ "gcr.io/shaderc-build/radial-build:latest"
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/license_check_docker.sh b/chromium/third_party/shaderc/src/kokoro/linux/license_check_docker.sh
new file mode 100755
index 00000000000..f88077e87cb
--- /dev/null
+++ b/chromium/third_party/shaderc/src/kokoro/linux/license_check_docker.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Copyright (C) 2020 Google Inc.
+#
+# 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.
+
+set -e # Fail on any error.
+set -x # Display commands being run.
+
+license-checker --dir="$ROOT_DIR" \ No newline at end of file
diff --git a/chromium/third_party/shaderc/src/kokoro/linux/presubmit_license_check.cfg b/chromium/third_party/shaderc/src/kokoro/linux/presubmit_license_check.cfg
new file mode 100644
index 00000000000..38db8f54e14
--- /dev/null
+++ b/chromium/third_party/shaderc/src/kokoro/linux/presubmit_license_check.cfg
@@ -0,0 +1,16 @@
+# Copyright (C) 2020 Google Inc.
+#
+# 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.
+
+# Presubmit build configuration.
+build_file: "shaderc/kokoro/linux/license_check.sh"
diff --git a/chromium/third_party/shaderc/src/libshaderc/Android.mk b/chromium/third_party/shaderc/src/libshaderc/Android.mk
index 64618afc61f..294af69f8b5 100644
--- a/chromium/third_party/shaderc/src/libshaderc/Android.mk
+++ b/chromium/third_party/shaderc/src/libshaderc/Android.mk
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
diff --git a/chromium/third_party/shaderc/src/libshaderc/CMakeLists.txt b/chromium/third_party/shaderc/src/libshaderc/CMakeLists.txt
index f4a80d86330..3ada4198b04 100644
--- a/chromium/third_party/shaderc/src/libshaderc/CMakeLists.txt
+++ b/chromium/third_party/shaderc/src/libshaderc/CMakeLists.txt
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
project(libshaderc)
# Even though shaderc.hpp is a headers-only library, adding
diff --git a/chromium/third_party/shaderc/src/libshaderc/src/shaderc_cpp_test.cc b/chromium/third_party/shaderc/src/libshaderc/src/shaderc_cpp_test.cc
index 744d2ee1395..af9ae30401b 100644
--- a/chromium/third_party/shaderc/src/libshaderc/src/shaderc_cpp_test.cc
+++ b/chromium/third_party/shaderc/src/libshaderc/src/shaderc_cpp_test.cc
@@ -363,7 +363,7 @@ TEST_F(CppInterface, D_DisassemblyOption) {
const AssemblyCompilationResult result = compiler_.CompileGlslToSpvAssembly(
kMinimalShader, shaderc_glsl_vertex_shader, "shader", options_);
EXPECT_TRUE(CompilationResultIsSuccess(result));
- // This should work with both the glslang native disassembly format and the
+ // This should work with both the glslang disassembly format and the
// SPIR-V Tools assembly format.
EXPECT_THAT(CompilerOutputAsString(result), HasSubstr("Capability Shader"));
EXPECT_THAT(CompilerOutputAsString(result), HasSubstr("MemoryModel"));
diff --git a/chromium/third_party/shaderc/src/libshaderc/src/shaderc_test.cc b/chromium/third_party/shaderc/src/libshaderc/src/shaderc_test.cc
index 14f28abdfc8..31624685d70 100644
--- a/chromium/third_party/shaderc/src/libshaderc/src/shaderc_test.cc
+++ b/chromium/third_party/shaderc/src/libshaderc/src/shaderc_test.cc
@@ -498,7 +498,7 @@ TEST_F(CompileStringWithOptionsTest, ValuelessMacroCompileOptionsNullPointer) {
TEST_F(CompileStringWithOptionsTest, DisassemblyOption) {
ASSERT_NE(nullptr, compiler_.get_compiler_handle());
- // This should work with both the glslang native assembly format and the
+ // This should work with both the glslang assembly format and the
// SPIR-V tools assembly format.
const std::string disassembly_text =
CompilationOutput(kMinimalShader, shaderc_glsl_vertex_shader,
diff --git a/chromium/third_party/shaderc/src/libshaderc_spvc/Android.mk b/chromium/third_party/shaderc/src/libshaderc_spvc/Android.mk
index f0579a8599e..a13e05baa4e 100644
--- a/chromium/third_party/shaderc/src/libshaderc_spvc/Android.mk
+++ b/chromium/third_party/shaderc/src/libshaderc_spvc/Android.mk
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
diff --git a/chromium/third_party/shaderc/src/libshaderc_spvc/CMakeLists.txt b/chromium/third_party/shaderc/src/libshaderc_spvc/CMakeLists.txt
index b22f9ebfba7..927375cf589 100644
--- a/chromium/third_party/shaderc/src/libshaderc_spvc/CMakeLists.txt
+++ b/chromium/third_party/shaderc/src/libshaderc_spvc/CMakeLists.txt
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
project(libshaderc)
find_package(Threads)
diff --git a/chromium/third_party/shaderc/src/libshaderc_spvc/include/spvc/spvc.h b/chromium/third_party/shaderc/src/libshaderc_spvc/include/spvc/spvc.h
index d4d8a5cd989..e40b43400a2 100644
--- a/chromium/third_party/shaderc/src/libshaderc_spvc/include/spvc/spvc.h
+++ b/chromium/third_party/shaderc/src/libshaderc_spvc/include/spvc/spvc.h
@@ -443,6 +443,11 @@ SHADERC_EXPORT shaderc_spvc_status
shaderc_spvc_compile_options_set_msl_buffer_size_buffer_index(
shaderc_spvc_compile_options_t options, uint32_t index);
+// Set the additional fixed sample mask for MSL
+SHADERC_EXPORT shaderc_spvc_status
+shaderc_spvc_compile_options_set_msl_additional_fixed_sample_mask(
+ shaderc_spvc_compile_options_t options, uint32_t mask);
+
// Set HLSL shader model. Default is 30.
SHADERC_EXPORT shaderc_spvc_status
shaderc_spvc_compile_options_set_hlsl_shader_model(
@@ -458,6 +463,11 @@ SHADERC_EXPORT shaderc_spvc_status
shaderc_spvc_compile_options_set_hlsl_point_coord_compat(
shaderc_spvc_compile_options_t options, bool b);
+// If true, enable 16-bit types. Default is false.
+SHADERC_EXPORT shaderc_spvc_status
+shaderc_spvc_compile_options_set_hlsl_enable_16bit_types(
+ shaderc_spvc_compile_options_t options, bool b);
+
// If true, set non-writable storage images to be SRV, see spirv_hlsl.hpp in
// SPIRV-Cross for more details.
SHADERC_EXPORT shaderc_spvc_status
diff --git a/chromium/third_party/shaderc/src/libshaderc_spvc/include/spvc/spvc.hpp b/chromium/third_party/shaderc/src/libshaderc_spvc/include/spvc/spvc.hpp
index 5bdf6011ebc..33e717d4a3c 100644
--- a/chromium/third_party/shaderc/src/libshaderc_spvc/include/spvc/spvc.hpp
+++ b/chromium/third_party/shaderc/src/libshaderc_spvc/include/spvc/spvc.hpp
@@ -78,6 +78,9 @@ class CompilationResult {
uint32_t binary_length;
status =
shaderc_spvc_result_get_binary_length(result_.get(), &binary_length);
+ if (status != shaderc_spvc_status_success) {
+ return status;
+ }
if (!binary_output || !binary_length) {
*data = std::vector<uint32_t>();
} else {
@@ -277,6 +280,12 @@ class CompileOptions {
options_.get(), index);
}
+ // Set the additional fixed sample mask for MSL
+ shaderc_spvc_status SetMSLAdditionalFixedSampleMask(uint32_t mask) {
+ return shaderc_spvc_compile_options_set_msl_additional_fixed_sample_mask(
+ options_.get(), mask);
+ }
+
// Which HLSL shader model should be used. Default is 30.
shaderc_spvc_status SetHLSLShaderModel(uint32_t model) {
return shaderc_spvc_compile_options_set_hlsl_shader_model(options_.get(),
@@ -295,6 +304,12 @@ class CompileOptions {
options_.get(), b);
}
+ // If true, enable 16-bit types. Default is false.
+ shaderc_spvc_status SetHLSLEnable16BitTypes(bool b) {
+ return shaderc_spvc_compile_options_set_hlsl_enable_16bit_types(
+ options_.get(), b);
+ }
+
// If true, set non-writable storage images to be SRV, see spirv_hlsl.hpp in
// SPIRV-Cross for more details.
shaderc_spvc_status SetHLSLNonWritableUAVTextureAsSRV(bool b) {
diff --git a/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc.cc b/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc.cc
index ebb30d6e90b..8ff4afb73b4 100644
--- a/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc.cc
+++ b/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc.cc
@@ -606,6 +606,15 @@ shaderc_spvc_compile_options_set_msl_buffer_size_buffer_index(
return shaderc_spvc_status_success;
}
+shaderc_spvc_status
+shaderc_spvc_compile_options_set_msl_additional_fixed_sample_mask(
+ shaderc_spvc_compile_options_t options, uint32_t mask) {
+ CHECK_OPTIONS(nullptr, options);
+
+ options->msl.additional_fixed_sample_mask = mask;
+ return shaderc_spvc_status_success;
+}
+
shaderc_spvc_status shaderc_spvc_compile_options_set_hlsl_shader_model(
shaderc_spvc_compile_options_t options, uint32_t model) {
CHECK_OPTIONS(nullptr, options);
@@ -630,6 +639,14 @@ shaderc_spvc_status shaderc_spvc_compile_options_set_hlsl_point_coord_compat(
return shaderc_spvc_status_success;
}
+shaderc_spvc_status shaderc_spvc_compile_options_set_hlsl_enable_16bit_types(
+ shaderc_spvc_compile_options_t options, bool b) {
+ CHECK_OPTIONS(nullptr, options);
+
+ options->hlsl.enable_16bit_types = b;
+ return shaderc_spvc_status_success;
+}
+
shaderc_spvc_status
shaderc_spvc_compile_options_set_hlsl_nonwritable_uav_texture_as_srv(
shaderc_spvc_compile_options_t options, bool b) {
diff --git a/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_cpp_test.cc b/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_cpp_test.cc
index 09ad88b5c47..7bb426ad828 100644
--- a/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_cpp_test.cc
+++ b/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_cpp_test.cc
@@ -25,6 +25,10 @@ namespace {
class CompileTest : public testing::Test {
public:
+ CompileTest()
+ : options_(shaderc_spvc_spv_env_vulkan_1_1,
+ shaderc_spvc_spv_env_vulkan_1_1) {}
+
Context context_;
CompileOptions options_;
CompilationResult result_;
diff --git a/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_private.cc b/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_private.cc
index 69ca3e4befa..4884db646f2 100644
--- a/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_private.cc
+++ b/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_private.cc
@@ -29,6 +29,21 @@
#define CATCH_IF_EXCEPTIONS_ENABLED(X) catch (X)
#endif
+namespace {
+bool is_vulkan_env(spv_target_env env) {
+ switch (env) {
+ case SPV_ENV_VULKAN_1_0:
+ case SPV_ENV_VULKAN_1_1:
+ case SPV_ENV_VULKAN_1_1_SPIRV_1_4:
+ case SPV_ENV_VULKAN_1_2:
+ return true;
+ default:
+ return false;
+ }
+}
+
+} // namespace
+
namespace spvc_private {
spv_target_env get_spv_target_env(shaderc_target_env env,
@@ -115,29 +130,35 @@ shaderc_spvc_status translate_spirv(shaderc_spvc_context* context,
const uint32_t* source, size_t source_len,
shaderc_spvc_compile_options_t options,
std::vector<uint32_t>* target) {
+ bool registered_pass = false;
if (!target) {
shaderc_spvc::ErrorLog(context)
<< "null provided for translation destination.";
return shaderc_spvc_status_transformation_error;
}
- if (source_env == target_env) {
- target->resize(source_len);
- memcpy(target->data(), source, source_len * sizeof(uint32_t));
- return shaderc_spvc_status_success;
- }
-
spvtools::Optimizer opt(source_env);
+ opt.SetValidateAfterAll(options->validate);
opt.SetMessageConsumer(std::bind(
consume_spirv_tools_message, context, std::placeholders::_1,
std::placeholders::_2, std::placeholders::_3, std::placeholders::_4));
- if (source_env == SPV_ENV_WEBGPU_0 && target_env == SPV_ENV_VULKAN_1_1) {
+ if (source_env == SPV_ENV_WEBGPU_0 && is_vulkan_env(target_env)) {
+ registered_pass = true;
opt.RegisterWebGPUToVulkanPasses();
- } else if (source_env == SPV_ENV_VULKAN_1_1 &&
- target_env == SPV_ENV_WEBGPU_0) {
+ } else if (is_vulkan_env(source_env) && target_env == SPV_ENV_WEBGPU_0) {
+ registered_pass = true;
opt.RegisterVulkanToWebGPUPasses();
- } else {
+ } else if (source_env == SPV_ENV_UNIVERSAL_1_0 &&
+ target_env == SPV_ENV_UNIVERSAL_1_0) {
+ // Assuming that the default constructor in Dawn was used, thus the intent
+ // was to perform WebGPU->Vulkan conversion.
+ //
+ // TODO: Remove this case once deprecated options constructor with defaults
+ // is removed.
+ registered_pass = true;
+ opt.RegisterWebGPUToVulkanPasses();
+ } else if (source_env != target_env) {
shaderc_spvc::ErrorLog(context)
<< "No defined transformation between source and target execution "
"environments.";
@@ -145,10 +166,18 @@ shaderc_spvc_status translate_spirv(shaderc_spvc_context* context,
}
if (options->robust_buffer_access_pass) {
+ registered_pass = true;
opt.RegisterPass(spvtools::CreateGraphicsRobustAccessPass());
}
- if (!opt.Run(source, source_len, target)) {
+ if (!registered_pass) {
+ target->resize(source_len);
+ memcpy(target->data(), source, source_len * sizeof(uint32_t));
+ return shaderc_spvc_status_success;
+ }
+
+ if (!opt.Run(source, source_len, target, spvtools::ValidatorOptions(),
+ options->validate)) {
shaderc_spvc::ErrorLog(context) << "Transformations between source and "
"target execution environments failed.";
return shaderc_spvc_status_transformation_error;
diff --git a/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_test.cc b/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_test.cc
index 7a572bd079b..3409668a016 100644
--- a/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_test.cc
+++ b/chromium/third_party/shaderc/src/libshaderc_spvc/src/spvc_test.cc
@@ -28,7 +28,7 @@ class CompileTest : public testing::Test {
void SetUp() override {
context_ = shaderc_spvc_context_create();
options_ = shaderc_spvc_compile_options_create(
- shaderc_spvc_spv_env_vulkan_1_0, shaderc_spvc_spv_env_vulkan_1_0);
+ shaderc_spvc_spv_env_vulkan_1_1, shaderc_spvc_spv_env_vulkan_1_1);
result_ = shaderc_spvc_result_create();
}
diff --git a/chromium/third_party/shaderc/src/libshaderc_util/Android.mk b/chromium/third_party/shaderc/src/libshaderc_util/Android.mk
index 81b4c76caea..a694787dbdc 100644
--- a/chromium/third_party/shaderc/src/libshaderc_util/Android.mk
+++ b/chromium/third_party/shaderc/src/libshaderc_util/Android.mk
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
diff --git a/chromium/third_party/shaderc/src/libshaderc_util/CMakeLists.txt b/chromium/third_party/shaderc/src/libshaderc_util/CMakeLists.txt
index f8ae95d0c2e..48f99912ff3 100644
--- a/chromium/third_party/shaderc/src/libshaderc_util/CMakeLists.txt
+++ b/chromium/third_party/shaderc/src/libshaderc_util/CMakeLists.txt
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
project(libshaderc_util)
add_library(shaderc_util STATIC
diff --git a/chromium/third_party/shaderc/src/libshaderc_util/include/libshaderc_util/file_finder.h b/chromium/third_party/shaderc/src/libshaderc_util/include/libshaderc_util/file_finder.h
index 2c1c9d12279..a5f91cf6e25 100644
--- a/chromium/third_party/shaderc/src/libshaderc_util/include/libshaderc_util/file_finder.h
+++ b/chromium/third_party/shaderc/src/libshaderc_util/include/libshaderc_util/file_finder.h
@@ -27,7 +27,7 @@ class FileFinder {
// non-empty. The search is attempted on filename prefixed by each element of
// search_path() in turn. The first hit is returned, or an empty string if
// there are no hits. Search attempts treat their argument the way
- // std::fopen() treats its filename argument, blind to whether the path is
+ // std::fopen() treats its filename argument, ignoring whether the path is
// absolute or relative.
//
// If a search_path() element is non-empty and not ending in a slash, then a
diff --git a/chromium/third_party/shaderc/src/license-checker.cfg b/chromium/third_party/shaderc/src/license-checker.cfg
new file mode 100644
index 00000000000..d30ca8e5a8a
--- /dev/null
+++ b/chromium/third_party/shaderc/src/license-checker.cfg
@@ -0,0 +1,42 @@
+[
+ {
+ "licenses": [ "Apache-2.0-Header" ],
+ "paths": [
+ {
+ "exclude": [
+ "**.md",
+ "**.png",
+ "**/README.asciidoc",
+
+ ".*",
+ "AUTHORS",
+ "CHANGES",
+ "CONTRIBUTORS",
+ "DEPS",
+ "LICENSE",
+
+ "cmake/*.pc.in",
+ "libshaderc_util/testdata/dir/subdir/include_file.2",
+ "libshaderc_util/testdata/include_file.1",
+ "spvc/README.asciidoc",
+ "spvc/test/known_failures",
+ "spvc/test/known_invalids",
+ "spvc/test/known_spvc_failures",
+ "spvc/test/unconfirmed_invalids",
+ "spvc/test/**.vert",
+
+ "utils/git-sync-deps",
+
+ "third_party/**"
+ ]
+ }
+ ]
+ },
+ {
+ "licenses": [ "BSD-3-Clause" ],
+ "paths": [
+ { "exclude": [ "**" ] },
+ { "include": [ "utils/git-sync-deps" ] }
+ ]
+ }
+] \ No newline at end of file
diff --git a/chromium/third_party/shaderc/src/spvc/CMakeLists.txt b/chromium/third_party/shaderc/src/spvc/CMakeLists.txt
index f4659725622..399b04ed705 100644
--- a/chromium/third_party/shaderc/src/spvc/CMakeLists.txt
+++ b/chromium/third_party/shaderc/src/spvc/CMakeLists.txt
@@ -1,3 +1,17 @@
+# Copyright 2020 The Shaderc Authors. All rights reserved.
+#
+# 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.
+
add_executable(spvc_exe src/main.cc)
shaderc_default_compile_options(spvc_exe)
target_include_directories(spvc_exe PRIVATE ${shaderc_SOURCE_DIR}/libshaderc/include ${spirv-tools_SOURCE_DIR}/include)
diff --git a/chromium/third_party/shaderc/src/spvc/src/main.cc b/chromium/third_party/shaderc/src/spvc/src/main.cc
index 8a31af6d344..86969cbcd7a 100644
--- a/chromium/third_party/shaderc/src/spvc/src/main.cc
+++ b/chromium/third_party/shaderc/src/spvc/src/main.cc
@@ -38,6 +38,7 @@ Usage: spvc [options] file
An input file of - represents standard input.
Options:
+ -h Display available options.
--help Display available options.
-v Display compiler version information.
-o <output file> '-' means standard output.
@@ -88,6 +89,7 @@ Options:
--msl-domain-lower-left
--msl-argument-buffers
--msl-discrete-descriptor-set=<number>
+ --msl-additional-fixed-sample-mask=<number>
--emit-line-directives
--hlsl-enable-compat
--shader-model=<model>
@@ -110,14 +112,15 @@ bool ReadFile(const std::string& path, std::vector<uint32_t>* out) {
out->resize(ftell(file) / sizeof((*out)[0]));
rewind(file);
+ bool status = true;
if (fread(out->data(), sizeof((*out)[0]), out->size(), file) != out->size()) {
std::cerr << "Failed to read SPIR-V file: " << path << std::endl;
out->clear();
- return false;
+ status = false;
}
fclose(file);
- return true;
+ return status;
}
bool StringPieceToEnvEnum(const string_piece& str, shaderc_spvc_spv_env* env) {
@@ -184,7 +187,7 @@ int main(int argc, char** argv) {
shaderc_spvc::CompileOptions options(source_env, target_env);
for (int i = 1; i < argc; ++i) {
const string_piece arg = argv[i];
- if (arg == "--help") {
+ if (arg == "--help" || arg == "-h") {
::PrintHelp(&std::cout);
return 0;
} else if (arg == "-v") {
@@ -237,11 +240,11 @@ int main(int argc, char** argv) {
}
} else if (arg == "--remove-unused-variables") {
options.SetRemoveUnusedVariables(true);
- } else if (arg == "--no-validate"){
+ } else if (arg == "--no-validate") {
options.SetValidate(false);
- } else if (arg == "--no-optimize"){
+ } else if (arg == "--no-optimize") {
options.SetOptimize(false);
- } else if (arg == "--robust-buffer-access-pass"){
+ } else if (arg == "--robust-buffer-access-pass") {
options.SetRobustBufferAccessPass(true);
} else if (arg == "--vulkan-semantics") {
options.SetVulkanSemantics(true);
@@ -293,6 +296,17 @@ int main(int argc, char** argv) {
return 1;
}
msl_discrete_descriptor.push_back(descriptor_num);
+ } else if (arg.starts_with("--msl-additional-fixed-sample-mask=")) {
+ string_piece sample_mask_str;
+ GetOptionArgument(argc, argv, &i,
+ "--msl-additional-fixed-sample-mask=", &sample_mask_str);
+ uint32_t sample_mask_num;
+ if (!shaderc_util::ParseUint32(sample_mask_str.str(), &sample_mask_num)) {
+ std::cerr << "spvc: error: invalid value '" << sample_mask_str
+ << "' in --msl-additional-fixed-sample-mask=" << std::endl;
+ return 1;
+ }
+ options.SetMSLAdditionalFixedSampleMask(sample_mask_num);
} else if (arg == "--emit-line-directives") {
options.SetEmitLineDirectives(true);
} else if (arg.starts_with("--shader-model=")) {
@@ -324,7 +338,7 @@ int main(int argc, char** argv) {
options.SetMSLDiscreteDescriptorSets(msl_discrete_descriptor);
shaderc_spvc::CompilationResult result;
- shaderc_spvc_status status = shaderc_spvc_status_configuration_error;
+ shaderc_spvc_status status;
if (output_language == "glsl") {
status = context.InitializeForGlsl((const uint32_t*)input.data(),
diff --git a/chromium/third_party/shaderc/src/third_party/CMakeLists.txt b/chromium/third_party/shaderc/src/third_party/CMakeLists.txt
index 87c11cb776d..b2293b39193 100644
--- a/chromium/third_party/shaderc/src/third_party/CMakeLists.txt
+++ b/chromium/third_party/shaderc/src/third_party/CMakeLists.txt
@@ -17,6 +17,8 @@ set(SHADERC_EFFCEE_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/effcee" CACHE STRING
"Location of effcee source")
set(SHADERC_RE2_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/re2" CACHE STRING
"Location of re2 source")
+set(SHADERC_TINT_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/tint" CACHE STRING
+ "Location of tint source")
set( SKIP_GLSLANG_INSTALL ${SHADERC_SKIP_INSTALL} )
set( SKIP_SPIRV_TOOLS_INSTALL ${SHADERC_SKIP_INSTALL} )
@@ -33,6 +35,7 @@ if(${SHADERC_ENABLE_TESTS})
endif()
set(OLD_PLATFORM_TOOLSET ${CMAKE_GENERATOR_TOOLSET})
+check_cxx_compiler_flag(-fPIC COMPILER_SUPPORTS_PIC)
if (IS_DIRECTORY ${SHADERC_SPIRV_HEADERS_DIR})
@@ -82,7 +85,6 @@ if (SHADERC_ENABLE_SPVC)
if (NOT TARGET spirv-cross-core)
if (IS_DIRECTORY ${SHADERC_SPIRV_CROSS_DIR})
# Add -fPIC to SPIRV-Cross build, if supported
- check_cxx_compiler_flag(-fPIC COMPILER_SUPPORTS_PIC)
if (COMPILER_SUPPORTS_PIC)
set(CXX_BACK ${CMAKE_CXX_FLAGS})
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-fPIC")
@@ -99,3 +101,23 @@ if (SHADERC_ENABLE_SPVC)
endif()
endif()
endif (SHADERC_ENABLE_SPVC)
+
+if (SHADERC_ENABLE_WGSL_OUTPUT)
+ # Use Google Tint for WGSL output.
+ if (NOT TARGET libtint)
+ if (IS_DIRECTORY ${SHADERC_TINT_DIR})
+ if (NOT IS_DIRECTORY ${SHADERC_TINT_DIR}/out/docs)
+ # The Tint Doxygen configuration assumes it can write to the out/docs
+ # source directory.
+ message(STATUS "Tint source directory out/docs does not exist. Disabling doc generation")
+ set(TINT_BUILD_DOCS OFF)
+ endif()
+ set(TINT_BUILD_SPV_READER ON CACHE BOOL "Built Tint SPIR-V reader" FORCE)
+ set(TINT_BUILD_WGSL_WRITER ON CACHE BOOL "Build Tint WGSL writer" FORCE)
+ add_subdirectory(${SHADERC_TINT_DIR} tint)
+ endif()
+ endif()
+ if (NOT TARGET libtint)
+ message(FATAL_ERROR "Tint was not found - required for WGSL output")
+ endif()
+endif (SHADERC_ENABLE_WGSL_OUTPUT)
diff --git a/chromium/third_party/shaderc/src/utils/roll-deps b/chromium/third_party/shaderc/src/utils/roll-deps
index 15942a0fc12..fa05c6204c9 100755
--- a/chromium/third_party/shaderc/src/utils/roll-deps
+++ b/chromium/third_party/shaderc/src/utils/roll-deps
@@ -19,7 +19,7 @@
# Depends on roll-dep from depot_path being in PATH.
effcee_dir="third_party/effcee/"
-effcee_trunk="origin/master"
+effcee_trunk="origin/main"
glslang_dir="third_party/glslang/"
glslang_trunk="origin/master"
googletest_dir="third_party/googletest/"