Use Jamie's 7-layer burrito of Vulkan DEPS.

This allows us to roll all Vulkan- and SPIRV-related dependencies
simultaneously (which are often inter-dependent).

This change also implicitly rolls the dependencies to the revs in ANGLE.

Change-Id: I50a1e5b2ef706ffbfbc22f5783321820bb50ae96
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/36500
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/.gitignore b/.gitignore
index b0f60f1..3d6003b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,12 +7,10 @@
 build
 buildtools
 testing
-third_party/SPIRV-Tools/
 third_party/binutils/
 third_party/clang-format/
 third_party/glfw/
 third_party/glm/
-third_party/glslang/
 third_party/googletest/
 third_party/jinja2/
 third_party/jsoncpp/
@@ -20,12 +18,8 @@
 third_party/markupsafe/
 third_party/shaderc/
 third_party/swiftshader/
-third_party/spirv-cross/
-third_party/spirv-headers/
 third_party/tint/
-third_party/vulkan-headers/
-third_party/vulkan-loader/
-third_party/vulkan-validation-layers/
+third_party/vulkan-deps/
 tools
 out
 
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ba0909d..fd35c32 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -79,12 +79,12 @@
 
 set(DAWN_GLFW_DIR "${DAWN_THIRD_PARTY_DIR}/glfw" CACHE STRING "Directory in which to find GLFW")
 set(DAWN_GLM_DIR "${DAWN_THIRD_PARTY_DIR}/glm" CACHE STRING "Directory in which to find GLM")
-set(DAWN_GLSLANG_DIR "${DAWN_THIRD_PARTY_DIR}/glslang" CACHE STRING "Directory in which to find GLSLang")
+set(DAWN_GLSLANG_DIR "${DAWN_THIRD_PARTY_DIR}/vulkan-deps/glslang/src" CACHE STRING "Directory in which to find GLSLang")
 set(DAWN_JINJA2_DIR "${DAWN_THIRD_PARTY_DIR}/jinja2" CACHE STRING "Directory in which to find Jinja2")
 set(DAWN_SHADERC_DIR "${DAWN_THIRD_PARTY_DIR}/shaderc" CACHE STRING "Directory in which to find shaderc")
-set(DAWN_SPIRV_CROSS_DIR "${DAWN_THIRD_PARTY_DIR}/spirv-cross" CACHE STRING "Directory in which to find SPIRV-Cross")
-set(DAWN_SPIRV_HEADERS_DIR "${DAWN_THIRD_PARTY_DIR}/spirv-headers" CACHE STRING "Directory in which to find SPIRV-Headers")
-set(DAWN_SPIRV_TOOLS_DIR "${DAWN_THIRD_PARTY_DIR}/SPIRV-Tools" CACHE STRING "Directory in which to find SPIRV-Tools")
+set(DAWN_SPIRV_CROSS_DIR "${DAWN_THIRD_PARTY_DIR}/vulkan_deps/spirv-cross/src" CACHE STRING "Directory in which to find SPIRV-Cross")
+set(DAWN_SPIRV_HEADERS_DIR "${DAWN_THIRD_PARTY_DIR}/vulkan-deps/spirv-headers/src" CACHE STRING "Directory in which to find SPIRV-Headers")
+set(DAWN_SPIRV_TOOLS_DIR "${DAWN_THIRD_PARTY_DIR}/vulkan-deps/spirv-tools/src" CACHE STRING "Directory in which to find SPIRV-Tools")
 set(DAWN_TINT_DIR "${DAWN_THIRD_PARTY_DIR}/tint" CACHE STRING "Directory in which to find Tint")
 
 ################################################################################
diff --git a/DEPS b/DEPS
index ee53a38..73986f1 100644
--- a/DEPS
+++ b/DEPS
@@ -56,25 +56,7 @@
     'condition': 'dawn_standalone',
   },
 
-  # SPIRV-Cross
-  'third_party/spirv-cross': {
-    'url': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Cross@be527632a6c80291ab012a79758e0e41224ad5e2',
-    'condition': 'dawn_standalone',
-  },
-
-  # SPIRV compiler dependencies: SPIRV-Tools, SPIRV-headers, glslang and shaderc
-  'third_party/SPIRV-Tools': {
-    'url': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Tools@671914c28e8249f0a555726a0f3f38691fe5c1df',
-    'condition': 'dawn_standalone',
-  },
-  'third_party/spirv-headers': {
-    'url': '{chromium_git}/external/github.com/KhronosGroup/SPIRV-Headers@5ab5c96198f30804a6a29961b8905f292a8ae600',
-    'condition': 'dawn_standalone',
-  },
-  'third_party/glslang': {
-    'url': '{chromium_git}/external/github.com/KhronosGroup/glslang@4d41da3b810bc11c1c8a954e516638e437360a67',
-    'condition': 'dawn_standalone',
-  },
+  # SPIRV compiler dependencies: shaderc
   'third_party/shaderc': {
     'url': '{chromium_git}/external/github.com/google/shaderc@6216d098d8abe3ccda8781016c4f69372c48afb9',
     'condition': 'dawn_standalone',
@@ -98,25 +80,15 @@
     'condition': 'dawn_standalone',
   },
 
-  # Khronos Vulkan headers, validation layers and loader.
-  'third_party/vulkan-headers': {
-    'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Headers@30e70cbd9850560cb55bffadb8017e90c04c42f5',
-    'condition': 'dawn_standalone',
-  },
-  'third_party/vulkan-validation-layers': {
-    'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-ValidationLayers@8756b1cb930a6a6125dc070b01e4fce5dc6f352a',
-    'condition': 'dawn_standalone',
-  },
-  'third_party/vulkan-loader': {
-    'url': '{chromium_git}/external/github.com/KhronosGroup/Vulkan-Loader@d846ea5a2427eb0119cf98288aa337eced10edbd',
-    'condition': 'dawn_standalone',
-  },
-
   'third_party/swiftshader': {
     'url': '{swiftshader_git}/SwiftShader@df17a76102dfabb3f1bd6e51449cece9f77b45e3',
     'condition': 'dawn_standalone',
   },
 
+  'third_party/vulkan-deps': {
+    'url': '{chromium_git}/vulkan-deps@b08eace32e9cb8dd7dce9866f051558ac57acb15',
+    'condition': 'dawn_standalone',
+  },
 }
 
 hooks = [
@@ -216,4 +188,5 @@
 recursedeps = [
   # buildtools provides clang_format, libc++, and libc++abi
   'buildtools',
+  'third_party/vulkan-deps',
 ]
diff --git a/build_overrides/dawn.gni b/build_overrides/dawn.gni
index d84165f..3b913dd 100644
--- a/build_overrides/dawn.gni
+++ b/build_overrides/dawn.gni
@@ -32,9 +32,10 @@
 dawn_glm_dir = "//third_party/glm"
 dawn_googletest_dir = "//third_party/googletest"
 dawn_shaderc_dir = "//third_party/shaderc"
-dawn_spirv_tools_dir = "//third_party/SPIRV-Tools"
-dawn_spirv_cross_dir = "//third_party/spirv-cross"
+dawn_spirv_tools_dir = "//third_party/vulkan-deps/spirv-tools/src"
+dawn_spirv_cross_dir = "//third_party/vulkan-deps/spirv-cross/src"
 dawn_swiftshader_dir = "//third_party/swiftshader"
 dawn_tint_dir = "//third_party/tint"
-dawn_vulkan_loader_dir = "//third_party/vulkan-loader"
-dawn_vulkan_validation_layers_dir = "//third_party/vulkan-validation-layers"
+dawn_vulkan_loader_dir = "//third_party/vulkan-deps/vulkan-loader/src"
+dawn_vulkan_validation_layers_dir =
+    "//third_party/vulkan-deps/vulkan-validation-layers/src"
diff --git a/build_overrides/glslang.gni b/build_overrides/glslang.gni
index c1b60e0..69d968d 100644
--- a/build_overrides/glslang.gni
+++ b/build_overrides/glslang.gni
@@ -12,4 +12,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-glslang_spirv_tools_dir = "//third_party/SPIRV-Tools"
+glslang_spirv_tools_dir = "//third_party/vulkan-deps/spirv-tools/src"
diff --git a/build_overrides/shaderc.gni b/build_overrides/shaderc.gni
index 3aecd21..fb0f62b 100644
--- a/build_overrides/shaderc.gni
+++ b/build_overrides/shaderc.gni
@@ -12,6 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-shaderc_glslang_dir = "//third_party/glslang"
-shaderc_spirv_tools_dir = "//third_party/SPIRV-Tools"
-shaderc_spirv_headers_dir = "//third_party/spirv-headers"
+shaderc_glslang_dir = "//third_party/vulkan-deps/glslang/src"
+shaderc_spirv_tools_dir = "//third_party/vulkan-deps/spirv-tools/src"
+shaderc_spirv_headers_dir = "//third_party/vulkan-deps/spirv-headers/src"
diff --git a/build_overrides/spirv_tools.gni b/build_overrides/spirv_tools.gni
index 7e4559f..48e7b11 100644
--- a/build_overrides/spirv_tools.gni
+++ b/build_overrides/spirv_tools.gni
@@ -17,4 +17,4 @@
 
 # Paths to SPIRV-Tools dependencies in Dawn
 spirv_tools_googletest_dir = "//third_party/googletest"
-spirv_tools_spirv_headers_dir = "//third_party/spirv-headers"
+spirv_tools_spirv_headers_dir = "//third_party/vulkan-deps/spirv-headers/src"
diff --git a/build_overrides/swiftshader.gni b/build_overrides/swiftshader.gni
index 4153f72..1674d48 100644
--- a/build_overrides/swiftshader.gni
+++ b/build_overrides/swiftshader.gni
@@ -19,4 +19,4 @@
 swiftshader_dir = "//third_party/swiftshader"
 
 # Paths to SwiftShader dependencies in Dawn
-swiftshader_spirv_tools_dir = "//third_party/SPIRV-Tools"
+swiftshader_spirv_tools_dir = "//third_party/vulkan-deps/spirv-tools/src"
diff --git a/build_overrides/tint.gni b/build_overrides/tint.gni
index 9fe29de..24ca75c 100644
--- a/build_overrides/tint.gni
+++ b/build_overrides/tint.gni
@@ -13,9 +13,9 @@
 # limitations under the License.
 
 tint_root_dir = "//third_party/tint"
-tint_spirv_tools_dir = "//third_party/SPIRV-Tools"
+tint_spirv_tools_dir = "//third_party/vulkan-deps/spirv-tools/src"
 tint_googletest_dir = "//third_party/googletest"
-tint_spirv_headers_dir = "//third_party/spirv-headers"
+tint_spirv_headers_dir = "//third_party/vulkan-deps/spirv-headers/src"
 
 tint_build_spv_reader = true
 tint_build_spv_writer = true
diff --git a/build_overrides/vulkan_loader.gni b/build_overrides/vulkan_loader.gni
index c38074f..7185dea 100644
--- a/build_overrides/vulkan_loader.gni
+++ b/build_overrides/vulkan_loader.gni
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-vulkan_headers_dir = "//third_party/vulkan-headers"
+vulkan_headers_dir = "//third_party/vulkan-deps/vulkan-headers/src"
 
 vulkan_gen_subdir = "vulkan_loader"
 vulkan_loader_shared = true
diff --git a/build_overrides/vulkan_validation_layers.gni b/build_overrides/vulkan_validation_layers.gni
index 491afbc..37193a8 100644
--- a/build_overrides/vulkan_validation_layers.gni
+++ b/build_overrides/vulkan_validation_layers.gni
@@ -15,9 +15,9 @@
 # These are variables that are overridable by projects that include Dawn.
 # The values in this file are the defaults for when we are building from
 # Dawn's repository.
-vulkan_headers_dir = "//third_party/vulkan-headers"
-vvl_spirv_tools_dir = "//third_party/SPIRV-Tools"
-vvl_glslang_dir = "//third_party/glslang"
+vulkan_headers_dir = "//third_party/vulkan-deps/vulkan-headers/src"
+vvl_spirv_tools_dir = "//third_party/vulkan-deps/spirv-tools/src"
+vvl_glslang_dir = "//third_party/vulkan-deps/glslang/src"
 
 # Subdirectories for generated files
 vulkan_data_subdir = "vulkandata"
diff --git a/scripts/dawn_overrides_with_defaults.gni b/scripts/dawn_overrides_with_defaults.gni
index 0517180..9120a79 100644
--- a/scripts/dawn_overrides_with_defaults.gni
+++ b/scripts/dawn_overrides_with_defaults.gni
@@ -54,11 +54,11 @@
 }
 
 if (!defined(dawn_spirv_cross_dir)) {
-  dawn_spirv_cross_dir = "//third_party/spirv-cross"
+  dawn_spirv_cross_dir = "//third_party/vulkan-deps/spirv-cross/src"
 }
 
 if (!defined(dawn_spirv_tools_dir)) {
-  dawn_spirv_tools_dir = "//third_party/SPIRV-Tools"
+  dawn_spirv_tools_dir = "//third_party/vulkan-deps/spirv-tools/src"
 }
 
 if (!defined(dawn_swiftshader_dir)) {