diff options
author | Zack Rusin <[email protected]> | 2009-07-07 12:48:50 -0700 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2009-07-07 12:48:50 -0700 |
commit | 7b861b9b9efdb3ac0dfc3806afcd494cd0ea006c (patch) | |
tree | 3d05123f38a7b5a4e44fc3e7032ea6216a4b28c5 | |
parent | 71633abafc935c25da9731bab48c228ceb9b4097 (diff) |
gallium: fixup register indexes for fog/frontface/point coord
-rw-r--r-- | src/mesa/state_tracker/st_atom_shader.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/mesa/state_tracker/st_atom_shader.c b/src/mesa/state_tracker/st_atom_shader.c index 299aa762c20..5219119c818 100644 --- a/src/mesa/state_tracker/st_atom_shader.c +++ b/src/mesa/state_tracker/st_atom_shader.c @@ -142,9 +142,18 @@ find_translated_vp(struct st_context *st, if ((fragInputsRead & FRAG_BIT_FOGC)) { /* leave placeholders for the * extra registers we extract from fog */ - if (stfp->Base.UsesFrontFacing || - stfp->Base.UsesPointCoord) { - numIn += 2; + if (stfp->Base.UsesFrontFacing) { + if (!stfp->Base.UsesFogFragCoord) + --stfp->input_to_slot[inAttr]; + else + ++numIn; + } + if (stfp->Base.UsesPointCoord) { + if (!stfp->Base.UsesFrontFacing && + !stfp->Base.UsesFogFragCoord) + stfp->input_to_slot[inAttr] -= 2; + else + ++numIn; } } } |