summarylogtreecommitdiffstats
path: root/chromium-vulkan-r0.patch
blob: 4553bb766679a5facd6e54a8b760957327136501 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
From 949b4f07fd1ef5b208136fe38327c28c95f18928 Mon Sep 17 00:00:00 2001
From: Jamie Madill <jmadill@chromium.org>
Date: Mon, 08 Jan 2018 11:15:38 -0500
Subject: [PATCH] Vulkan: Allow for no .git directory in build.

The SPIRV-Tools 'external revision generate' script is coded such that
it assumes a .git folder is present. This causes a problem for the
tarball build. We can fix this by using the same tooling we use for
ANGLE's commit id script to check if the .git directory is present
before running the generator. If it is missing, we insert a hard-coded
dummy header. Also use the 'DEPS' file as a placeholder for .git/HEAD
to check if the current revision needs updating.

Bug: chromium:799620
Bug: angleproject:2237
Change-Id: Icea8e9c66f1600df7dca2aaa45fe449f687f5b55
Reviewed-on: https://chromium-review.googlesource.com/854255
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
---

diff --git a/third_party/angle/src/commit_id.py b/third_party/angle/src/commit_id.py
index bbdb810..57651a5 100644
--- a/third_party/angle/src/commit_id.py
+++ b/third_party/angle/src/commit_id.py
@@ -23,6 +23,9 @@
         print("0")
     sys.exit(0)
 
+if len(sys.argv) < 4 or operation != 'gen':
+    sys.exit(usage)
+
 output_file = sys.argv[3]
 commit_id_size = 12
 
diff --git a/third_party/angle/src/vulkan_support/BUILD.gn b/third_party/angle/src/vulkan_support/BUILD.gn
index fe61826..24f5a3a 100644
--- a/third_party/angle/src/vulkan_support/BUILD.gn
+++ b/third_party/angle/src/vulkan_support/BUILD.gn
@@ -145,21 +145,40 @@
   }
 }
 
-# This could be generalized to a foreach if other revisions are added.
-action("spirv_tools_external_revision_generate") {
-  script = "$vulkan_layers_dir/scripts/external_revision_generator.py"
-  inputs = [
-    "$spirv_tools_dir/.git/HEAD",
-    "$spirv_tools_dir/.git/index",
-  ]
-  outputs = [
-    "$vulkan_gen_dir/spirv_tools_commit_id.h",
-  ]
-  args = [
-    "$raw_spirv_tools_dir",
-    "SPIRV_TOOLS_COMMIT_ID",
-    "$raw_vulkan_gen_dir/spirv_tools_commit_id.h",
-  ]
+spirv_git_is_present = exec_script("$angle_root/src/commit_id.py",
+                                   [
+                                     "check",
+                                     raw_spirv_tools_dir,
+                                   ],
+                                   "value")
+
+spirv_use_commit_id = spirv_git_is_present == 1
+
+if (spirv_use_commit_id) {
+  # This could be generalized to a foreach if other revisions are added.
+  action("spirv_tools_external_revision_generate") {
+    script = "$vulkan_layers_dir/scripts/external_revision_generator.py"
+    inputs = [
+      "$angle_root/DEPS",
+    ]
+    outputs = [
+      "$vulkan_gen_dir/spirv_tools_commit_id.h",
+    ]
+    args = [
+      "$raw_spirv_tools_dir",
+      "SPIRV_TOOLS_COMMIT_ID",
+      "$raw_vulkan_gen_dir/spirv_tools_commit_id.h",
+    ]
+  }
+} else {
+  copy("spirv_tools_external_revision_generate") {
+    sources = [
+      "dummy_spirv_tools_commit_id.h",
+    ]
+    outputs = [
+      "$vulkan_gen_dir/spirv_tools_commit_id.h",
+    ]
+  }
 }
 
 config("vulkan_generate_helper_files_config") {
@@ -864,7 +883,7 @@
       sources += [ "$vulkan_layers_dir/layers/VkLayer_$name.def" ]
     }
     if (is_linux) {
-      ldflags =  [ "-Wl,-Bsymbolic,--exclude-libs,ALL" ]
+      ldflags = [ "-Wl,-Bsymbolic,--exclude-libs,ALL" ]
     }
   }
 }
diff --git a/third_party/angle/src/vulkan_support/dummy_spirv_tools_commit_id.h b/third_party/angle/src/vulkan_support/dummy_spirv_tools_commit_id.h
new file mode 100644
index 0000000..e1793bd
--- /dev/null
+++ b/third_party/angle/src/vulkan_support/dummy_spirv_tools_commit_id.h
@@ -0,0 +1,10 @@
+//
+// Copyright 2018 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// This file is a dummy file to enable building SPIRV tools when git is absent.
+
+#pragma once
+
+#define SPIRV_TOOLS_COMMIT_ID "0000000000000000000000000000000000000000"