diff options
Diffstat (limited to 'src/mesa/shader')
-rw-r--r-- | src/mesa/shader/slang/slang_link.c | 13 |
1 files changed, 12 insertions, 1 deletions
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); |