[Bug 84539] New: brw_fs_register_coalesce.cpp:183: bool fs_visitor::register_coalesce(): Assertion `src_size <= 11' failed.

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Sep 30 19:38:00 PDT 2014


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

          Priority: medium
            Bug ID: 84539
          Assignee: idr at freedesktop.org
           Summary: brw_fs_register_coalesce.cpp:183: bool
                    fs_visitor::register_coalesce(): Assertion `src_size
                    <= 11' failed.
        QA Contact: intel-3d-bugs at lists.freedesktop.org
          Severity: normal
    Classification: Unclassified
                OS: All
          Reporter: airlied at freedesktop.org
          Hardware: Other
            Status: NEW
           Version: git
         Component: Drivers/DRI/i965
           Product: Mesa

Running piglit inside virgl on master this happened,

GLSL: #version 130
#extension GL_ARB_fragment_coord_conventions : enable
layout(origin_upper_left ) in vec4 gl_FragCoord;
out vec4 out_c0;
out vec4 out_c1;
out vec4 out_c2;
out vec4 out_c3;
out vec4 out_c4;
out vec4 out_c5;
out vec4 out_c6;
out vec4 out_c7;
vec4 temps[4];
uniform vec4 fsconst0[4];
uniform sampler2D fssamp0;
void main(void)
{
temps[0] = vec4(((gl_FragCoord)));
temps[0].y = float(((gl_FragCoord) * (fsconst0[3].zzzz) +
(fsconst0[3].wwww)).y);
temps[1].yzw = vec3(((vec4(0,0,0,0)).yzw));
temps[2].xy = vec2((( temps[0].xyyy  + (vec4(-0.5,-0.5,-0.5,-0.5)))).xy);
temps[3].x = float(1.0/((fsconst0[1].xxxx)));
temps[2].xy = vec2((( temps[2].xyyy  *  temps[3].xxxx )).xy);
temps[2].xy = vec2(( temps[2].xyyy .xy));
temps[2].x = float(texture(fssamp0,  temps[2] .xy));
temps[2].x = float((( temps[2].xxxx  +  -temps[0].zzzz )).x);
temps[2].x = float((abs( temps[2].xxxx )));
temps[1].x = float((((fsconst0[2].xxxx) *  temps[2].xxxx )).x);
out_c0 = vec4(( temps[1] ));
gl_FragDepth = float(( temps[0].zzzz .z));
out_c1 = out_c0;
out_c2 = out_c0;
out_c3 = out_c0;
out_c4 = out_c0;
out_c5 = out_c0;
out_c6 = out_c0;
out_c7 = out_c0;
}

(gdb) up
#4  0x00007fa9f1ba1fa2 in fs_visitor::register_coalesce
(this=this at entry=0x7fff0eac78a0)
    at brw_fs_register_coalesce.cpp:183
183             assert(src_size <= MAX_SAMPLER_MESSAGE_SIZE);
(gdb) print src_size
$1 = 12
(gdb) list
178    
179          if (reg_from != inst->src[0].reg) {
180             reg_from = inst->src[0].reg;
181    
182             src_size = virtual_grf_sizes[inst->src[0].reg];
183             assert(src_size <= MAX_SAMPLER_MESSAGE_SIZE);
184    
185             assert(inst->src[0].width % 8 == 0);
186             channels_remaining = src_size;
187             memset(mov, 0, sizeof(mov));
(gdb) print inst->src[0].reg
$2 = 25
(gdb) print inst
$3 = (fs_inst *) 0x7faa14fed030
(gdb) print *inst
$4 = {<backend_instruction> = {<exec_node> = {next = 0x7faa1577e670, prev =
0x7faa15754d00}, ir = 0x0, annotation = 0x0, 
    texture_offset = 0, offset = 0, mlen = 0 '\000', base_mrf = 0 '\000',
target = 0 '\000', 
    opcode = SHADER_OPCODE_LOAD_PAYLOAD, conditional_mod =
BRW_CONDITIONAL_NONE, predicate = BRW_PREDICATE_NONE, 
    predicate_inverse = false, writes_accumulator = false, force_writemask_all
= false, no_dd_clear = false, 
    no_dd_check = false, saturate = false}, dst = {<backend_reg> = {file = GRF,
type = BRW_REGISTER_TYPE_F, reg = 11, 
      reg_offset = 0, fixed_hw_reg = {type = BRW_REGISTER_TYPE_UD, file = 0, nr
= 0, subnr = 0, negate = 0, abs = 0, 
        vstride = 0, width = 0, hstride = 0, address_mode = 0, pad0 = 0, dw1 =
{bits = {swizzle = 0, writemask = 0, 
            indirect_offset = 0, pad1 = 0}, f = 0, d = 0, ud = 0}}, negate =
false, abs = false}, subreg_offset = 0, 
    reladdr = 0x0, width = 8 '\b', effective_width = 8 '\b', stride = 1
'\001'}, src = 0x7faa14fece10, sources = 12 '\f', 
  exec_size = 8 '\b', flag_subreg = 0 '\000', regs_written = 12 '\f', eot =
false, header_present = false, 
  shadow_compare = false, force_uncompressed = false, force_sechalf = false,
pi_noperspective = false}
(gdb) print virtual_grf_sizes
$5 = (int *) 0x7faa15954010
(gdb) print virtual_grf_sizes[25]
$6 = 12

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20141001/35ca3152/attachment-0001.html>


More information about the intel-3d-bugs mailing list