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 {