diff options
author | Axel Davy <[email protected]> | 2016-02-09 23:33:51 +0100 |
---|---|---|
committer | Axel Davy <[email protected]> | 2016-05-18 23:37:14 +0200 |
commit | d11d913987acdec3e9ced0fcc0b77a574ab90931 (patch) | |
tree | 6c8c871c5f1bc8aeed620adc5217874fa2a01dc2 | |
parent | 44068af92e7500a63425905fc7a3a6a0db5c665a (diff) |
st/nine: PositionT and Tessfactor are forbidden as PS input
According to wine tests, they are forbidden as PS input,
which makes sense.
Signed-off-by: Axel Davy <[email protected]>
-rw-r--r-- | src/gallium/state_trackers/nine/nine_shader.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gallium/state_trackers/nine/nine_shader.c b/src/gallium/state_trackers/nine/nine_shader.c index a9d5a59d68a..1a54fc1f037 100644 --- a/src/gallium/state_trackers/nine/nine_shader.c +++ b/src/gallium/state_trackers/nine/nine_shader.c @@ -2052,11 +2052,13 @@ DECL_SPECIAL(DCL) unsigned interp_location = 0; /* SM3 only, SM2 input semantic determined by file */ assert(sem.reg.idx < ARRAY_SIZE(tx->regs.v)); + /* PositionT and tessfactor forbidden */ + if (sem.usage == D3DDECLUSAGE_POSITIONT || sem.usage == D3DDECLUSAGE_TESSFACTOR) + return D3DERR_INVALIDCALL; if (tgsi.Name == TGSI_SEMANTIC_POSITION) { - /* Position0/PositionT0 are forbidden (likely because vPos already does that) */ - if (sem.usage == D3DDECLUSAGE_POSITION || - sem.usage == D3DDECLUSAGE_POSITIONT) + /* Position0 is forbidden (likely because vPos already does that) */ + if (sem.usage == D3DDECLUSAGE_POSITION) return D3DERR_INVALIDCALL; /* Following code is for depth */ tx->regs.v[sem.reg.idx] = nine_get_position_input(tx); |