Created attachment 117455 [details] gsraytrace.png Linux 4.1.3 Mesa 10.7.0-devel (git-c73a13e) LLVM version 3.8.0svn Turks XT | [Radeon HD 6670] | (ChipID = 0x6758) With R600_DEBUG=nosb it works, but image corruption (see gsraytrace.png) With R600_DEBUG=nollvm I got this one time: *** Error in `./gsraytrace': corrupted double-linked list: 0x000000000231ce00 *** It worked (with little image corruption) some weeks ago. So it is mostly a regression, sorry not bisected, yet. /home/dieter> ./gsraytrace GL_RENDERER = Gallium 0.4 on AMD TURKS ESC = exit demo left mouse + drag = rotate camera Segmentation fault (core dumped) [ 6997.080787] gsraytrace[6277]: segfault at 218 ip 00007f1ac3df5062 sp 00007fffd07d7980 error 4 in r600_dri.so[7f1ac39e8000+5d3000] Core was generated by `./gsraytrace'. Program terminated with signal SIGSEGV, Segmentation fault. #0 r600_sb::bc_parser::prepare_ir (this=this@entry=0x7ffd0c763950) at sb/sb_bc_parser.cpp:649 649 depart_node *dep = sh->create_depart(loop_stack.top()); Missing separate debuginfos, use: zypper install glibc-debuginfo-2.19-16.15.1.x86_64 libGLEW1_10-debuginfo-1.10.0-2.3.1.x86_64 libelf1-debuginfo-0.158-4.5.1.x86_64 libexpat1-debuginfo-2.1.0-14.1.2.x86_64 libgcc_s1-debuginfo-4.8.3+r212056-2.2.4.x86_64 libglut3-debuginfo-2.8.1-4.2.1.x86_64 libncurses5-debuginfo-5.9-52.2.3.x86_64 libopenssl1_0_0-debuginfo-1.0.1k-2.24.1.x86_64 libstdc++6-debuginfo-4.8.3+r212056-2.2.4.x86_64 libtxc_dxtn-debuginfo-1.0.1-5.1.x86_64 libudev1-debuginfo-210-25.16.1.x86_64 libz1-debuginfo-1.2.8-5.1.2.x86_64 (gdb) list 644 rep->move(c->parent->first, c); 645 c->replace_with(rep); 646 sh->simplify_dep_rep(rep); 647 } else if (c->bc.op == CF_OP_LOOP_BREAK) { 648 assert(!loop_stack.empty()); 649 depart_node *dep = sh->create_depart(loop_stack.top()); 650 if (c->parent->first != c) 651 dep->move(c->parent->first, c); 652 c->replace_with(dep); 653 sh->simplify_dep_rep(dep); (gdb) bt full #0 r600_sb::bc_parser::prepare_ir (this=this@entry=0x7ffd0c763950) at sb/sb_bc_parser.cpp:649 dep = <optimized out> c = 0x11c8a30 flags = 64 I = E = <optimized out> #1 0x00007f853df86389 in r600_sb::bc_parser::prepare (this=this@entry=0x7ffd0c763950) at sb/sb_bc_parser.cpp:107 r = <optimized out> #2 0x00007f853df879a1 in r600_sb_bytecode_process (rctx=rctx@entry=0xb4f680, bc=bc@entry=0x119fcf0, pshader=pshader@entry=0x119fce8, dump_bytecode=dump_bytecode@entry=0, optimize=<optimized out>) at sb/sb_core.cpp:153 shader_id = 15 ctx = <optimized out> time_start = <optimized out> builder = {sh = @0xcdbb60, ctx = @0x110b860, bb = {hw_class_bit = r600_sb::HB_EG, bc = std::vector of length 368, capacity 512 = {<error reading variable>, error = 18395744} r = <optimized out> parser = {ctx = @0x110b860, dec = 0x113db20, bc = 0x119fcf0, pshader = 0x119fce8, dw = 0x11a81e0, bc_ndw = 512, max_cf = 59, sh = 0x11a8e10, error = 0, slots = {{ 0x11c8498, 0x0, 0x0, 0x0, 0x0}, {0x11c7b28, 0x11c7bc0, 0x11c7c58, 0x11c7cf0, 0x0}}, cgroup = 0, cf_map = std::vector of length 61, capacity 64 = {0x11bae38, 0x11bb0e0, 0x11bb2e8, 0x11bb6f8, 0x11bb900, 0x11bbd10, 0x11bbf18, 0x11bc7f8, 0x11bc938, 0x11bcb40, 0x11bd2e0, 0x11bd4e8, 0x11bd958, 0x11bdb60, 0x11bdfd0, 0x11be1d8, 0x11be648, 0x11be788, 0x11be8c8, 0x11bea08, 0x11beb48, 0x11bedf0, 0x11bef30, 0x11bf070, 0x11bf7e8, 0x11bf928, 0x11bfd38, 0x11bff40, 0x11c0518, 0x11c0720, 0x11c09c8, 0x11c0d60, 0x11c1a30, 0x11c1dc8, 0x11c4450, 0x11c4658, 0x11c4ac8, 0x11c4c08, 0x11c4d48, 0x11c4e88, 0x11c4fc8, 0x11c5270, 0x11c53b0, 0x11c54f0, 0x11c5960, 0x11c5b68, 0x11c6508, 0x11c6710, 0x11c7710, 0x11c7918, 0x11c7d88, 0x11c7ec8, 0x11c8008, 0x11c8148, 0x11c8288, 0x11c8530, 0x11c8670, 0x11c87b0, 0x11c88f0, 0x11c8a30, 0x11c8b70}, loop_stack = std::stack wrapping: std::deque with 0 elements, gpr_reladdr = false} #3 0x00007f853df6c6ca in r600_pipe_shader_create (ctx=ctx@entry=0xb4f680, shader=shader@entry=0x119fcd0, key=...) at r600_shader.c:186 rctx = 0xb4f680 sel = 0x11872b0 r = 0 dump = false use_sb = 1 sb_disasm = 1 export_shader = 0 __func__ = "r600_pipe_shader_create" #4 0x00007f853df75c7a in r600_shader_select (ctx=ctx@entry=0xb4f680, sel=0x11872b0, dirty=dirty@entry=0x7ffd0c764618) at r600_state_common.c:763 key = {color_two_side = 0, alpha_to_one = 0, nr_cbufs = 0, vs_as_es = 0, vs_as_gs_a = 0, vs_prim_id_out = 0} shader = 0x119fcd0 r = <optimized out> __func__ = "r600_shader_select" #5 0x00007f853df78b3a in r600_update_derived_state (rctx=0xb4f680) at r600_state_common.c:1189 ctx = 0xb4f680 ps_dirty = true vs_dirty = false need_buf_const = <optimized out> gs_dirty = false blend_disable = <optimized out> #6 r600_draw_vbo (ctx=0xb4f680, dinfo=<optimized out>) at r600_state_common.c:1377 rctx = 0xb4f680 info = {indexed = 0 '\000', mode = 0, start = 0, count = 65536, start_instance = 0, instance_count = 1, vertices_per_patch = <optimized out>, index_bias = 0, min_index = <optimized out>, max_index = <optimized out>, primitive_restart = <optimized out>, restart_index = <optimized out>, count_from_stream_output = <optimized out>, indirect = <optimized out>, indirect_offset = <optimized out>} ib = {index_size = 0, offset = 0, buffer = 0x0, user_buffer = 0x0} i = <optimized out> cs = 0xc47260 #7 0x00007f853ded6877 in u_vbuf_draw_vbo (mgr=0xcbfa30, info=0x7ffd0c7648b0) at util/u_vbuf.c:1159 pipe = 0xb4f680 start_vertex = <optimized out> min_index = <optimized out> num_vertices = <optimized out> unroll_indices = 0 '\000' used_vb_mask = <optimized out> user_vb_mask = 0 incompatible_vb_mask = 0 new_info = {indexed = 128 '\200', mode = 0, start = 18184896, count = 0, start_instance = 18468848, instance_count = 0, vertices_per_patch = 16, index_bias = 32645, min_index = 8, max_index = 0, primitive_restart = 160 '\240', restart_index = 0, count_from_stream_output = 0xca8518, indirect = 0xca7690, indirect_offset = 18229808} #8 0x00007f853dd50b6f in st_draw_vbo (ctx=0xc68460, prims=<optimized out>, nr_prims=<optimized out>, ib=0x0, index_bounds_valid=<optimized out>, min_index=0, max_index=65535, tfb_vertcount=0x0, indirect=0x0) at state_tracker/st_draw.c:288 ibuffer = {index_size = 0, offset = 0, buffer = 0x0, user_buffer = 0x0} info = {indexed = 0 '\000', mode = 0, start = 0, count = 65536, start_instance = 0, instance_count = 1, vertices_per_patch = 3, index_bias = 0, min_index = 0, max_index = 65535, primitive_restart = 0 '\000', restart_index = 0, count_from_stream_output = 0x0, indirect = 0x0, indirect_offset = 0} arrays = <optimized out> i = <optimized out> #9 0x00007f853dd208d7 in vbo_draw_arrays (ctx=0xc68460, mode=0, start=0, count=65536, numInstances=1, baseInstance=0) at vbo/vbo_exec_array.c:645 exec = 0xca98c8 prim = {{mode = 0, indexed = 0, begin = 1, end = 1, weak = 0, no_current_update = 0, is_indirect = 0, pad = 0, start = 0, count = 65536, basevertex = 0, num_instances = 1, base_instance = 0, indirect_offset = 0}, {mode = 0, indexed = 0, begin = 0, end = 0, weak = 0, no_current_update = 0, is_indirect = 0, pad = 0, start = 0, count = 0, basevertex = 0, num_instances = 0, base_instance = 0, indirect_offset = 0}} #10 0x0000000000403421 in Draw() () No symbol table info available. #11 0x00007f8542518154 in ?? () from /usr/lib64/libglut.so.3 No symbol table info available. #12 0x00007f854251b9b9 in fgEnumWindows () from /usr/lib64/libglut.so.3 No symbol table info available. #13 0x00007f854251870d in glutMainLoopEvent () from /usr/lib64/libglut.so.3 No symbol table info available. #14 0x00007f8542518f0d in glutMainLoop () from /usr/lib64/libglut.so.3 No symbol table info available. #15 0x0000000000402ff0 in main () No symbol table info available. (gdb) info registers all rax 0x220 544 rbx 0x11c8a30 18647600 rcx 0x0 0 rdx 0x1169be8 18258920 rsi 0x0 0 rdi 0x0 0 rbp 0x0 0x0 rsp 0x7ffd0c763490 0x7ffd0c763490 r8 0x114c4a8 18138280 r9 0x11af930 18544944 r10 0x11af930 18544944 r11 0x11af940 18544960 r12 0x38 56 r13 0x7ffd0c763950 140724812527952 r14 0x11af2d8 18543320 r15 0x3 3 rip 0x7f853df86062 0x7f853df86062 <r600_sb::bc_parser::prepare_ir()+1938> eflags 0x10202 [ IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 st0 0 (raw 0x00000000000000000000) st1 0 (raw 0x00000000000000000000) st2 0 (raw 0x00000000000000000000) st3 0 (raw 0x00000000000000000000) st4 0 (raw 0x00000000000000000000) st5 0 (raw 0x00000000000000000000) st6 0 (raw 0x00000000000000000000) st7 0 (raw 0x00000000000000000000) fctrl 0x37f 895 fstat 0x0 0 ftag 0xffff 65535 fiseg 0x0 0 fioff 0x0 0 foseg 0x0 0 fooff 0x0 0 fop 0x0 0 xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x90, 0xce, 0x1c, 0x1, 0x0 <repeats 12 times>}, v8_int16 = {0xce90, 0x11c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x11cce90, 0x0, 0x0, 0x0}, v2_int64 = {0x11cce90, 0x0}, uint128 = 0x000000000000000000000000011cce90} xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x40, 0xba, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, 0x10, 0xbb, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xba40, 0x11b, 0x0, 0x0, 0xbb10, 0x11b, 0x0, 0x0}, v4_int32 = {0x11bba40, 0x0, 0x11bbb10, 0x0}, v2_int64 = {0x11bba40, 0x11bbb10}, uint128 = 0x00000000011bbb1000000000011bba40} xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x38, 0xb8, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb9, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xb838, 0x11b, 0x0, 0x0, 0xb900, 0x11b, 0x0, 0x0}, v4_int32 = {0x11bb838, 0x0, 0x11bb900, 0x0}, v2_int64 = {0x11bb838, 0x11bb900}, uint128 = 0x00000000011bb90000000000011bb838} xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x60, 0xb6, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xb6, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xb660, 0x11b, 0x0, 0x0, 0xb6f8, 0x11b, 0x0, 0x0}, v4_int32 = {0x11bb660, 0x0, 0x11bb6f8, 0x0}, v2_int64 = {0x11bb660, 0x11bb6f8}, uint128 = 0x00000000011bb6f800000000011bb660} xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0xf8, 0xb4, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, 0x90, 0xb5, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xb4f8, 0x11b, 0x0, 0x0, 0xb590, 0x11b, 0x0, 0x0}, v4_int32 = {0x11bb4f8, 0x0, 0x11bb590, 0x0}, v2_int64 = {0x11bb4f8, 0x11bb590}, uint128 = 0x00000000011bb59000000000011bb4f8} xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x80, 0xad, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, 0x38, 0xae, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xad80, 0x11b, 0x0, 0x0, 0xae38, 0x11b, 0x0, 0x0}, v4_int32 = {0x11bad80, 0x0, 0x11bae38, 0x0}, v2_int64 = {0x11bad80, 0x11bae38}, uint128 = 0x00000000011bae3800000000011bad80} xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0xa0, 0x42, 0x21, 0x1, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x42, 0x21, 0x1, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x42a0, 0x121, 0x0, 0x0, 0x42d0, 0x121, 0x0, 0x0}, v4_int32 = {0x12142a0, 0x0, 0x12142d0, 0x0}, v2_int64 = {0x12142a0, 0x12142d0}, uint128 = 0x00000000012142d000000000012142a0} xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x43, 0x21, 0x1, 0x0, 0x0, 0x0, 0x0, 0x30, 0x43, 0x21, 0x1, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x4300, 0x121, 0x0, 0x0, 0x4330, 0x121, 0x0, 0x0}, v4_int32 = {0x1214300, 0x0, 0x1214330, 0x0}, v2_int64 = {0x1214300, 0x1214330}, uint128 = 0x00000000012143300000000001214300} xmm8 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = { 0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm9 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0xd0, 0x3c, 0x21, 0x1, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x3e, 0x21, 0x1, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x3cd0, 0x121, 0x0, 0x0, 0x3ee0, 0x121, 0x0, 0x0}, v4_int32 = {0x1213cd0, 0x0, 0x1213ee0, 0x0}, v2_int64 = {0x1213cd0, 0x1213ee0}, uint128 = 0x0000000001213ee00000000001213cd0} xmm10 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = { 0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm11 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = { 0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm12 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0xff0000, 0x0}, v2_int64 = {0x0, 0xff0000}, uint128 = 0x0000000000ff00000000000000000000} xmm13 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = { 0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm14 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = { 0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm15 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = { 0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} mxcsr 0x1fa0 [ PE IM DM ZM OM UM PM ]
Crash was FIXED by one of this: 36f1999a87258603b6720d55e6020d5d24c215c9 a830225adbb77073272961df409885cca6b861ee a830225adbb77073272961df409885cca6b861ee Now GPU hang on 'gsraytrace'. See attached GALLIUM_DDEBUG dump log (gsraytrace_22964_00000000). After reboot I found this in kernel log (dmesg): [ 3.521069] [drm:btc_dpm_set_power_state [radeon]] *ERROR* rv770_restrict_performance_levels_before_switch failed R600_DEBUG=nosb image corruption still there see (new) fsraytrace.png gsraytrace.png vsraytrace.png
Created attachment 117973 [details] gsraytrace_22964_00000000
Created attachment 117974 [details] fsraytrace.png
Created attachment 117975 [details] gsraytrace.png
Created attachment 117976 [details] vsraytrace.png
FIXED by one of this: 36f1999a87258603b6720d55e6020d5d24c215c9 a830225adbb77073272961df409885cca6b861ee a830225adbb77073272961df409885cca6b861ee
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.