Depending on the platform, we either directly assign the expression evaluation to the output buffer, or go via a const array. The latter caused compilation failures as it would force a concretization of the abstract values in the array, which would become incompatible with the output type.
To force the harness to avoid the array, add a new optional ConstEvaluationMode flag to force the evaluation mode used.
Also replace the growing list of ShaderBuilder parameters with a structure, so that fewer places need to be updated for this sort of change in the future.
Issue: #3657
Requirements for PR author:
[x] All missing test coverage is tracked with "TODO" or .unimplemented().
[x] New helpers are /** documented */ and new helper files are found in helper_index.txt.
[x] Test behaves as expected in a WebGPU implementation. (If not passing, explain above.)
[x] Test have be tested with compatibility mode validation enabled and behave as expected. (If not passing, explain above.)
Depending on the platform, we either directly assign the expression evaluation to the output buffer, or go via a const array. The latter caused compilation failures as it would force a concretization of the abstract values in the array, which would become incompatible with the output type.
To force the harness to avoid the array, add a new optional
ConstEvaluationMode
flag to force the evaluation mode used.Also replace the growing list of
ShaderBuilder
parameters with a structure, so that fewer places need to be updated for this sort of change in the future.Issue: #3657
Requirements for PR author:
.unimplemented()
./** documented */
and new helper files are found inhelper_index.txt
.Requirements for reviewer sign-off:
When landing this PR, be sure to make any necessary issue status updates.