aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar cdalton <cdalton@nvidia.com>2015-12-17 11:11:40 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-12-17 11:11:40 -0800
commit1250944aaa9251c08eda3a37b21f15106903f42d (patch)
treea7de329114316a85e4f9bb0f4a96be1b7dd9746a
parent3819d2d767a1d25e5d2fef319741502eaffd4ed4 (diff)
Fixup GL instanced rendering commands
We've ended up with a flag in both GrCaps and GrGLCaps to indicate the same instanced rendering functionality. This change removes the GrGLCaps version of the flag and also also fixes the interface assembler to use the proper suffix when loading the EXT version of the extension. BUG=skia: Review URL: https://codereview.chromium.org/1537483002
-rw-r--r--src/gpu/gl/GrGLAssembleInterface.cpp9
-rw-r--r--src/gpu/gl/GrGLCaps.cpp12
-rw-r--r--src/gpu/gl/GrGLCaps.h4
3 files changed, 7 insertions, 18 deletions
diff --git a/src/gpu/gl/GrGLAssembleInterface.cpp b/src/gpu/gl/GrGLAssembleInterface.cpp
index 3a748b24fe..6b578f34fc 100644
--- a/src/gpu/gl/GrGLAssembleInterface.cpp
+++ b/src/gpu/gl/GrGLAssembleInterface.cpp
@@ -779,13 +779,18 @@ const GrGLInterface* GrGLAssembleGLESInterface(void* ctx, GrGLGetProc get) {
GET_PROC_SUFFIX(CoverageModulation, CHROMIUM);
}
- if (version >= GR_GL_VER(3,0) || extensions.has("GL_EXT_draw_instanced")) {
+ if (version >= GR_GL_VER(3,0)) {
GET_PROC(DrawArraysInstanced);
GET_PROC(DrawElementsInstanced);
+ } else if (extensions.has("GL_EXT_draw_instanced")) {
+ GET_PROC_SUFFIX(DrawArraysInstanced, EXT);
+ GET_PROC_SUFFIX(DrawElementsInstanced, EXT);
}
- if (version >= GR_GL_VER(3,0) || extensions.has("GL_EXT_instanced_arrays")) {
+ if (version >= GR_GL_VER(3,0)) {
GET_PROC(VertexAttribDivisor);
+ } else if (extensions.has("GL_EXT_instanced_arrays")) {
+ GET_PROC_SUFFIX(VertexAttribDivisor, EXT);
}
if (extensions.has("GL_NV_bindless_texture")) {
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
index a1e2bad469..c7856c9367 100644
--- a/src/gpu/gl/GrGLCaps.cpp
+++ b/src/gpu/gl/GrGLCaps.cpp
@@ -39,7 +39,6 @@ GrGLCaps::GrGLCaps(const GrContextOptions& contextOptions,
fImagingSupport = false;
fTwoFormatLimit = false;
fVertexArrayObjectSupport = false;
- fInstancedDrawingSupport = false;
fDirectStateAccessSupport = false;
fDebugSupport = false;
fES2CompatibilitySupport = false;
@@ -210,16 +209,6 @@ void GrGLCaps::init(const GrContextOptions& contextOptions,
ctxInfo.hasExtension("GL_OES_vertex_array_object");
}
- if ((kGL_GrGLStandard == standard && version >= GR_GL_VER(3,2)) ||
- (kGLES_GrGLStandard == standard && version >= GR_GL_VER(3,0))) {
- fInstancedDrawingSupport = true;
- } else {
- fInstancedDrawingSupport = (ctxInfo.hasExtension("GL_ARB_draw_instanced") ||
- ctxInfo.hasExtension("GL_EXT_draw_instanced")) &&
- (ctxInfo.hasExtension("GL_ARB_instanced_arrays") ||
- ctxInfo.hasExtension("GL_EXT_instanced_arrays"));
- }
-
if (kGL_GrGLStandard == standard) {
fDirectStateAccessSupport = ctxInfo.hasExtension("GL_EXT_direct_state_access");
} else {
@@ -1221,7 +1210,6 @@ SkString GrGLCaps::dump() const {
r.appendf("GL_ARB_imaging support: %s\n", (fImagingSupport ? "YES": "NO"));
r.appendf("Two Format Limit: %s\n", (fTwoFormatLimit ? "YES": "NO"));
r.appendf("Vertex array object support: %s\n", (fVertexArrayObjectSupport ? "YES": "NO"));
- r.appendf("Instanced drawing support: %s\n", (fInstancedDrawingSupport ? "YES": "NO"));
r.appendf("Direct state access support: %s\n", (fDirectStateAccessSupport ? "YES": "NO"));
r.appendf("Debug support: %s\n", (fDebugSupport ? "YES": "NO"));
r.appendf("Multisample disable support: %s\n", (fMultisampleDisableSupport ? "YES" : "NO"));
diff --git a/src/gpu/gl/GrGLCaps.h b/src/gpu/gl/GrGLCaps.h
index 026ae23fb7..c8fad0ade6 100644
--- a/src/gpu/gl/GrGLCaps.h
+++ b/src/gpu/gl/GrGLCaps.h
@@ -209,9 +209,6 @@ public:
/// Is there support for Vertex Array Objects?
bool vertexArrayObjectSupport() const { return fVertexArrayObjectSupport; }
- /// Is there support for glDraw*Instanced and glVertexAttribDivisor?
- bool instancedDrawingSupport() const { return fInstancedDrawingSupport; }
-
/// Is there support for GL_EXT_direct_state_access?
bool directStateAccessSupport() const { return fDirectStateAccessSupport; }
@@ -363,7 +360,6 @@ private:
bool fImagingSupport : 1;
bool fTwoFormatLimit : 1;
bool fVertexArrayObjectSupport : 1;
- bool fInstancedDrawingSupport : 1;
bool fDirectStateAccessSupport : 1;
bool fDebugSupport : 1;
bool fES2CompatibilitySupport : 1;