diff --git a/renderdoc/driver/gl/gl_renderstate.cpp b/renderdoc/driver/gl/gl_renderstate.cpp index 749acd80e..d7d52f8cd 100644 --- a/renderdoc/driver/gl/gl_renderstate.cpp +++ b/renderdoc/driver/gl/gl_renderstate.cpp @@ -301,7 +301,9 @@ void GLRenderState::ApplyState() // See FetchState(). The spec says that you have to SET the right format for the shader too, // but we couldn't query for the format so we can't set it here. - for(GLuint i=0; i < (GLuint)ARRAY_COUNT(GenericVertexAttribs); i++) + GLuint maxNumAttribs = 0; + m_Real->glGetIntegerv(eGL_MAX_VERTEX_ATTRIBS, (GLint *)&maxNumAttribs); + for(GLuint i=0; i < RDCMAX(maxNumAttribs, (GLuint)ARRAY_COUNT(GenericVertexAttribs)); i++) m_Real->glVertexAttrib4fv(i, &GenericVertexAttribs[i].x); m_Real->glPointParameterf(eGL_POINT_FADE_THRESHOLD_SIZE, PointFadeThresholdSize);