summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authordmurph@chromium.org <dmurph@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-18 22:53:31 +0000
committerdmurph@chromium.org <dmurph@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-18 22:53:31 +0000
commitbaa5a89286a0d55e331a779ee6b2f2b5161252b2 (patch)
tree379b3801ee97cd17433805dd1c8e96bae9b70b22 /ui
parent6c8e0471391c2061644e1eb1ec2808f2d23a1bea (diff)
downloadchromium_src-baa5a89286a0d55e331a779ee6b2f2b5161252b2.zip
chromium_src-baa5a89286a0d55e331a779ee6b2f2b5161252b2.tar.gz
chromium_src-baa5a89286a0d55e331a779ee6b2f2b5161252b2.tar.bz2
Current status of patch:
- In-memory cache - maximum in memory limit (currently 6mb) - lru eviction - Cache includes saving the attribute + uniform mappings Wiring: - Added bindings for glProgramBinary and glGetProgramBinary - Plumbed the shader cache from gl_channel_manager to program_manager Refactoring: - moved the meat of DoCompile to the ProgramManager New: - added field to ShaderInfo to store if we have a possible pending cache compile - exposed attrib_map and uniform_map in ShaderInfo for the cache - program_cache base class with in-memory status storage - Simple memory_program_cache implementation, stores programs with lru eviction - Added caching logic to DoCompileShader in gles2_cmd_decoder and Link in program_manager Design doc: https://docs.google.com/document/d/1Vceem-nF4TCICoeGSh7OMXxfGuJEJYblGXRgN9V9hcE/edit BUG=88572 Review URL: https://chromiumcodereview.appspot.com/10534173 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147328 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rwxr-xr-xui/gl/generate_bindings.py8
-rw-r--r--ui/gl/gl_interface.h11
2 files changed, 19 insertions, 0 deletions
diff --git a/ui/gl/generate_bindings.py b/ui/gl/generate_bindings.py
index 5e7eccd..448d3a6 100755
--- a/ui/gl/generate_bindings.py
+++ b/ui/gl/generate_bindings.py
@@ -296,6 +296,10 @@ GL_FUNCTIONS = [
'names': ['glGetIntegerv'],
'arguments': 'GLenum pname, GLint* params', },
{ 'return_type': 'void',
+ 'names': ['glGetProgramBinary', 'glGetProgramBinaryOES'],
+ 'arguments': 'GLuint program, GLsizei bufSize, GLsizei* length, '
+ 'GLenum* binaryFormat, GLvoid* binary', },
+{ 'return_type': 'void',
'names': ['glGetProgramiv'],
'arguments': 'GLuint program, GLenum pname, GLint* params', },
{ 'return_type': 'void',
@@ -424,6 +428,10 @@ GL_FUNCTIONS = [
'names': ['glPolygonOffset'],
'arguments': 'GLfloat factor, GLfloat units', },
{ 'return_type': 'void',
+ 'names': ['glProgramBinary', 'glProgramBinaryOES'],
+ 'arguments': 'GLuint program, GLenum binaryFormat, '
+ 'const GLvoid* binary, GLsizei length', },
+{ 'return_type': 'void',
'names': ['glQueryCounter'],
'arguments': 'GLuint id, GLenum target', },
{ 'return_type': 'void',
diff --git a/ui/gl/gl_interface.h b/ui/gl/gl_interface.h
index af150de..2cdf5ba 100644
--- a/ui/gl/gl_interface.h
+++ b/ui/gl/gl_interface.h
@@ -272,6 +272,12 @@ class GL_EXPORT GLInterface {
virtual void GetIntegerv(GLenum pname, GLint* params) = 0;
+ virtual void GetProgramBinary(GLuint program,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLenum* binaryFormat,
+ GLvoid* binary) = 0;
+
virtual void GetProgramiv(GLuint program, GLenum pname, GLint* params) = 0;
// TODO(gman): Implement this
@@ -398,6 +404,11 @@ class GL_EXPORT GLInterface {
virtual void PolygonOffset(GLfloat factor, GLfloat units) = 0;
+ virtual void ProgramBinary(GLuint program,
+ GLenum binaryFormat,
+ const GLvoid* binary,
+ GLsizei length) = 0;
+
virtual void QueryCounter(GLuint id, GLenum target) = 0;
virtual void ReadBuffer(GLenum src) = 0;