Fix GN dirty checking for SPIR-V test files.

Previously, GN would never reach steady-state when compiling test files
because SPIR-V listed the incorrect extension for its test files
(.spirv). We can now reach steady-state when building more than once.

Change-Id: If9f6bf7a4722c1ca87b682186f0b7ba451311955
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/341976
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 5aacbcc..769cd7d 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -704,10 +704,20 @@
       foreach(src, sources) {
         dir = get_path_info(src, "dir")
         name = get_path_info(src, "name")
+        ext = get_path_info(src, "extension")
         foreach(outputPattern, invoker.outputPatterns) {
-          outputs += [ target_out_dir + "/" + rebase_path(
-                           dir + outputPattern[0] + name + outputPattern[1],
-                           target_out_dir) ]
+          outDirectory = outputPattern[0]
+          outExtension = outputPattern[1]
+
+          # SPIR-V uses separate extensions for .vert and .geom shaders.
+          if (outExtension == ".asm.frag" && ext == "vert") {
+            outExtension = ".asm.vert"
+          } else if (outExtension == ".asm.frag" && ext == "geom") {
+            outExtension = ".asm.geom"
+          }
+          outputs += [ target_out_dir + "/" +
+                       rebase_path(dir + outDirectory + name + outExtension,
+                                   target_out_dir) ]
         }
       }
       args = [
@@ -764,7 +774,7 @@
     sources = sksl_spirv_tests_sources
     outputPatterns = [ [
           "/golden/",
-          ".spirv",
+          ".asm.frag",
         ] ]
     lang = "--spirv"
     settings = "--settings"