Don't unnecessarily require indexed functions - check for extensions

* For indexed viewports or blends, we make sure we have fallback code in case
  the extensions aren't present.
This commit is contained in:
baldurk
2018-07-03 15:25:43 +01:00
parent 96d53c162c
commit b8e3fe5f31
2 changed files with 8 additions and 6 deletions
-4
View File
@@ -196,7 +196,6 @@ bool ValidateFunctionPointers(const GLHookSet &real)
CHECK_PRESENT(glClearBufferuiv)
CHECK_PRESENT(glClearColor)
CHECK_PRESENT(glClearDepthf)
CHECK_PRESENT(glColorMaski)
CHECK_PRESENT(glCompileShader)
CHECK_PRESENT(glCopyImageSubData)
CHECK_PRESENT(glCreateProgram)
@@ -216,7 +215,6 @@ bool ValidateFunctionPointers(const GLHookSet &real)
CHECK_PRESENT(glDepthMask)
CHECK_PRESENT(glDetachShader)
CHECK_PRESENT(glDisable)
CHECK_PRESENT(glDisablei)
CHECK_PRESENT(glDisableVertexAttribArray)
CHECK_PRESENT(glDrawArrays)
CHECK_PRESENT(glDrawArraysInstanced)
@@ -224,7 +222,6 @@ bool ValidateFunctionPointers(const GLHookSet &real)
CHECK_PRESENT(glDrawElements)
CHECK_PRESENT(glDrawElementsBaseVertex)
CHECK_PRESENT(glEnable)
CHECK_PRESENT(glEnablei)
CHECK_PRESENT(glEnableVertexAttribArray)
CHECK_PRESENT(glEndQuery)
CHECK_PRESENT(glFramebufferTexture2D)
@@ -278,7 +275,6 @@ bool ValidateFunctionPointers(const GLHookSet &real)
CHECK_PRESENT(glGetVertexAttribiv)
CHECK_PRESENT(glHint)
CHECK_PRESENT(glIsEnabled)
CHECK_PRESENT(glIsEnabledi)
CHECK_PRESENT(glLineWidth)
CHECK_PRESENT(glLinkProgram)
CHECK_PRESENT(glMapBufferRange)
+8 -2
View File
@@ -429,14 +429,20 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, CompType typeHint, DebugOve
gl.glUseProgram(DebugData.outlineQuadProg);
gl.glBindProgramPipeline(0);
gl.glDisablei(eGL_SCISSOR_TEST, 0);
if(HasExt[ARB_viewport_array])
{
gl.glDisablei(eGL_SCISSOR_TEST, 0);
gl.glViewportIndexedf(0, rs.Viewports[0].x, rs.Viewports[0].y, rs.Viewports[0].width,
rs.Viewports[0].height);
}
else
{
gl.glDisable(eGL_SCISSOR_TEST);
gl.glViewport((GLint)rs.Viewports[0].x, (GLint)rs.Viewports[0].y,
(GLsizei)rs.Viewports[0].width, (GLsizei)rs.Viewports[0].height);
}
gl.glBindBufferBase(eGL_UNIFORM_BUFFER, 0, DebugData.UBOs[0]);
OutlineUBOData *cdata =