<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - brw_fs_register_coalesce.cpp:183: bool fs_visitor::register_coalesce(): Assertion `src_size <= 11' failed."
   href="https://bugs.freedesktop.org/show_bug.cgi?id=84539">84539</a>
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>idr@freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>brw_fs_register_coalesce.cpp:183: bool fs_visitor::register_coalesce(): Assertion `src_size <= 11' failed.
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>intel-3d-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>airlied@freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>git
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Drivers/DRI/i965
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr></table>
      <p>
        <div>
        <pre>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@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</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>