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
oh also this is an Ivybridge machine OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Desktop OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.4.0-devel (git-7ddcee6) OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile
This patch should fix it: http://lists.freedesktop.org/archives/mesa-dev/2014-October/068930.html
commit 50d0e2e118fb3e42dc83c83de34da3eac0a0d8a1 Author: Jason Ekstrand <jason.ekstrand@intel.com> Date: Wed Oct 1 10:54:59 2014 -0700 i965/fs: Add a MAX_GRF_SIZE define and use it various places Previously, we had a MAX_SAMPLER_MESSAGE_SIZE which we used instead. However, some FB write messages can validly be longer than this so we need something different. Since MAX_SAMPLER_MESSAGE_SIZE is validly useful on its own, we leave it alone and add a new MAX_GRF_SIZE that's big enough for FB writes. Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84539 Reviewed-by: Matt Turner <mattst88@gmail.com>
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.