[tint] Enable IR paths by default in e2e test runner
Remove `--use-ir` and add formats:
`msl-ir, hlsl-ir, hlsl-dxc-ir, hlsl-fxc-ir`
These are all enabled by default. Specifying `hlsl-ir` alone enables
both `hlsl-dxc-ir` and `hlsl-fxc-ir` (analagous to `hlsl`).
Bug: 359884545
Change-Id: Iead6071c7bd942b0b9c32c12f6034c227b0d1c48
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/203636
Reviewed-by: James Price <jrprice@google.com>
diff --git a/tools/src/cmd/tests/main.go b/tools/src/cmd/tests/main.go
index 1f1c4a1..2a9d554 100644
--- a/tools/src/cmd/tests/main.go
+++ b/tools/src/cmd/tests/main.go
@@ -61,16 +61,19 @@
const (
testTimeout = 2 * time.Minute
- glsl = outputFormat("glsl")
- hlslFXC = outputFormat("hlsl-fxc")
- hlslDXC = outputFormat("hlsl-dxc")
- msl = outputFormat("msl")
- spvasm = outputFormat("spvasm")
- wgsl = outputFormat("wgsl")
+ glsl = outputFormat("glsl")
+ hlslFXC = outputFormat("hlsl-fxc")
+ hlslFXCIR = outputFormat("hlsl-fxc-ir")
+ hlslDXC = outputFormat("hlsl-dxc")
+ hlslDXCIR = outputFormat("hlsl-dxc-ir")
+ msl = outputFormat("msl")
+ mslIR = outputFormat("msl-ir")
+ spvasm = outputFormat("spvasm")
+ wgsl = outputFormat("wgsl")
)
// allOutputFormats holds all the supported outputFormats
-var allOutputFormats = []outputFormat{wgsl, spvasm, msl, hlslDXC, hlslFXC, glsl}
+var allOutputFormats = []outputFormat{wgsl, spvasm, msl, mslIR, hlslDXC, hlslDXCIR, hlslFXC, hlslFXCIR, glsl}
// The root directory of the dawn project
var dawnRoot = fileutils.DawnRoot()
@@ -135,15 +138,14 @@
var formatList, ignore, dxcPath, fxcPath, tintPath, xcrunPath string
var maxTableWidth int
numCPU := runtime.NumCPU()
- verbose, useIr, generateExpected, generateSkip := false, false, false, false
- flag.StringVar(&formatList, "format", "all", "comma separated list of formats to emit. Possible values are: all, wgsl, spvasm, msl, hlsl, hlsl-dxc, hlsl-fxc, glsl")
+ verbose, generateExpected, generateSkip := false, false, false
+ flag.StringVar(&formatList, "format", "all", "comma separated list of formats to emit. Possible values are: all, wgsl, spvasm, msl, hlsl, hlsl-dxc, hlsl-fxc, glsl, msl-ir, hlsl-ir, hlsl-dxc-ir, hlsl-fxc-ir")
flag.StringVar(&ignore, "ignore", "**.expected.*", "files to ignore in globs")
flag.StringVar(&dxcPath, "dxcompiler", "", "path to DXC DLL for validating HLSL output")
flag.StringVar(&fxcPath, "fxc", "", "path to FXC DLL for validating HLSL output")
flag.StringVar(&tintPath, "tint", defaultTintPath(), "path to the tint executable")
flag.StringVar(&xcrunPath, "xcrun", "", "path to xcrun executable for validating MSL output")
flag.BoolVar(&verbose, "verbose", false, "print all run tests, including rows that all pass")
- flag.BoolVar(&useIr, "use-ir", false, "generate with the IR enabled")
flag.BoolVar(&generateExpected, "generate-expected", false, "create or update all expected outputs")
flag.BoolVar(&generateSkip, "generate-skip", false, "create or update all expected outputs that fail with SKIP")
flag.IntVar(&numCPU, "j", numCPU, "maximum number of concurrent threads to run tests")
@@ -235,14 +237,6 @@
}
}
- if useIr {
- for _, f := range formats {
- if f != msl && f != hlslDXC && f != hlslFXC && f != glsl {
- return fmt.Errorf("--use-ir is not valid with format '%s'", f)
- }
- }
- }
-
defaultMSLExe := "xcrun"
if runtime.GOOS == "windows" {
defaultMSLExe = "metal.exe"
@@ -327,7 +321,6 @@
dxcPath: dxcPath,
fxcPath: fxcPath,
xcrunPath: xcrunPath,
- useIr: useIr,
generateExpected: generateExpected,
generateSkip: generateSkip,
validationCache: validationCache,
@@ -666,7 +659,6 @@
dxcPath string
fxcPath string
xcrunPath string
- useIr bool
generateExpected bool
generateSkip bool
validationCache validationCache
@@ -681,7 +673,9 @@
// expectedFilePath is the path to the expected output file for the given test
expectedFilePath := j.file + ".expected."
- if cfg.useIr {
+ useIr := j.format == hlslDXCIR || j.format == hlslFXCIR || j.format == mslIR
+
+ if useIr {
expectedFilePath += "ir."
}
@@ -718,7 +712,7 @@
"--print-hash",
}
- if cfg.useIr {
+ if useIr {
args = append(args, "--use-ir")
}
@@ -739,16 +733,19 @@
args = append(args, "--validate") // spirv-val and glslang are statically linked, always available
validate = true
case hlslDXC:
+ case hlslDXCIR:
if cfg.dxcPath != "" {
args = append(args, "--dxc", cfg.dxcPath)
validate = true
}
case hlslFXC:
+ case hlslFXCIR:
if cfg.fxcPath != "" {
args = append(args, "--fxc", cfg.fxcPath)
validate = true
}
case msl:
+ case mslIR:
if cfg.xcrunPath != "" {
args = append(args, "--xcrun", cfg.xcrunPath)
validate = true
@@ -803,7 +800,7 @@
passed := ok && matched
if !passed {
- if j.format == hlslFXC {
+ if j.format == hlslFXC || j.format == hlslFXCIR {
out = reFXCErrorStringHash.ReplaceAllString(out, `<scrubbed_path>${1}`)
}
}
@@ -1026,12 +1023,20 @@
return []outputFormat{spvasm}, nil
case "msl":
return []outputFormat{msl}, nil
+ case "msl-ir":
+ return []outputFormat{mslIR}, nil
case "hlsl":
return []outputFormat{hlslDXC, hlslFXC}, nil
case "hlsl-dxc":
return []outputFormat{hlslDXC}, nil
case "hlsl-fxc":
return []outputFormat{hlslFXC}, nil
+ case "hlsl-ir":
+ return []outputFormat{hlslDXCIR, hlslFXCIR}, nil
+ case "hlsl-dxc-ir":
+ return []outputFormat{hlslDXCIR}, nil
+ case "hlsl-fxc-ir":
+ return []outputFormat{hlslFXCIR}, nil
case "glsl":
return []outputFormat{glsl}, nil
default: