From 55821d021d87fba6551509f5612ee16d9ece977f Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 7 Mar 2007 07:52:24 -0700 Subject: Generate an error if the vertex shader does not write to gl_Position. --- src/mesa/shader/slang/slang_link.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/mesa/shader/slang') diff --git a/src/mesa/shader/slang/slang_link.c b/src/mesa/shader/slang/slang_link.c index 8f924739b49..e564d6d5767 100644 --- a/src/mesa/shader/slang/slang_link.c +++ b/src/mesa/shader/slang/slang_link.c @@ -548,8 +548,19 @@ _slang_link(GLcontext *ctx, } } - if (shProg->VertexProgram) + if (shProg->VertexProgram) { _slang_update_inputs_outputs(&shProg->VertexProgram->Base); + if (!(shProg->VertexProgram->Base.OutputsWritten & VERT_RESULT_HPOS)) { + /* the vertex program did not compute a vertex position */ + if (shProg->InfoLog) { + _mesa_free(shProg->InfoLog); + } + shProg->InfoLog + = _mesa_strdup("gl_Position was not written by vertex shader"); + shProg->LinkStatus = GL_FALSE; + return; + } + } if (shProg->FragmentProgram) _slang_update_inputs_outputs(&shProg->FragmentProgram->Base); -- cgit v1.2.3