When building the 10.6 branch I ran into the Following crash on OpenBSD with glxgears. I didn't see the same with master. My 10.6 has a few additional patches to build on OpenBSD but none in src/mesa/drivers/dri/i965. Starting program: /usr/X11R6/bin/glxgears Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. Program received signal SIGSEGV, Segmentation fault. 0x0000026dba64bd6a in brw::vec4_visitor::run (this=0x7f7ffffc5ca0) at brw_vec4.cpp:1714 1714 sanity_param_count = prog->Parameters->NumParameters; Current language: auto; currently c++ (gdb) bt #0 0x0000026dba64bd6a in brw::vec4_visitor::run (this=0x7f7ffffc5ca0) at brw_vec4.cpp:1714 #1 0x0000026dba64c6f9 in brw_vs_emit (brw=0x26d720ed030, prog=0x26d1285ec30, c=0x7f7ffffc6ca0, prog_data=0x7f7ffffc6bb0, mem_ctx=0x26cf41adb70, final_assembly_size=0x7f7ffffc6d54) at brw_vec4.cpp:1936 #2 0x0000026dba673238 in brw_codegen_vs_prog (brw=0x26d720ed030, prog=0x26d1285ec30, vp=0x26d25b66000, key=Variable "key" is not available. ) at brw_vs.c:293 #3 0x0000026dba6734a3 in brw_vs_precompile (ctx=0x26d720ed030, shader_prog=0x26d1285ec30, prog=0x26d25b66000) at brw_vs.c:529 #4 0x0000026dba640ca7 in brw_link_shader (ctx=0x26d720ed030, shProg=0x26d1285ec30) at brw_shader.cpp:84 #5 0x0000026dba427ee9 in _mesa_glsl_link_shader (ctx=0x26d720ed030, prog=0x26d1285ec30) at program/ir_to_mesa.cpp:2964 #6 0x0000026dba3357aa in link_program (ctx=0x26d720ed030, program=Variable "program" is not available. ) at main/shaderapi.c:946 #7 0x0000026dba425338 in meta_clear (ctx=0x26d720ed030, buffers=18, glsl=true) at drivers/common/meta.c:1546 #8 0x0000026dba57d809 in brw_clear (ctx=0x26d720ed030, mask=0) at brw_clear.c:263 #9 0x0000026aeab0302e in __register_frame_info () from /usr/X11R6/bin/glxgears #10 0x0000026aeab03c6d in __register_frame_info () from /usr/X11R6/bin/glxgears #11 0x0000026aeab01e31 in ?? () from /usr/X11R6/bin/glxgears #12 0x0000000000000000 in ?? () (gdb) p prog $1 = (gl_program * const) 0x0 Extended renderer info (GLX_MESA_query_renderer): Vendor: Intel Open Source Technology Center (0x8086) Device: Mesa DRI Intel(R) Ironlake Mobile (0x46) Version: 10.6.2 Accelerated: yes Video memory: 192MB Unified memory: yes Preferred profile: compat (0x2) Max core profile version: 0.0 Max compat profile version: 2.1 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 2.0 OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile OpenGL version string: 2.1 Mesa 10.6.2 (git-e7f2411) OpenGL shading language version string: 1.20
The same crash occurs on the 10.5 branch, the 10.4 branch doesn't have the problem. (gdb) run Starting program: /usr/X11R6/bin/glxgears Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. Program received signal SIGSEGV, Segmentation fault. 0x00001bc0f409ac9a in brw::vec4_visitor::run (this=0x7f7ffffe7790) at brw_vec4.cpp:1729 warning: Source file is more recent than executable. 1729 Current language: auto; currently c++ (gdb) bt #0 0x00001bc0f409ac9a in brw::vec4_visitor::run (this=0x7f7ffffe7790) at brw_vec4.cpp:1729 #1 0x00001bc0f409b4ba in brw_vs_emit (brw=0x1bc136746030, prog=0x1bc141553e30, c=0x7f7ffffe8770, prog_data=0x7f7ffffe8680, mem_ctx=0x1bc150dea6b0, final_assembly_size=0x7f7ffffe8824) at brw_vec4.cpp:1933 #2 0x00001bc0f40c10f0 in do_vs_prog (brw=0x1bc136746030, prog=0x1bc141553e30, vp=0x1bc0c254f800, key=Variable "key" is not available. ) at brw_vs.c:291 #3 0x00001bc0f40c1353 in brw_vs_precompile (ctx=0x1bc136746030, shader_prog=0x1bc141553e30, prog=0x1bc0c254f800) at brw_vs.c:514 #4 0x00001bc0f4091912 in brw_link_shader (ctx=0x1bc136746030, shProg=0x1bc141553e30) at brw_shader.cpp:71 #5 0x00001bc0f3eabed9 in _mesa_glsl_link_shader (ctx=0x1bc136746030, prog=0x1bc141553e30) at program/ir_to_mesa.cpp:3035 #6 0x00001bc0f3dc358a in link_program (ctx=0x1bc136746030, program=Variable "program" is not available. ) at main/shaderapi.c:932 #7 0x00001bc0f3ea9268 in meta_clear (ctx=0x1bc136746030, buffers=18, glsl=true) at drivers/common/meta.c:1542 #8 0x00001bc0f3fde9d9 in brw_clear (ctx=0x1bc136746030, mask=0) at brw_clear.c:263 #9 0x00001bbe5610302e in __register_frame_info () from /usr/X11R6/bin/glxgears #10 0x00001bbe56103c6d in __register_frame_info () from /usr/X11R6/bin/glxgears #11 0x00001bbe56101e31 in ?? () from /usr/X11R6/bin/glxgears #12 0x0000000000000000 in ?? () (gdb) p prog $1 = (gl_program * const) 0x0
While the 10.6 branch still segfaults it seems the 11.0 branch and master do not. I don't see anything that is obviously marked as a fix in the brw_vec4.cpp commit logs.
This problem occurred due to differences in enum attribute handling between gcc and g++. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39219 Fixed in the version of gcc in OpenBSD base back in October http://marc.info/?l=openbsd-cvs&m=144421363218215&w=2
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.