From a77d8cd710ec5091e9c31167032427189ae77437 Mon Sep 17 00:00:00 2001 From: Axel Davy Date: Sun, 21 Feb 2016 16:38:23 +0100 Subject: [PATCH] st/nine: Forbid POSITION0 for PS3.0 POSITION0 input is forbidden for PS3.0 apparently. Signed-off-by: Axel Davy --- src/gallium/state_trackers/nine/nine_shader.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gallium/state_trackers/nine/nine_shader.c b/src/gallium/state_trackers/nine/nine_shader.c index 4ad5fa1723d..4698fd77e97 100644 --- a/src/gallium/state_trackers/nine/nine_shader.c +++ b/src/gallium/state_trackers/nine/nine_shader.c @@ -2054,6 +2054,11 @@ DECL_SPECIAL(DCL) assert(sem.reg.idx < ARRAY_SIZE(tx->regs.v)); 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) + return D3DERR_INVALIDCALL; + /* Following code is for depth */ tx->regs.v[sem.reg.idx] = nine_get_position_input(tx); return D3D_OK; } -- 2.30.2