summaryrefslogtreecommitdiffstats
path: root/gpu
Commit message (Collapse)AuthorAgeFilesLines
* Revert 40490 - Make the pepper 2D flush callback actually function as ↵brettw@chromium.org2010-03-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | advertised. It will now get called asynchronously when the bits are actually copied to the screen, rather than synchronously from inside the paint function. This makes it useful for plugins to use the callback for rate limiting. This also adds a lot of infrastructure for running tests on pepper devices, and includes a unit test for the new flush behavior. I made the existing RenderProcess object an abstract interface and made the existing MockProcess (renamed to be more clear) implement that. This avoids a static cast that would actually crash during a unit test because some code was hardcoded to expect a RenderProcess object. This fixes base's IDMap iterator which has apparently never been used for an IDMap with ownership semantics. TEST=Unit test included BUG=none Review URL: http://codereview.chromium.org/661124 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/660439 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40494 0039d316-1c4b-4281-b951-d872f2087c98
* Make the pepper 2D flush callback actually function as advertised. It will nowbrettw@chromium.org2010-03-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | get called asynchronously when the bits are actually copied to the screen, rather than synchronously from inside the paint function. This makes it useful for plugins to use the callback for rate limiting. This also adds a lot of infrastructure for running tests on pepper devices, and includes a unit test for the new flush behavior. I made the existing RenderProcess object an abstract interface and made the existing MockProcess (renamed to be more clear) implement that. This avoids a static cast that would actually crash during a unit test because some code was hardcoded to expect a RenderProcess object. This fixes base's IDMap iterator which has apparently never been used for an IDMap with ownership semantics. TEST=Unit test included BUG=none Review URL: http://codereview.chromium.org/661124 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40490 0039d316-1c4b-4281-b951-d872f2087c98
* Attempt to submit this CL for the 3rd time. No changes.gman@chromium.org2010-03-0218-559/+747
| | | | | | | | | | | http://src.chromium.org/viewvc/chrome?view=rev&revision=40212 TEST=none BUG=none Review URL: http://codereview.chromium.org/661309 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40329 0039d316-1c4b-4281-b951-d872f2087c98
* Bullshit CL to get the buildbots to try againgman@chromium.org2010-02-271-1/+1
| | | | | | | | | | | because the chrome's flaky ass tests that break random builds TEST=flaky BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40221 0039d316-1c4b-4281-b951-d872f2087c98
* Revert http://codereview.chromium.org/660238gman@chromium.org2010-02-2718-747/+559
| | | | | | | | | TEST=none BUG=none TBR=gman@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40217 0039d316-1c4b-4281-b951-d872f2087c98
* Try again.gman@chromium.org2010-02-271-1/+1
| | | | | | | | | | | It sure would be nice if the trybots caught these issues :-( TBR=apatrick@chromium.org TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40216 0039d316-1c4b-4281-b951-d872f2087c98
* Resumitting reverted CLgman@chromium.org2010-02-2718-559/+747
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/660238 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40212 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for GL break on Linux build.gman@chromium.org2010-02-271-1/+1
| | | | | | | | | TBR=apatrick@google.com TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40204 0039d316-1c4b-4281-b951-d872f2087c98
* "/b/slave/chromium-rel-linux/build/src/gpu/command_buffer/client/gles2_demo_ ↵thakis@chromium.org2010-02-2718-747/+559
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cc.cc:50:warning: 'length' may be used uninitialized in this function" Revert 40193 - Added support for glGetString, glGetShaderSource, glGetProgramInfoLog and glGetShaderInfoLog This turned up lots of issues. * glGetShaderiv needed to be wrapped so it returns the size of the shader the user passed in. Not the munged shader sent to GL. * Another issue that came up is that client side validation is needed to ensure that the client side GLES2Implementation does not generate bad commands. For example, calling glUniform1iv with a negative count would generate a bad command. The service side would see that and think the program was malicious and stop processing commands. So, that means I had to add some client side validation and wrap glGetError on the client side so I can synthisize GL errors there. TEST=lots of unit tests. BUG=none Review URL: http://codereview.chromium.org/661220 TBR=gman@chromium.org Review URL: http://codereview.chromium.org/660229 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40198 0039d316-1c4b-4281-b951-d872f2087c98
* Added support for glGetString, glGetShaderSource,gman@chromium.org2010-02-2718-559/+747
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | glGetProgramInfoLog and glGetShaderInfoLog This turned up lots of issues. * glGetShaderiv needed to be wrapped so it returns the size of the shader the user passed in. Not the munged shader sent to GL. * Another issue that came up is that client side validation is needed to ensure that the client side GLES2Implementation does not generate bad commands. For example, calling glUniform1iv with a negative count would generate a bad command. The service side would see that and think the program was malicious and stop processing commands. So, that means I had to add some client side validation and wrap glGetError on the client side so I can synthisize GL errors there. TEST=lots of unit tests. BUG=none Review URL: http://codereview.chromium.org/661220 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40193 0039d316-1c4b-4281-b951-d872f2087c98
* Adds validation for GLsizei and GLsizeiptr types.gman@chromium.org2010-02-255-24/+671
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/660105 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40048 0039d316-1c4b-4281-b951-d872f2087c98
* Reorangizing the GLES2 code to handle sharedgman@chromium.org2010-02-2533-3692/+4664
| | | | | | | | | | | | | | resources and non-renderable texture situations. I haven't written enough unit tests for this but the CL is already too big. TEST=none BUG=none Review URL: http://codereview.chromium.org/646070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39984 0039d316-1c4b-4281-b951-d872f2087c98
* I just put the code that does not compile on ARM. Trybots will fail because ↵apatrick@chromium.org2010-02-249-19/+59
| | | | | | | | | | | | | | I had to remove these from the CL to make gcl upload properly accept it. A + base\scoped_open_process.h A + chrome\plugin\command_buffer_stub_win.cc TEST=try BUG=none Review URL: http://codereview.chromium.org/661022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39937 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes ReadPixel to have a result so the clientgman@chromium.org2010-02-246-20/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | side can know if it should or should not copy the results. This is the way the spec is. If ReadPixels fails it's not supposed to modify client side memory. Unfortunately that makes it slow because it stalls the GPU pipeline 3 times. The service side has to call glGetError to save up any current errors. That's one stall. Then it calls ReadPixels, another stall, finally calls glGetError a 3rd time to see if ReadPixels succeeded so that it can tell the client side implementation of ReadPixels whether or not to copy memory. We could decide to change the behavior of ReadPixels so it always copies. That wouldn't be spec complient but suspect most developers never expect it to fail and don't count on it not always writing to their memory. TEST=none BUG=none Review URL: http://codereview.chromium.org/652213 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39930 0039d316-1c4b-4281-b951-d872f2087c98
* Client side implementation of ReadPixelsgman@chromium.org2010-02-241-4/+58
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/657032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39826 0039d316-1c4b-4281-b951-d872f2087c98
* Add '-ldl' to Linux targets that use dynamic loader functions.mmoss@google.com2010-02-231-0/+2
| | | | | | | | | | | | | This fixes compilation errors on Karmic, where dlopen() and friends were undefined: http://chrome-buildbot.corp.google.com:8016/builders/Chromium%20Linux%20Builder%20(dbg-shlib)/builds/7777/steps/compile/logs/stdio The missing '-ldl' is papered over on Hardy because pretty much everything depends on gtk, which brings that in through pkg-config, but pkg-config gtk no longer includes '-ldl' on Karmic. Review URL: http://codereview.chromium.org/656014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39754 0039d316-1c4b-4281-b951-d872f2087c98
* Add 3D support for the Mac on Leopard (OS X 10.5) and earlier. This CL usesdspringer@google.com2010-02-235-65/+267
| | | | | | | | | | | | | | | | | FBO rendering with glGetTexImage() into a TransportDIB that is then used as a texture for rendering the final image in the render view in the browser. While not optimal, it works and can be optimized later, after the new GPU process work is completed. This CL also enables stencil buffer support on the Mac. All the Pepper3D demos run on the Mac with these changes. BUG=none TEST=3D rendering unit tests. Review URL: http://codereview.chromium.org/647043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39744 0039d316-1c4b-4281-b951-d872f2087c98
* Add build rules for Pepper 3D demos on the Mac.dspringer@google.com2010-02-232-14/+83
| | | | | | | | | BUG=none TEST=cd gpu.demos; open demos.xcodeproj; select any of the "Run *" targets, then use cmd-b (build). Review URL: http://codereview.chromium.org/652031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39731 0039d316-1c4b-4281-b951-d872f2087c98
* Added check for negative size to CommandBufferService.apatrick@chromium.org2010-02-222-1/+6
| | | | | | | | | TEST=regression test BUG=35931 Review URL: http://codereview.chromium.org/652064 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39635 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 39530 - GPU plugin forwards repaint events to Pepper plugin.apatrick@chromium.org2010-02-209-59/+19
| | | | | | | | | | | | | | | | WM_PAINT results in a call to Pepper repaint callback. Implemented WM_ERASEBKGND to prevent flickering on repaint. Implemented PGL_NO_CONTEXT (copied from EGL spec). This is already reviewed by alokp but unfortunately got entangled with this CL. TEST=none BUG=none Review URL: http://codereview.chromium.org/571018 TBR=alokp@chromium.org Review URL: http://codereview.chromium.org/650100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39535 0039d316-1c4b-4281-b951-d872f2087c98
* GPU plugin forwards repaint events to Pepper plugin.apatrick@chromium.org2010-02-209-19/+59
| | | | | | | | | | | | | WM_PAINT results in a call to Pepper repaint callback. Implemented WM_ERASEBKGND to prevent flickering on repaint. Implemented PGL_NO_CONTEXT (copied from EGL spec). This is already reviewed by alokp but unfortunately got entangled with this CL. TEST=none BUG=none Review URL: http://codereview.chromium.org/571018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39530 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed integer overflow.apatrick@chromium.org2010-02-193-0/+16
| | | | | | | | | TEST=regression tests BUG=35931 Review URL: http://codereview.chromium.org/628004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39503 0039d316-1c4b-4281-b951-d872f2087c98
* Pulled out Callback code into base/callback.h. This is the first step ↵akalin@chromium.org2010-02-1912-2/+12
| | | | | | | | | | | | | towards redoing the Callback interfaces. Added and removed includes as needed. BUG=35223 TEST=trybots Review URL: http://codereview.chromium.org/646061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39419 0039d316-1c4b-4281-b951-d872f2087c98
* Removed redundant conditionals from gpu/demos.gyp.alokp@chromium.org2010-02-171-20/+13
| | | | | | Review URL: http://codereview.chromium.org/601085 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39226 0039d316-1c4b-4281-b951-d872f2087c98
* Updates many commands to require the client to set the gman@chromium.org2010-02-177-23/+383
| | | | | | | | | | | | result->size to 0 or result->success to false before calling the command. TEST=none BUG=none Review URL: http://codereview.chromium.org/612006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39193 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes the issues with Jump, JumpRel, Call, CallRelgman@chromium.org2010-02-172-2/+6
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/614006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39192 0039d316-1c4b-4281-b951-d872f2087c98
* Make SharedMemory use uint32 instead of size_t. This removes the remaining ↵jam@chromium.org2010-02-161-1/+1
| | | | | | | | size_t's from the IPC code. Review URL: http://codereview.chromium.org/581001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39164 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for build breakagegman@chromium.org2010-02-161-7/+7
| | | | | | | | | TEST=none BUG=none TBR=apatrick@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39156 0039d316-1c4b-4281-b951-d872f2087c98
* Adds texture tracking.gman@chromium.org2010-02-1621-538/+1955
| | | | | | | | | | | | | | | | | | I need to add a bunch more unit tests for the TextureManager but this CL is getting large so if you don't mind I'll do that in the next CL. I still need to use the texture tracking at draw time but that's going to require uniform tracking! UGH! Also breaks out a bunch of the tracking classes into their own files. TEST=none BUG=none Review URL: http://codereview.chromium.org/605018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39153 0039d316-1c4b-4281-b951-d872f2087c98
* Reimplemented glShaderSource in preparation for shadergman@chromium.org2010-02-129-97/+284
| | | | | | | | | | | | | | | compiler to make GLSL shaders DesktopGL complient. Shader source is now saved by the decoder because when glGetShaderSource is called we must return the source that was passed, not the munged source. TEST=none BUG=none Review URL: http://codereview.chromium.org/594037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38858 0039d316-1c4b-4281-b951-d872f2087c98
* Implemented linux-specific NPAPI interface for pepper demos.alokp@chromium.org2010-02-111-7/+46
| | | | | | | BUG=26099 Review URL: http://codereview.chromium.org/599020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38727 0039d316-1c4b-4281-b951-d872f2087c98
* A few minor changes to windows implementation on windows.alokp@chromium.org2010-02-101-2/+5
| | | | | | Review URL: http://codereview.chromium.org/601016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38582 0039d316-1c4b-4281-b951-d872f2087c98
* Implemented async flushes for Pepper 3D.apatrick@chromium.org2010-02-091-0/+5
| | | | | | | | | | | Added waitForProgress field to NPDeviceContext3D to select between a flush (that pushes more work to the GPU process and waits for at least some of it to have been completed) and getting the current state as quickly as possible. The previous method of checking to see if the put offset had advanced was incorrect. TEST=trybots BUG=none Review URL: http://codereview.chromium.org/561058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38540 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed GPU unit tests on Mac OS X.kbr@google.com2010-02-0910-28/+67
| | | | | | | | | | | | | | | - Fixed remaining issues with signed/unsigned comparisons, linkage of constants, and unused variables. - Fixed nasty bug where vtbl for GLES2Decoder was changing size during compilation, causing bizarre test failures. - Cleaned up AppKit warnings about no NSAutoreleasePool being present. BUG=none TEST=none (ran GPU unit tests on Mac OS X) Review URL: http://codereview.chromium.org/594004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38473 0039d316-1c4b-4281-b951-d872f2087c98
* Addsgman@chromium.org2010-02-0516-507/+1359
| | | | | | | | | | | | | | | | | glGetActiveAttrib glGetActiveUniform glGetAttachedShaders glGetShaderPrecision TEST=none BUG=none Review URL: http://codereview.chromium.org/577017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38270 0039d316-1c4b-4281-b951-d872f2087c98
* PGL was relying on pthread_key_create not returning zero, which does notsehr@google.com2010-02-051-6/+9
| | | | | | | | | seem to conform to the documented interface. I have added an allocated flag. This is needed to fix NaCl PGL. Review URL: http://codereview.chromium.org/576002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38186 0039d316-1c4b-4281-b951-d872f2087c98
* Implemented window class on linux. Standalone demos are working on linux now.alokp@chromium.org2010-02-043-8/+63
| | | | | | Review URL: http://codereview.chromium.org/565041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38106 0039d316-1c4b-4281-b951-d872f2087c98
* Added support for lost context recovery on the client side. None of our ↵apatrick@chromium.org2010-02-0312-87/+164
| | | | | | | | | | | | | | | | | | | service side GL implementations actually report lost contexts (yet). Added pglGetError to PGL library. pglSwapBuffers returns false on a lost context or other non-recoverable error and pglGetError reports PGL_CONTEXT_LOST. Updated demo plugins to reset their PGL contexts on context lost. Standalone plugins cannot currently recover from lost context because they don't use PGL. Added error code to NPDeviceContext3D for lost context. TEST=none BUG=none Review URL: http://codereview.chromium.org/566021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38039 0039d316-1c4b-4281-b951-d872f2087c98
* Changes necessary to compile gpu demos on linux. It is not functional yet ↵alokp@chromium.org2010-02-037-247/+329
| | | | | | | | | just compiling. BUG=26099 Review URL: http://codereview.chromium.org/552240 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37977 0039d316-1c4b-4281-b951-d872f2087c98
* [GPU] Get GPU process running on the mackbr@google.com2010-02-0313-18/+381
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initial port of GPU process / plugin to Mac OS X. Uses new IOSurface APIs and therefore currently runs only on 10.6. Alternate strategy will need to be devised for 10.5. Slight UI issues remain such as GPU plugins initially showing up in the wrong place on the page. These will be fixed in follow-on bugs. Minimal changes made to command buffer code to get it to compile on Mac OS X. Commented out use of nested anonymous namespaces in gles2_cmd_decoder.cc which were causing the linker to crash with a seg fault. Refactored gyp files so the OS test enabling the GPU plugin is in one place, common.gypi, and other files test only the variable enable_gpu. Slight change to gles2_demo_cc.cc to add some simple animation to verify that updates from the GPU plugin are reaching the screen. Changed Pepper test plugin to use 3D view by default and commented out use of audio context because of recent issues. TEST=none (ran Pepper Test Plugin with 3D view enabled) BUG=http://crbug.com/25988 Review URL: http://codereview.chromium.org/558035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37934 0039d316-1c4b-4281-b951-d872f2087c98
* Implements glGetUniformiv and glGetUniformfv.gman@chromium.org2010-02-036-28/+413
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/566019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37918 0039d316-1c4b-4281-b951-d872f2087c98
* This file was missing from the last CL as it was sittinggman@chromium.org2010-02-022-2/+3
| | | | | | | | | | | | in another CL. Fortunately it didn't seem to break the build. TEST=none BUG=none Review URL: http://codereview.chromium.org/568024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37892 0039d316-1c4b-4281-b951-d872f2087c98
* Change the GLES2Implementation Flush and Finish functionsgman@chromium.org2010-02-022-8/+17
| | | | | | | | | | | | | | | | | | to emluate the GLES2 glFlush and glFinish more correctly. I don't like the fact that the GLES2CmdHelper::Finish autogeneated from glFinish overrides CommandBufferHelper::Finish but I'm not sure I'm feeling like making all those functions start with gl or something and all the fixes required just to avoid that. TEST=none BUG=none Review URL: http://codereview.chromium.org/561012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37863 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed compile/link errors for gpu unit-tests. I had to mostly fix ↵alokp@chromium.org2010-02-025-27/+66
| | | | | | | | signed/unsigned mismatch and link failures due to non-definition of static member variables. I still do not understand why gcc is behaving arbitrarily for only a few static member variables. AFAIK the standard says that static const numeric types do not need to be defined anymore. Review URL: http://codereview.chromium.org/560002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37837 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed compile error for unit-tests on linux. We do not include any glew file ↵alokp@chromium.org2010-02-023-5/+9
| | | | | | | | for unitests. They are mocked in gl_mock.h. gles2_cmd_decoder.cc included x_utils.h which in turn included glxew.h. Review URL: http://codereview.chromium.org/557087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37834 0039d316-1c4b-4281-b951-d872f2087c98
* Moved the initialization of static variable outside the class declaration. ↵alokp@chromium.org2010-02-022-1/+3
| | | | | | | | Necessary to make gcc happy. Review URL: http://codereview.chromium.org/567005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37766 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes a broken build (missing newline).rohitrao@chromium.org2010-02-011-1/+1
| | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/562002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37756 0039d316-1c4b-4281-b951-d872f2087c98
* Renamed ParseError -> Error, parse_error -> error, kParseNoError -> ↵apatrick@chromium.org2010-02-0131-1410/+1410
| | | | | | | | | | | | kNoError, commandBufferEntries -> commandBufferSize. Added NPDevice3DContextError enumeration. TEST=none BUG=none Review URL: http://codereview.chromium.org/558054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37751 0039d316-1c4b-4281-b951-d872f2087c98
* Remove trailing comma to allow compilation with Native Client's higher ↵sehr@google.com2010-02-011-1/+1
| | | | | | | | warning level. Review URL: http://codereview.chromium.org/552266 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37749 0039d316-1c4b-4281-b951-d872f2087c98
* Redesigned CommandBuffer and NPDevice3D interfaces.apatrick@chromium.org2010-01-2914-364/+237
| | | | | | | | | | | | All status is now in the Device3D context. It can be retreived with fewer IPC messages. It can be now be accessed off the main plugin thread, which is necessary to run OpenGL in another thread. TEST=none BUG=none Review URL: http://codereview.chromium.org/555020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37545 0039d316-1c4b-4281-b951-d872f2087c98