diff options
author | dmurph@chromium.org <dmurph@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-18 22:53:31 +0000 |
---|---|---|
committer | dmurph@chromium.org <dmurph@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-18 22:53:31 +0000 |
commit | baa5a89286a0d55e331a779ee6b2f2b5161252b2 (patch) | |
tree | 379b3801ee97cd17433805dd1c8e96bae9b70b22 /ui | |
parent | 6c8e0471391c2061644e1eb1ec2808f2d23a1bea (diff) | |
download | chromium_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-x | ui/gl/generate_bindings.py | 8 | ||||
-rw-r--r-- | ui/gl/gl_interface.h | 11 |
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; |