summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Davy <[email protected]>2016-09-25 02:05:28 +0200
committerAxel Davy <[email protected]>2016-10-10 23:43:50 +0200
commita3ddc80ec84533329af6540108230b079858c378 (patch)
tree6f2cb09e7cc4efc467ea1c61acd7cbb12f6b100b
parent0b5bed774b420c29c45e16a0d962e29a4d0ffb4e (diff)
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 <[email protected]>
-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 ce19b9ba3dd..d0a8361b673 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;