NIR validation failed after glsl to nir, before function inline, wrong {src,dst}->type ?
Debian, Linux, amd64.
AMD Radeon R9 Fury X.
Current Mesa master (commit 9d645a19 ) compiled using gcc 9.3.0 (with -march=native -O1 -ggdb
), and using LLVM 9.0.1 (I can also test with 10.0.0 if needed).
7c89f06f131f35472f999b5c7caf8c8a1b617a3d3570134c53934793c6589d5f.shader_test
SSA form and diagnostics: shader_validation_error.txt
...
...
decl_function webgl_b936f9010854288 (1 params)
impl webgl_b936f9010854288 {
...
...
vec1 32 ssa_588 = deref_var &return_value (function_temp mat3)
vec3 32 ssa_589 = intrinsic load_deref (ssa_588) (0) /* access=0 */
error: glsl_type_is_vector_or_scalar(src->type) || (src->mode == nir_var_uniform && glsl_get_base_type(src->type) == GLSL_TYPE_SUBROUTINE) (../../src/compiler/nir/nir_validate.c:535)
intrinsic store_deref (ssa_587, ssa_589) (7, 0) /* wrmask=xyz */ /* access=0 */
error: glsl_type_is_vector_or_scalar(dst->type) (../../src/compiler/nir/nir_validate.c:550)
return
/* succs: block_4 */
block block_4:
}
decl_function main (0 params)
impl main {
...
vec1 32 ssa_60 = deref_var &mat_ctor@111 (function_temp mat3)
intrinsic copy_deref (ssa_59, ssa_60) (0, 0) /* src-access=0 */ /* dst-access=0 */
vec1 32 ssa_61 = deref_var &return_tmp (function_temp mat3)
call webgl_b936f9010854288 ssa_61
vec3 32 ssa_62 = intrinsic load_deref (ssa_61) (0) /* access=0 */
error: glsl_type_is_vector_or_scalar(src->type) || (src->mode == nir_var_uniform && glsl_get_base_type(src->type) == GLSL_TYPE_SUBROUTINE) (../../src/compiler/nir/nir_validate.c:535)
vec1 32 ssa_63 = deref_var &webgl_b936f9010854288_retval (function_temp mat3)
intrinsic store_deref (ssa_63, ssa_62) (7, 0) /* wrmask=xyz */ /* access=0 */
error: glsl_type_is_vector_or_scalar(dst->type) (../../src/compiler/nir/nir_validate.c:550)
vec1 32 ssa_64 = deref_var &flattening_tmp@117 (function_temp vec3)
vec1 32 ssa_65 = deref_var &const_temp@118 (function_temp int)
...
}
The shader comes from WebGL GLSL shader from https://www.shadertoy.com/view/4tjXRd captured using Firefox 68.8.0esr and Mesa 19.3.3 (in release mode).