run-cts: --dump-shaders runs symbol-renaming

Change the behaviour of --dump-shaders so it's more like the actual
flow.  The symbol renaming pass is executed, just like the production
flow.

Adds --dump-shaders-pretty which is the old behaviour of --dump-shaders
However, it can (incorrectly) fail tests when the test shadows
predeclared builtins.

Fixed: crbug.com/353357872
Change-Id: Iec85add44ce3ecd74ea4d9bbd99c91677dc61595
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/198562
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Auto-Submit: David Neto <dneto@google.com>
diff --git a/tools/src/cmd/node/main.go b/tools/src/cmd/node/main.go
index d2dbf54..7fdd3bf 100644
--- a/tools/src/cmd/node/main.go
+++ b/tools/src/cmd/node/main.go
@@ -65,6 +65,7 @@
 	flag.StringVar(&opts.Adapter, "adapter", "", "name (or substring) of the GPU adapter to use")
 	flag.BoolVar(&opts.Validate, "validate", false, "enable backend validation")
 	flag.BoolVar(&opts.DumpShaders, "dump-shaders", false, "dump WGSL shaders. Enables --verbose")
+	flag.BoolVar(&opts.DumpShadersPretty, "dump-shaders-pretty", false, "dump WGSL shaders, but don't run symbol renaming. May fail tests that shadow predeclared builtins. Enables --verbose")
 	flag.BoolVar(&opts.UseFXC, "fxc", false, "Use FXC instead of DXC. Disables 'use_dxc' Dawn flag")
 	flag.BoolVar(&lldb, "lldb", false, "launch node via lldb")
 	flag.Parse()
diff --git a/tools/src/cmd/run-cts/node/cmd.go b/tools/src/cmd/run-cts/node/cmd.go
index fd08484..d1865c3 100644
--- a/tools/src/cmd/run-cts/node/cmd.go
+++ b/tools/src/cmd/run-cts/node/cmd.go
@@ -53,6 +53,7 @@
 	build                bool
 	validate             bool
 	dumpShaders          bool
+	dumpShadersPretty    bool
 	fxc                  bool
 	useIR                bool
 	unrollConstEvalLoops bool
@@ -101,6 +102,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.dumpShadersPretty, "dump-shaders-pretty", false, "dump WGSL shaders, but don't run symbol renaming. May fail tests that shadow predeclared builtins. Enables --verbose")
 	flag.BoolVar(&c.flags.fxc, "fxc", false, "Use FXC instead of DXC. Disables 'use_dxc' Dawn flag")
 	flag.BoolVar(&c.flags.useIR, "use-ir", false, "Use Tint's IR generator code path")
 	flag.BoolVar(&c.flags.unrollConstEvalLoops, "unroll-const-eval-loops", unrollConstEvalLoopsDefault, "unroll loops in const-eval tests")
@@ -198,19 +200,23 @@
 	}
 
 	c.flags.dawn.SetOptions(node.Options{
-		BinDir:          c.flags.bin,
-		Backend:         c.flags.backend,
-		Adapter:         c.flags.adapterName,
-		Validate:        c.flags.validate,
-		AllowUnsafeAPIs: true,
-		DumpShaders:     c.flags.dumpShaders,
-		UseFXC:          c.flags.fxc,
-		UseIR:           c.flags.useIR,
+		BinDir:            c.flags.bin,
+		Backend:           c.flags.backend,
+		Adapter:           c.flags.adapterName,
+		Validate:          c.flags.validate,
+		AllowUnsafeAPIs:   true,
+		DumpShaders:       c.flags.dumpShaders,
+		DumpShadersPretty: c.flags.dumpShadersPretty,
+		UseFXC:            c.flags.fxc,
+		UseIR:             c.flags.useIR,
 	})
 
 	if c.flags.dumpShaders {
 		c.flags.Verbose = true
 	}
+	if c.flags.dumpShadersPretty {
+		c.flags.Verbose = true
+	}
 
 	state, err := c.flags.Process()
 	if err != nil {
diff --git a/tools/src/dawn/node/node.go b/tools/src/dawn/node/node.go
index b6ab345..d82eb40 100644
--- a/tools/src/dawn/node/node.go
+++ b/tools/src/dawn/node/node.go
@@ -75,14 +75,15 @@
 
 // Options that can be passed to Flags.SetOptions
 type Options struct {
-	BinDir          string
-	Backend         string
-	Adapter         string
-	Validate        bool
-	AllowUnsafeAPIs bool
-	DumpShaders     bool
-	UseFXC          bool
-	UseIR           bool
+	BinDir            string
+	Backend           string
+	Adapter           string
+	Validate          bool
+	AllowUnsafeAPIs   bool
+	DumpShaders       bool
+	DumpShadersPretty bool
+	UseFXC            bool
+	UseIR             bool
 }
 
 func (f *Flags) SetOptions(opts Options) error {
@@ -105,6 +106,9 @@
 		f.Set("enable-dawn-features=allow_unsafe_apis")
 	}
 	if opts.DumpShaders {
+		f.Set("enable-dawn-features=dump_shaders")
+	}
+	if opts.DumpShadersPretty {
 		f.Set("enable-dawn-features=dump_shaders,disable_symbol_renaming")
 	}
 	if opts.UseFXC {