i965: set size of txf_mcs payload vgrf properly

Previously we left the size of this vgrf as 1, which caused register
allocation to be subtly broken. If we were lucky we would explode in
the post-alloc instruction scheduler; if we were unlucky we'd just stomp
on someone else and get broken rendering.

Fixes crash when running `tesseract` with the following settings:

   msaa 4
   glineardepth 0

Also fixes the piglit test:

  arb_sample_shading-builtin-gl-sample-id

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Cc: Anuj Phogat <anuj.phogat@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=72859
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Chris Forbes 2014-01-04 15:27:54 +13:00
parent eb212c5a30
commit a61ae2aa01

View file

@ -1549,6 +1549,7 @@ fs_visitor::emit_mcs_fetch(ir_texture *ir, fs_reg coordinate, int sampler)
}
fs_inst *inst = emit(SHADER_OPCODE_TXF_MCS, dest, payload);
virtual_grf_sizes[payload.reg] = next.reg_offset;
inst->base_mrf = -1;
inst->mlen = next.reg_offset * reg_width;
inst->header_present = false;