[PATCH 4/5] wined3d: Refuse pixel shaders declaring POSITION0 inputs.

Matteo Bruni mbruni at codeweavers.com
Fri Feb 6 08:25:34 CST 2015


---
 dlls/wined3d/shader.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
index e1164db..766e91f 100644
--- a/dlls/wined3d/shader.c
+++ b/dlls/wined3d/shader.c
@@ -690,6 +690,9 @@ static HRESULT shader_get_registers_used(struct wined3d_shader *shader, const st
                         ERR("Invalid input register index %u.\n", reg_idx);
                         break;
                     }
+                    if (shader_version.type == WINED3D_SHADER_TYPE_PIXEL && shader_version.major == 3
+                            && semantic->usage == WINED3D_DECL_USAGE_POSITION && !semantic->usage_idx)
+                        return WINED3DERR_INVALIDCALL;
                     reg_maps->input_registers |= 1 << reg_idx;
                     shader_signature_from_semantic(&input_signature[reg_idx], semantic);
                     break;
-- 
2.0.5




More information about the wine-patches mailing list