Add a fallback if TF varyings cause program not to link

This commit is contained in:
baldurk
2017-09-11 15:32:09 +01:00
parent 6c4f407b62
commit e25af7685b
+10
View File
@@ -1123,6 +1123,16 @@ bool GLResourceManager::Serialise_InitialState(ResourceId resid, GLResource res)
GLint status = 0;
gl.glGetProgramiv(initProg, eGL_LINK_STATUS, &status);
// if it failed to link, first remove the varyings hack above as maybe the driver is barfing
// on trying to make some output a varying
if(status == 0)
{
gl.glTransformFeedbackVaryings(initProg, 0, NULL, eGL_INTERLEAVED_ATTRIBS);
gl.glLinkProgram(initProg);
gl.glGetProgramiv(initProg, eGL_LINK_STATUS, &status);
}
// if it failed to link, try again as a separable program.
// we can't do this by default because of the silly rules meaning
// shaders need fixup to be separable-compatible.