aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/gpu/gl/GrGLAssembleInterface.cpp3
-rw-r--r--src/gpu/gl/GrGLInterface.cpp42
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")) {