Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MESA: NIR validation failed after nir_opt_if #11

Open
Jack-Clark opened this issue Apr 13, 2022 · 0 comments
Open

MESA: NIR validation failed after nir_opt_if #11

Jack-Clark opened this issue Apr 13, 2022 · 0 comments

Comments

@Jack-Clark
Copy link
Collaborator

When running the amber file in the attached archive, I get the following error:

NIR validation failed after nir_opt_if
3 errors:
shader: MESA_SHADER_COMPUTE
source_sha1: {0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}
workgroup-size: 1, 1, 1
shared-size: 0
inputs: 0
outputs: 0
uniforms: 0
shared: 0
ray queries: 0
decl_var ssbo INTERP_MODE_NONE restrict readonly block @0 (~0, 0, 2)
decl_var ssbo INTERP_MODE_NONE restrict readonly block @1 (~0, 0, 1)
decl_var ssbo INTERP_MODE_NONE restrict writeonly block @2 (~0, 0, 4)
decl_function main (0 params)

impl main {
	decl_var  INTERP_MODE_NONE uint @3
	decl_var  INTERP_MODE_NONE uint @4
	decl_var  INTERP_MODE_NONE uint @5
	decl_var  INTERP_MODE_NONE bool cont
	block block_0:
	/* preds: */
	vec1 32 ssa_64 = load_const (0x00000000 = 0.000000)
	vec1 32 ssa_52 = load_const (0x00000001 = 0.000000)
	vec1 32 ssa_51 = load_const (0x0000000e = 0.000000)
	vec1 32 ssa_38 = load_const (0x0000000f = 0.000000)
	/* succs: block_1 */
	loop {
		block block_1:
		/* preds: block_0 block_6 block_7 */
		vec1 32 ssa_106 = phi block_0: ssa_64, block_6: ssa_106, block_7: ssa_53
		vec1 32 ssa_105 = phi block_0: ssa_64, block_6: ssa_14, block_7: ssa_14
		vec1 32 ssa_104 = phi block_0: ssa_64, block_6: ssa_28, block_7: ssa_28
		vec4 32 ssa_5 = intrinsic vulkan_resource_index (ssa_64) (desc_set=0, binding=1, desc_type=SSBO /*7*/)
		vec4 32 ssa_6 = intrinsic load_vulkan_descriptor (ssa_5) (desc_type=SSBO /*7*/)
		vec4 32 ssa_7 = deref_cast (block *)ssa_6 (ssbo block)  /* ptr_stride=0, align_mul=0, align_offset=0 */
		vec4 32 ssa_8 = deref_struct &ssa_7->field0 (ssbo uint[2]) /* &((block *)ssa_6)->field0 */
		vec4 32 ssa_9 = deref_array &(*ssa_8)[ssa_105] (ssbo uint) /* &((block *)ssa_6)->field0[ssa_105] */
		vec1 32 ssa_10 = intrinsic load_deref (ssa_9) (access=80)
		vec1  1 ssa_12 = ieq ssa_10, ssa_52
		vec1  1 ssa_107 = inot ssa_12
		vec1 32 ssa_14 = iadd ssa_105, ssa_52
		/* succs: block_2 block_3 */
		if ssa_107 {
			block block_2:
			/* preds: block_1 */
			break
			/* succs: block_8 */
		} else {
			block block_3:
			/* preds: block_1 */
			/* succs: block_4 */
		}
		block block_4:
		/* preds: block_3 */
		vec4 32 ssa_19 = intrinsic vulkan_resource_index (ssa_64) (desc_set=0, binding=2, desc_type=SSBO /*7*/)
		vec4 32 ssa_20 = intrinsic load_vulkan_descriptor (ssa_19) (desc_type=SSBO /*7*/)
		vec4 32 ssa_21 = deref_cast (block *)ssa_20 (ssbo block)  /* ptr_stride=0, align_mul=0, align_offset=0 */
		vec4 32 ssa_22 = deref_struct &ssa_21->field0 (ssbo uint[1]) /* &((block *)ssa_20)->field0 */
		vec4 32 ssa_23 = deref_array &(*ssa_22)[ssa_104] (ssbo uint) /* &((block *)ssa_20)->field0[ssa_104] */
		vec1 32 ssa_24 = intrinsic load_deref (ssa_23) (access=80)
		vec1  1 ssa_26 = ieq ssa_24, ssa_52
		vec1 32 ssa_28 = iadd ssa_104, ssa_52
		/* succs: block_5 block_6 */
		if ssa_26 {
			block block_5:
			/* preds: block_4 */
			vec4 32 ssa_33 = intrinsic vulkan_resource_index (ssa_64) (desc_set=0, binding=4, desc_type=SSBO /*7*/)
			vec4 32 ssa_34 = intrinsic load_vulkan_descriptor (ssa_33) (desc_type=SSBO /*7*/)
			vec4 32 ssa_35 = deref_cast (block *)ssa_34 (ssbo block)  /* ptr_stride=0, align_mul=0, align_offset=0 */
			vec4 32 ssa_36 = deref_struct &ssa_35->field0 (ssbo uint[14]) /* &((block *)ssa_34)->field0 */
			vec4 32 ssa_37 = deref_array &(*ssa_36)[ssa_106] (ssbo uint) /* &((block *)ssa_34)->field0[ssa_106] */
			intrinsic store_deref (ssa_37, ssa_38) (wrmask=x /*1*/, access=8)
			vec1 32 ssa_40 = iadd ssa_106, ssa_52
			vec4 32 ssa_46 = intrinsic vulkan_resource_index (ssa_64) (desc_set=0, binding=4, desc_type=SSBO /*7*/)
			vec4 32 ssa_47 = intrinsic load_vulkan_descriptor (ssa_46) (desc_type=SSBO /*7*/)
			vec4 32 ssa_48 = deref_cast (block *)ssa_47 (ssbo block)  /* ptr_stride=0, align_mul=0, align_offset=0 */
			vec4 32 ssa_49 = deref_struct &ssa_48->field0 (ssbo uint[14]) /* &((block *)ssa_47)->field0 */
			vec4 32 ssa_50 = deref_array &(*ssa_49)[ssa_76] (ssbo uint) /* &((block *)ssa_47)->field0[ssa_76] */
error: entry (../src/compiler/nir/nir_validate.c:205)

			intrinsic store_deref (ssa_50, ssa_51) (wrmask=x /*1*/, access=8)
			vec1 32 ssa_53 = iadd ssa_76, ssa_52
error: entry (../src/compiler/nir/nir_validate.c:205)

			/* succs: block_7 */
		} else {
			block block_6:
			/* preds: block_4 */
			continue
			/* succs: block_1 */
		}
		block block_7:
		/* preds: block_5 */
		vec1 32 ssa_76 = phi block_5: ssa_40
		/* succs: block_1 */
	}
	block block_8:
	/* preds: block_2 */
	/* succs: block_9 */
	block block_9:
}

1 additional errors:
error: state->ssa_srcs->entries == 0 (../src/compiler/nir/nir_validate.c:1667)
Aborted (core dumped)

I can reproduce this on branch 21.3 (commit 813ee839be2), 22.0 (commit 4a8d3189fdb) and on main (e11bedb9f5d).

$ glxinfo | grep Mesa
client glx vendor string: Mesa Project and SGI
    Device: Mesa Intel(R) Xe Graphics (TGL GT2) (0x9a49)
OpenGL renderer string: Mesa Intel(R) Xe Graphics (TGL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 22.1.0-devel (git-e11bedb9f5)
OpenGL version string: 4.6 (Compatibility Profile) Mesa 22.1.0-devel (git-e11bedb9f5)
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 22.1.0-devel (git-e11bedb9f5)
@Jack-Clark Jack-Clark added mesa bug Something isn't working fleshing-bug and removed bug Something isn't working labels Apr 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant