<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>