diff options
author | Jukka Jylänki <jujjyl@gmail.com> | 2014-01-02 18:00:32 +0200 |
---|---|---|
committer | Jukka Jylänki <jujjyl@gmail.com> | 2014-01-09 20:05:26 +0200 |
commit | c6582b7766e7754032f6fb7aae278f7f77090615 (patch) | |
tree | 6e4303610adc997ade66aca7aaca22c20824b05b /src | |
parent | 08af8ec7784fa0263f7bd319aac42be89d094587 (diff) |
Optimize GL FFP emulation layer by omitting redundant glUseProgram for identical shader programs.
Diffstat (limited to 'src')
-rw-r--r-- | src/library_gl.js | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index 20c7d85e..3e022539 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -2112,8 +2112,9 @@ var LibraryGL = { if (GL.currProgram != program) { GL.immediate.currentRenderer = null; // This changes the FFP emulation shader program, need to recompute that. GL.currProgram = program; + GL.immediate.fixedFunctionProgram = 0; + glUseProgram(program); } - glUseProgram(program); } var glDeleteProgram = _glDeleteProgram; @@ -3745,8 +3746,10 @@ var LibraryGL = { #endif if (!GL.currProgram) { - Module.ctx.useProgram(this.program); - GL.immediate.fixedFunctionProgram = this.program; + if (GL.immediate.fixedFunctionProgram != this.program) { + Module.ctx.useProgram(this.program); + GL.immediate.fixedFunctionProgram = this.program; + } } if (this.modelViewLocation && this.modelViewMatrixVersion != GL.immediate.matrixVersion[0/*m*/]) { |