diff options
author | Chris Forbes <[email protected]> | 2014-01-04 15:27:54 +1300 |
---|---|---|
committer | Chris Forbes <[email protected]> | 2014-01-04 20:24:29 +1300 |
commit | a61ae2aa01c9b1976ba4107c1564e0c3f94aea4d (patch) | |
tree | 284039fd2752d242a77badf6687bfcc4b5b96865 /src | |
parent | eb212c5a302f0122a13b36dfdf07e91f951ae2e7 (diff) |
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 <[email protected]>
Cc: Anuj Phogat <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=72859
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index 8e516a5812b..53cd0a1cf57 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -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; |