[Mesa-dev] [PATCH] i965/fs: Properly patch special values during VGRF compaction.

Eric Anholt eric at anholt.net
Thu Nov 15 10:39:03 PST 2012


Kenneth Graunke <kenneth at whitecape.org> writes:
> In addition to registers used by instructions, fs_visitor maintains
> direct references to certain "special" values used for inputs/outputs.
>
> When I added VGRF compaction, I overlooked these, believing that these
> direct references weren't used once instructions were generated.  That
> was wrong.  For example, pixel_x/y are used in virtual_grf_interferes(),
> which is called by optimization passes and register allocation.
>
> This patch treats all of them as used and patches them after compacting.
> While it's not strictly necessary to patch all of them (as some aren't
> used after emitting code), it seems safer to simply fix them all.
>
> Fixes oglconform's textureswizzle/advanced.shader.targets, piglit's
> glsl-fs-lots-of-tex, and glean's texCombine on pre-Gen6 hardware.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56790

Yeah, finally realized this morning that this was probably about how
delta_xy weren't being adjusted for the register allocator.

Reviewed-by: Eric Anholt <eric at anholt.net>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20121115/fdd747b0/attachment.pgp>


More information about the mesa-dev mailing list