[Bug 91503] [r600g] regression: SB-related NI/Turks crash on 'gsraytrace'

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Jul 29 19:33:56 PDT 2015


https://bugs.freedesktop.org/show_bug.cgi?id=91503

            Bug ID: 91503
           Summary: [r600g] regression: SB-related NI/Turks crash on
                    'gsraytrace'
           Product: Mesa
           Version: git
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: critical
          Priority: medium
         Component: Drivers/Gallium/r600
          Assignee: dri-devel at lists.freedesktop.org
          Reporter: Dieter at nuetzel-hh.de
        QA Contact: dri-devel at lists.freedesktop.org

Created attachment 117455
  --> https://bugs.freedesktop.org/attachment.cgi?id=117455&action=edit
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 at 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 at 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 at entry=0x7ffd0c763950)
    at sb/sb_bc_parser.cpp:107
        r = <optimized out>
#2  0x00007f853df879a1 in r600_sb_bytecode_process (rctx=rctx at entry=0xb4f680, 
    bc=bc at entry=0x119fcf0, pshader=pshader at entry=0x119fce8,
dump_bytecode=dump_bytecode at 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 at entry=0xb4f680, 
    shader=shader at 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 at entry=0xb4f680,
sel=0x11872b0, 
    dirty=dirty at 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 ]

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20150730/39defecf/attachment-0001.html>


More information about the dri-devel mailing list