summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine/nine_shader.c
diff options
context:
space:
mode:
authorAxel Davy <axel.davy@ens.fr>2016-02-09 23:33:51 +0100
committerAxel Davy <axel.davy@ens.fr>2016-05-18 23:37:14 +0200
commitd11d913987acdec3e9ced0fcc0b77a574ab90931 (patch)
tree6c8c871c5f1bc8aeed620adc5217874fa2a01dc2 /src/gallium/state_trackers/nine/nine_shader.c
parent44068af92e7500a63425905fc7a3a6a0db5c665a (diff)
downloadexternal_mesa3d-d11d913987acdec3e9ced0fcc0b77a574ab90931.zip
external_mesa3d-d11d913987acdec3e9ced0fcc0b77a574ab90931.tar.gz
external_mesa3d-d11d913987acdec3e9ced0fcc0b77a574ab90931.tar.bz2
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 <axel.davy@ens.fr>
Diffstat (limited to 'src/gallium/state_trackers/nine/nine_shader.c')
-rw-r--r--src/gallium/state_trackers/nine/nine_shader.c8
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 a9d5a59..1a54fc1 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);