Crash in d3d12_compiler.cpp: compile_nir()
We're experiencing crashes in MSYS2 CLang64 environments when Mesa 23.0.1 is installed. Here's a stacktrace with debug symbols:
Thread 1 received signal SIGSEGV, Segmentation fault.
0x00007ffe8b6f1e19 in dxil_get_validator_version (val=0x0) at ../../src/microsoft/compiler/dxil_validator.cpp:357
357 return val->version;
(gdb) bt
#0 0x00007ffe8b6f1e19 in dxil_get_validator_version (val=0x0) at ../../src/microsoft/compiler/dxil_validator.cpp:357
#1 0x00007ffe8b6fb105 in compile_nir (ctx=0x34c30060, sel=0x35682e50, key=0x149938, nir=0x35587040) at ../../src/gallium/drivers/d3d12/d3d12_compiler.cpp:155
#2 0x00007ffe8b6f68e5 in select_shader_variant (sel_ctx=0x14dbf0, sel=0x35682e50, prev=0x0, next=0x0) at ../../src/gallium/drivers/d3d12/d3d12_compiler.cpp:1232
#3 0x00007ffe8b6f396d in d3d12_create_shader_impl (ctx=0x34c30060, sel=0x35682e50, nir=0xa2223a0, prev=0x0, next=0x0) at ../../src/gallium/drivers/d3d12/d3d12_compiler.cpp:1392
#4 0x00007ffe8b6f310e in d3d12_create_shader (ctx=0x34c30060, stage=MESA_SHADER_VERTEX, shader=0x14e1e0) at ../../src/gallium/drivers/d3d12/d3d12_compiler.cpp:1447
#5 0x00007ffe8b348147 in d3d12_create_vs_state (pctx=0x34c30060, shader=0x14e1e0) at ../../src/gallium/drivers/d3d12/d3d12_context.cpp:1093
#6 0x00007ffe8ac8c90c in tc_create_vs_state (_pipe=0x34fe9510, state=0x14e1e0) at ../../src/gallium/auxiliary/util/u_threaded_context.c:1296
#7 0x00007ffe8ab2bff5 in st_create_nir_shader (st=0x350acdf0, state=0x14e1e0) at ../../src/mesa/state_tracker/st_program.c:537
#8 0x00007ffe8ab2cff8 in st_create_common_variant (st=0x350acdf0, prog=0x34b6c110, key=0x14e4b8) at ../../src/mesa/state_tracker/st_program.c:756
#9 0x00007ffe8ab2c4f8 in st_get_common_variant (st=0x350acdf0, prog=0x34b6c110, key=0x14e4b8) at ../../src/mesa/state_tracker/st_program.c:809
#10 0x00007ffe8ab2f606 in st_precompile_shader_variant (st=0x350acdf0, prog=0x34b6c110) at ../../src/mesa/state_tracker/st_program.c:1275
#11 0x00007ffe8ab2f464 in st_finalize_program (st=0x350acdf0, prog=0x34b6c110) at ../../src/mesa/state_tracker/st_program.c:1352
#12 0x00007ffe8aff9980 in st_link_nir (ctx=0x3501e740, shader_program=0xa20ced0) at ../../src/mesa/state_tracker/st_glsl_to_nir.cpp:940
#13 0x00007ffe8b45ecfb in link_shader (ctx=0x3501e740, prog=0xa20ced0) at ../../src/mesa/state_tracker/st_glsl_to_ir.cpp:97
#14 0x00007ffe8b45e865 in st_link_shader (ctx=0x3501e740, prog=0xa20ced0) at ../../src/mesa/state_tracker/st_glsl_to_ir.cpp:112
#15 0x00007ffe8adfda39 in _mesa_glsl_link_shader (ctx=0x3501e740, prog=0xa20ced0) at ../../src/mesa/program/link_program.cpp:91
#16 0x00007ffe8aa5fc90 in link_program (ctx=0x3501e740, shProg=0xa20ced0, no_error=false) at ../../src/mesa/main/shaderapi.c:1332
#17 link_program_error (ctx=0x3501e740, shProg=0xa20ced0) at ../../src/mesa/main/shaderapi.c:1443
#18 0x00007ffe8aa633e6 in _mesa_LinkProgram (programObj=3) at ../../src/mesa/main/shaderapi.c:1929
#19 0x00007ffe8a648031 in glLinkProgram (program=3) at src/mapi/glapi/gen/glapitemp.h:4387
#20 0x00007ffed2acf2ef in gsk_gl_compiler_compile () from D:\msys64\clang64\bin\libgtk-4-1.dll
#21 0x00007ffed2ad27d6 in gsk_gl_driver_create_gdk_texture () from D:\msys64\clang64\bin\libgtk-4-1.dll
#22 0x00007ffed2acfae9 in gsk_gl_driver_for_display () from D:\msys64\clang64\bin\libgtk-4-1.dll
#23 0x00007ffed2ac8ea8 in gsk_ngl_renderer_new () from D:\msys64\clang64\bin\libgtk-4-1.dll
#24 0x00007ffed2aafff5 in gsk_renderer_realize () from D:\msys64\clang64\bin\libgtk-4-1.dll
#25 0x00007ffed2ab066d in gsk_renderer_new_for_surface () from D:\msys64\clang64\bin\libgtk-4-1.dll
#26 0x00007ffed290fc9e in gtk_window_get_handle_menubar_accel () from D:\msys64\clang64\bin\libgtk-4-1.dll
#27 0x00007ffed272d10b in gtk_application_window_get_help_overlay () from D:\msys64\clang64\bin\libgtk-4-1.dll
#28 0x00007ffee5ed99d3 in _g_closure_is_void () from D:\msys64\clang64\bin\libgobject-2.0-0.dll
#29 0x00007ffee5ed932c in g_closure_invoke () from D:\msys64\clang64\bin\libgobject-2.0-0.dll
#30 0x00007ffee5ef111a in g_signal_emitv () from D:\msys64\clang64\bin\libgobject-2.0-0.dll
#31 0x00007ffee5ef234d in g_signal_emit_valist () from D:\msys64\clang64\bin\libgobject-2.0-0.dll
#32 0x00007ffee5ef27fb in g_signal_emit () from D:\msys64\clang64\bin\libgobject-2.0-0.dll
#33 0x00007ffed28f576b in gtk_widget_realize () from D:\msys64\clang64\bin\libgtk-4-1.dll
#34 0x00007ffed290f7f5 in gtk_window_get_handle_menubar_accel () from D:\msys64\clang64\bin\libgtk-4-1.dll
#35 0x00007ffee5ed9d41 in g_signal_type_cclosure_new () from D:\msys64\clang64\bin\libgobject-2.0-0.dll
#36 0x00007ffee5ed959c in _g_closure_invoke_va () from D:\msys64\clang64\bin\libgobject-2.0-0.dll
#37 0x00007ffee5ef1e6f in g_signal_emit_valist () from D:\msys64\clang64\bin\libgobject-2.0-0.dll
#38 0x00007ffee5ef27fb in g_signal_emit () from D:\msys64\clang64\bin\libgobject-2.0-0.dll
#39 0x00007ffed28f519f in gtk_widget_show () from D:\msys64\clang64\bin\libgtk-4-1.dll
#40 0x00007ffed290976b in gtk_window_present_with_time () from D:\msys64\clang64\bin\libgtk-4-1.dll
#41 0x00007ff68e840208 in main ()
(gdb)
This is the line that passes the NULL pointer:
#ifdef _WIN32
opts.validator_version_max = dxil_get_validator_version(ctx->dxil_validator);
#endif
Build definitions for MESA: https://github.com/msys2/MINGW-packages/tree/0dab6cf5f8/mingw-w64-mesa
Edited by Luca Bacci