Okay, I guess we must be talking past each other somehow,
Possibly, yes.
because that looks to me like it *is* putting that logic in the parser? It just decides the minimum == maximum for a run and feeds that through the runners.
Perhaps in a sense; I think conceptually it's somewhat different though. The idea here is to repeat/duplicate part of a test with different requirements/options; in principle there's no reason this needs to be limited to shader models and couldn't be extended to do something like this: ``` [pixel shader] ...
[test] uniform 0 ... ... foreach (row-major column-major) draw quad (row-major) probe all rgba (0.5, 0.9, 0.6, 1.0) 1 (column-major) probe all rgba (0.2, 0.3, 0.6, 0.7) 1 done ```
The main practical difference is that the individual shader runners are responsible for invoking the parser with a particular configuration or set of capabilities, as opposed to the parser invoking the runners multiple times for entire .shader_test files.