summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2016-03-19 11:58:25 -0400
committerIlia Mirkin <[email protected]>2016-03-20 14:14:32 -0400
commit6eeb284e4f74a2fe5ae6cba90f97f219935e24df (patch)
tree8d78e8639a1289698689fa1e50cd9ce83830865e /src/mesa/state_tracker
parentea2bff1d115ef00aaa06797fffd4334f6a50570f (diff)
nv50/ir: normalize cube coordinates after derivatives have been computed
In "manual" derivative mode (always used on nv50 and sometimes on nvc0 but always for cube), the idea is that using the quadop instruction, we set up the "other" quads to have values such that the derivatives work out, and then run the texture instruction as if nothing were strange. It pulls values from the other lanes, and does its magic. However cube coordinates have to be normalized - one of the 3 coords has to be 1, to determine which is the major axis, to say which face is being sampled. We were normalizing the coordinates first, and then adding the derivatives. This is wrong for two reasons: - the coordinates got normalized by a scaling factor but the derivatives didn't - the result of the addition didn't end up normalized To resolve this, we flip the logic around to normalize *after* the per-lane coordinates are set up. This fixes a bunch of textureGrad cube dEQP tests. NOTE: nv50 cube arrays with explicit derivatives are still broken, to be resolved at a later date. Signed-off-by: Ilia Mirkin <[email protected]> Cc: "11.1 11.2" <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker')
0 files changed, 0 insertions, 0 deletions