run-cts: add "-fxc" to force running with FXC

Just adds a convenient shortcut, as DXC is now the default compiler.

Change-Id: Ia3b01d686e9ba7b22f070409e502015a955039ab
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/174920
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
diff --git a/tools/src/cmd/run-cts/node/cmd.go b/tools/src/cmd/run-cts/node/cmd.go
index 6611a2f..c315a3b 100644
--- a/tools/src/cmd/run-cts/node/cmd.go
+++ b/tools/src/cmd/run-cts/node/cmd.go
@@ -103,6 +103,7 @@
 	build                bool
 	validate             bool
 	dumpShaders          bool
+	fxc                  bool
 	unrollConstEvalLoops bool
 	genCoverage          bool
 	compatibilityMode    bool
@@ -148,6 +149,7 @@
 		" set to 'vulkan' if VK_ICD_FILENAMES environment variable is set, 'default' otherwise")
 	flag.StringVar(&c.flags.adapterName, "adapter", "", "name (or substring) of the GPU adapter to use")
 	flag.BoolVar(&c.flags.dumpShaders, "dump-shaders", false, "dump WGSL shaders. Enables --verbose")
+	flag.BoolVar(&c.flags.fxc, "fxc", false, "Use FXC instead of DXC. Disables 'use_dxc' Dawn flag")
 	flag.BoolVar(&c.flags.unrollConstEvalLoops, "unroll-const-eval-loops", unrollConstEvalLoopsDefault, "unroll loops in const-eval tests")
 	flag.BoolVar(&c.flags.genCoverage, "coverage", false, "displays coverage data")
 	flag.StringVar(&c.flags.coverageFile, "export-coverage", "", "write coverage data to the given path")
@@ -259,6 +261,9 @@
 		c.flags.Verbose = true
 		c.flags.dawn.Set("enable-dawn-features=dump_shaders,disable_symbol_renaming")
 	}
+	if c.flags.fxc {
+		c.flags.dawn.Set("disable-dawn-features=use_dxc")
+	}
 	c.flags.dawn.GlobListFlags("enable-dawn-features=", ",")
 
 	state, err := c.flags.Process()