summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine
diff options
context:
space:
mode:
authorAxel Davy <axel.davy@ens.fr>2016-09-25 02:05:28 +0200
committerAxel Davy <axel.davy@ens.fr>2016-10-10 23:43:50 +0200
commita3ddc80ec84533329af6540108230b079858c378 (patch)
tree6f2cb09e7cc4efc467ea1c61acd7cbb12f6b100b /src/gallium/state_trackers/nine
parent0b5bed774b420c29c45e16a0d962e29a4d0ffb4e (diff)
downloadexternal_mesa3d-a3ddc80ec84533329af6540108230b079858c378.zip
external_mesa3d-a3ddc80ec84533329af6540108230b079858c378.tar.gz
external_mesa3d-a3ddc80ec84533329af6540108230b079858c378.tar.bz2
st/nine: Enable passthrough only if positiont is used
Wine tests for the passthrough feature are for positiont. Nothing seems to indicate passthrough happens when positiont it not used. However having passthrough with positiont makes sense (to be used with ProcessVertices outputs). Signed-off-by: Axel Davy <axel.davy@ens.fr>
Diffstat (limited to 'src/gallium/state_trackers/nine')
-rw-r--r--src/gallium/state_trackers/nine/nine_ff.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/nine/nine_ff.c b/src/gallium/state_trackers/nine/nine_ff.c
index ce19b9b..d0a8361 100644
--- a/src/gallium/state_trackers/nine/nine_ff.c
+++ b/src/gallium/state_trackers/nine/nine_ff.c
@@ -1584,6 +1584,8 @@ nine_ff_get_vs(struct NineDevice9 *device)
key.passthrough &= ~((1 << NINE_DECLUSAGE_POSITION) | (1 << NINE_DECLUSAGE_PSIZE) |
(1 << NINE_DECLUSAGE_TEXCOORD) | (1 << NINE_DECLUSAGE_POSITIONT) |
(1 << NINE_DECLUSAGE_TESSFACTOR) | (1 << NINE_DECLUSAGE_SAMPLE));
+ if (!key.position_t)
+ key.passthrough = 0;
key.pointscale = !!state->rs[D3DRS_POINTSCALEENABLE];
key.lighting = !!state->rs[D3DRS_LIGHTING] && state->ff.num_lights_active;