[Mesa-dev] i965 texturing bugfix

Kenneth Graunke kenneth at whitecape.org
Sun Aug 5 00:04:38 PDT 2012


While working on

https://bugs.freedesktop.org/show_bug.cgi?id=52129

I discovered that we have a nasty bug in our texturing code, dating all
the way back to the advent of the new FS backend.  If you generate a
sampler message whose subexpressions (like LOD or shadow comparitor)
require SENDs to generate, we end up clobbering the MRFs containing the
texcoords, causing all kinds of nonsense.

This showed up with my textureGrad rework on Gen4-5, where I made the
LOD log2(sqrt(...)), both of which involve math operations, aka SENDs.
We would load the U-coordinate in m2, clobber it to do math, then go
ahead and do the sampler send.

This could probably also happen on Gen6+ with, say, nested texture
calls, or perhaps pull constants/UBO loads.  Worth fixing regardless.

Piglit-tested on G965, G45, Ironlake, and Sandybridge.  *Not* tested
on Ivybridge (I moved this weekend and can't find my power brick).
Also not oglconform tested.



More information about the mesa-dev mailing list