diff options
-rw-r--r-- | src/gpu/gl/GrGLAssembleInterface.cpp | 3 | ||||
-rw-r--r-- | src/gpu/gl/GrGLInterface.cpp | 42 |
2 files changed, 29 insertions, 16 deletions
diff --git a/src/gpu/gl/GrGLAssembleInterface.cpp b/src/gpu/gl/GrGLAssembleInterface.cpp index 294e6dfaef..c4d3e13179 100644 --- a/src/gpu/gl/GrGLAssembleInterface.cpp +++ b/src/gpu/gl/GrGLAssembleInterface.cpp @@ -317,7 +317,8 @@ const GrGLInterface* GrGLAssembleGLInterface(void* ctx, GrGLGetProc get) { GET_PROC(GetProgramResourceLocation); } - if (glVer >= GR_GL_VER(3,1) || extensions.has("GL_ARB_draw_instanced")) { + if (glVer >= GR_GL_VER(3,1) || extensions.has("GL_ARB_draw_instanced") || + extensions.has("GL_EXT_draw_instanced")) { GET_PROC(DrawArraysInstanced); GET_PROC(DrawElementsInstanced); } diff --git a/src/gpu/gl/GrGLInterface.cpp b/src/gpu/gl/GrGLInterface.cpp index ecd400387a..71de9521c2 100644 --- a/src/gpu/gl/GrGLInterface.cpp +++ b/src/gpu/gl/GrGLInterface.cpp @@ -544,23 +544,35 @@ bool GrGLInterface::validate() const { } } - if ((kGL_GrGLStandard == fStandard && glVer >= GR_GL_VER(3,1)) || - (kGLES_GrGLStandard == fStandard && glVer >= GR_GL_VER(3,0)) || - fExtensions.has("GL_ARB_draw_instanced") || - fExtensions.has("GL_EXT_draw_instanced")) { - if (nullptr == fFunctions.fDrawArraysInstanced || - nullptr == fFunctions.fDrawElementsInstanced) { - RETURN_FALSE_INTERFACE - } + if (kGL_GrGLStandard == fStandard) { + if (glVer >= GR_GL_VER(3,1) || + fExtensions.has("GL_EXT_draw_instanced") || fExtensions.has("GL_ARB_draw_instanced")) { + if (nullptr == fFunctions.fDrawArraysInstanced || + nullptr == fFunctions.fDrawElementsInstanced) { + RETURN_FALSE_INTERFACE + } + } + } else if (kGLES_GrGLStandard == fStandard) { + if (glVer >= GR_GL_VER(3,0) || fExtensions.has("GL_EXT_draw_instanced")) { + if (nullptr == fFunctions.fDrawArraysInstanced || + nullptr == fFunctions.fDrawElementsInstanced) { + RETURN_FALSE_INTERFACE + } + } } - if ((kGL_GrGLStandard == fStandard && glVer >= GR_GL_VER(3,2)) || - (kGLES_GrGLStandard == fStandard && glVer >= GR_GL_VER(3,0)) || - fExtensions.has("GL_ARB_instanced_arrays") || - fExtensions.has("GL_EXT_instanced_arrays")) { - if (nullptr == fFunctions.fVertexAttribDivisor) { - RETURN_FALSE_INTERFACE - } + if (kGL_GrGLStandard == fStandard) { + if (glVer >= GR_GL_VER(3,2) || fExtensions.has("GL_ARB_instanced_arrays")) { + if (nullptr == fFunctions.fVertexAttribDivisor) { + RETURN_FALSE_INTERFACE + } + } + } else if (kGLES_GrGLStandard == fStandard) { + if (glVer >= GR_GL_VER(3,0) || fExtensions.has("GL_EXT_instanced_arrays")) { + if (nullptr == fFunctions.fVertexAttribDivisor) { + RETURN_FALSE_INTERFACE + } + } } if (fExtensions.has("GL_NV_bindless_texture")) { |