summaryrefslogtreecommitdiffstats
path: root/gpu
Commit message (Collapse)AuthorAgeFilesLines
* Use shared memory to update the renderer's view of the command buffer state.jbauman@chromium.org2012-02-155-0/+185
| | | | | | | | | | | | The renderer can't receive UpdateState messages while it's executing javascript or NaCl, causing it to eventually flushsync once it fills up the command buffer or transfer buffer. To avoid this, share a piece of memory between the renderer and gpu process that the GPU can asynchronously update the state. A 4-slot asynchronous communication mechanism is used so that the renderer always receives a consistent copy of the state that was put in by the GPU process. BUG= TEST= Review URL: http://codereview.chromium.org/9380037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122034 0039d316-1c4b-4281-b951-d872f2087c98
* Add AsyncFlush when transferbuffer is > a certain sizegman@chromium.org2012-02-148-23/+114
| | | | | | | | | | | | TEST=unit tests BUG=113241 R=jbauman@chromium.org Review URL: http://codereview.chromium.org/9387014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121849 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for ANGLE_instanced_arraysjbauman@chromium.org2012-02-1422-54/+1416
| | | | | | | | | | | | We require ARB_instanced_arrays or ANGLE_intanced_arrays to support this. BUG=93148 TEST= Review URL: http://codereview.chromium.org/9374006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121838 0039d316-1c4b-4281-b951-d872f2087c98
* Stop using base::rand in GPU processgman@chromium.org2012-02-101-2/+6
| | | | | | | | | | | | | | Does not work with sandbox apparently TEST=ran gpu_unittests BUG=113542 R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9375028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121375 0039d316-1c4b-4281-b951-d872f2087c98
* Added a flag gles2_cmd_decoder.cc so the unit tests can turn off all the LOG ↵gman@chromium.org2012-02-103-2/+21
| | | | | | | | | | | | | | | | | messages of synthesized GL errors. The unit tests are specifically testing the errors are generated so they don't need the messages. The messages are still on for other code since any users of that code in Chromium have a bug if they see a log message. R=evan@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/9372031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121366 0039d316-1c4b-4281-b951-d872f2087c98
* Combine ANGLE_instanced_arrays pointers with othersjbauman@chromium.org2012-02-101-9/+0
| | | | | | | | | | | | Reduces duplicate effort needed to use the functions. BUG= TEST= Review URL: http://codereview.chromium.org/9375023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121350 0039d316-1c4b-4281-b951-d872f2087c98
* Fix use-after-free in ~TextureInfopiman@chromium.org2012-02-093-0/+33
| | | | | | | | | | | | | In some paths, the TextureInfo (refcounted) may outlive the TextureManager, accessing a stale pointer in its destructor. This fixes it. BUG=chromium-os:25634 TEST=pepper flash, reload videos many times. Review URL: http://codereview.chromium.org/9374004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121188 0039d316-1c4b-4281-b951-d872f2087c98
* Add gl bindings for ANGLE_instanced_arrays and ARB_instanced_arraysjbauman@chromium.org2012-02-091-0/+18
| | | | | | | | | | BUG=93148 TEST= Review URL: http://codereview.chromium.org/9348046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121112 0039d316-1c4b-4281-b951-d872f2087c98
* Fix OpenGL ES 2.0 conformance test supportgman@chromium.org2012-02-082-2/+3
| | | | | | | | | | | | TEST=ran OpenGL ES 2.0 conformance tests BUG=none R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9307045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120900 0039d316-1c4b-4281-b951-d872f2087c98
* Swizzle Uniform Locationsgman@chromium.org2012-02-0710-165/+377
| | | | | | | | | | | | TEST=unit tests and ran OpenGL ES 2.0 conformance tests BUG=106062 R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9309047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120743 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove even more dead switches.thestig@chromium.org2012-02-071-2/+2
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/9310105 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120737 0039d316-1c4b-4281-b951-d872f2087c98
* Fix TexImage2D clearing too agressivelygman@chromium.org2012-02-075-12/+125
| | | | | | | | | | | | TEST=unit tests and WebGL conformance test BUG=112668 R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9307102 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120721 0039d316-1c4b-4281-b951-d872f2087c98
* Added CommandBuffer::GetLastError.apatrick@chromium.org2012-02-012-2/+16
| | | | | | | | | | This is equivalent to GetLastState().error. It saves copying 6 ints. This is temporary until skia does not invoke MakeCurrent for every GL call. BUG==112187 Review URL: http://codereview.chromium.org/9314020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120022 0039d316-1c4b-4281-b951-d872f2087c98
* Change PluginWindowHandle to AcceleratedWidget in ui/gfx/glpiman@chromium.org2012-02-015-10/+10
| | | | | | | | | | BUG=104551 TEST=compile Review URL: http://codereview.chromium.org/9160012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119990 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert 119430 - Make transferbuffer increase in size dynamically"gman@chromium.org2012-01-2717-1300/+2155
| | | | | | | | | | | | | This reverts commit 2f38c45427c68fe731c1f5c05256b6c141a6a590. BUG=101431 TEST= TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/9121057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119509 0039d316-1c4b-4281-b951-d872f2087c98
* Force the GPU process to reschedule itself after a timeout so it responds to ↵apatrick@chromium.org2012-01-272-4/+61
| | | | | | | | | IPCs. BUG=111514 Review URL: https://chromiumcodereview.appspot.com/9295021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119504 0039d316-1c4b-4281-b951-d872f2087c98
* Remove placeholder commandsgman@chromium.org2012-01-276-153/+6
| | | | | | | | | | | | TEST=none BUG=none R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9290068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119481 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 119430 - Make transferbuffer increase in size dynamicallykinuko@chromium.org2012-01-2717-2155/+1300
| | | | | | | | | | | | | TEST=unit tests BUG=101431 Review URL: http://codereview.chromium.org/9113069 TBR=gman@chromium.org Review URL: https://chromiumcodereview.appspot.com/9298005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119436 0039d316-1c4b-4281-b951-d872f2087c98
* Make transferbuffer increase in size dynamicallygman@chromium.org2012-01-2717-1300/+2155
| | | | | | | | | | TEST=unit tests BUG=101431 Review URL: http://codereview.chromium.org/9113069 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119430 0039d316-1c4b-4281-b951-d872f2087c98
* Move cmd buffer functions to txt file.gman@chromium.org2012-01-272-173/+181
| | | | | | | | | | | | | | | This is to get > 80 char lines out of a .py file so gclint will not complain TEST=none BUG=none R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9235075 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119413 0039d316-1c4b-4281-b951-d872f2087c98
* Remove command buffer command id tests etc..gman@chromium.org2012-01-2712-926/+209
| | | | | | | | | | | | | | | The command buffer is no longer a public API so it's not important that the cmd ids be static. TEST=none BUG=none R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9288083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119362 0039d316-1c4b-4281-b951-d872f2087c98
* Quick fix to resolve a heap corruption in shader translator.zmo@chromium.org2012-01-261-4/+12
| | | | | | | | | | | For the long run, we should modify the ANGLE interface to also return size for mapped_name, so we can just construct the string with a size parameter. BUG=110559 TEST=test in the bug tracker, no more heap corruption R=gman Review URL: https://chromiumcodereview.appspot.com/9113066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119172 0039d316-1c4b-4281-b951-d872f2087c98
* Clear the backbuffer on initialization in GLES2DecoderImplgman@chromium.org2012-01-252-1/+9
| | | | | | | | | | TEST=unit tests BUG=110352 Review URL: http://codereview.chromium.org/9195022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119140 0039d316-1c4b-4281-b951-d872f2087c98
* Ask the GLSurface for the real service ID of the backbuffer.backer@chromium.org2012-01-201-6/+6
| | | | | | | | | | | | The real FBO ID of the backbuffer may not be 0 (on OSX and Linux Aura). It's a mistake to assume so. BUG=none TEST=none Review URL: http://codereview.chromium.org/9226018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118518 0039d316-1c4b-4281-b951-d872f2087c98
* Do a flip instead of a blit when possible.backer@chromium.org2012-01-202-19/+43
| | | | | | | | | | | If the offscreen buffer is not multisampled and the context was not created requesting that the backbuffer be preserved on SwapBuffers, we can flip instead of blit on the swap. BUG=91426 TEST=by hand using simple_vertex_shader_ppapi requesting EGL_BUFFER_PRESERVED and EGL_BUFFER_DESTROYED; confirmed that offscreen_target_buffer_preserved_ == true for WebGL (although WebGL seems to not hit this path anymore) Review URL: https://chromiumcodereview.appspot.com/9249017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118437 0039d316-1c4b-4281-b951-d872f2087c98
* Code cleanup.backer@chromium.org2012-01-193-31/+5
| | | | | | | | | | | | Seems these callbacks aren't needed anymore. BUG=none TEST=bots stay green; by hand with simple_vertex_shader_ppapi Review URL: http://codereview.chromium.org/9253020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118344 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r118525 / Re-land r118240 - the build failure was a flake.dpranke@chromium.org2012-01-1914-35/+80
| | | | | | | | | | | | This change re-enables building gles2_c_lib as a component. TBR=gman@chromium.org BUG=107735 TEST=waterfall stays green Review URL: https://chromiumcodereview.appspot.com/9150022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118263 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r118240 - gles_2_c_lib as a component.dpranke@chromium.org2012-01-1914-80/+35
| | | | | | | | | | | | Broke compile on windows. TBR=gman@chromium.org BUG=107735 TEST=waterfall greens up again Review URL: https://chromiumcodereview.appspot.com/9264003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118252 0039d316-1c4b-4281-b951-d872f2087c98
* Fix RenderbufferManager to handle deleted objectsgman@chromium.org2012-01-193-13/+48
| | | | | | | | | | | | TEST=unit tests BUG=110198 R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9253027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118243 0039d316-1c4b-4281-b951-d872f2087c98
* Fix BufferManager's handling of deleted buffers.gman@chromium.org2012-01-195-71/+112
| | | | | | | | | | | | | | | | The BufferManager was originally designed assuming you can't use a deleted buffer. Now that you can there were some bugs. TEST=unit tests BUG=110198 R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9252032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118242 0039d316-1c4b-4281-b951-d872f2087c98
* This change makes gles2_c_lib work as a component. It introduces a ↵dpranke@chromium.org2012-01-1914-35/+80
| | | | | | | | | | | | | gles2_c_lib_export.h file, and ensures that all of the GL shim symbols are exported properly. This also fixes a couple of prototype issues in glTexStorage2DEXT and glEnableFeatureCHROMIUM along the way. R=gman@chromium.org TEST=waterfall, specifically platform/chromium/compositing/accelerated-drawing tests don't crash Review URL: https://chromiumcodereview.appspot.com/8956051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118240 0039d316-1c4b-4281-b951-d872f2087c98
* Fix TextureManager optimizations.gman@chromium.org2012-01-199-577/+604
| | | | | | | | | | | | | | | | | | | | | | The issue was the texture manager was originaly written assuming you could not use deleted textures. Now that we allow using deleted textures (per OpenGL ES), textures that get manipulated after being removed from the TextureManager would mess up it's bookkeeping. So no every TextureInfo has a pointer to it's manager. On destruction it will call into the TextureManager to update the bookkeeping. That means all TextureInfos have to be deleted before the TextureManager. R=apatrick@chromium.org BUG=109900 TEST=unit tests Review URL: http://codereview.chromium.org/9211008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118189 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Stop freeing the command buffer when a tab goes to the background. gman@chromium.org2012-01-181-0/+1
| | | | | | | | | | | | | | This essentially reverts functionality" This reverts commit 95bba3796b53af298d6ebbd133e148d6579c3bdc. BUG=103989,108305,108176 TEST=none Review URL: http://codereview.chromium.org/9211017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118140 0039d316-1c4b-4281-b951-d872f2087c98
* Add cmd line switch to make compileShader always succeed.gman@chromium.org2012-01-183-2/+12
| | | | | | | | | | | | | | | | This is so we can test WebGL Conformance tests since the GLSL spec 1.0.17 10.27 says that compileShader can succeed for bad shaders as long as linkProgram doesn't link. TEST=ran OpenGL ES 2.0 conformance tests BUG=110478 R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9242016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118022 0039d316-1c4b-4281-b951-d872f2087c98
* Add --enable-gpu-debugging to call glGetError after every command in the ↵gman@chromium.org2012-01-145-9/+59
| | | | | | | | | | | | command buffer. TEST=none BUG=107299 Review URL: http://codereview.chromium.org/8994013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117775 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert 116821 - Make StrictSharedIdHandler free its unused ids."gman@chromium.org2012-01-122-2/+26
| | | | | | | | | | | | | | Now that the command buffer no-op if the GPU process crashes this CL should work again BUG=109575,109330 TEST=Ran gpu_tests mentioned in bug TBR=zmo@chromium.org Review URL: http://codereview.chromium.org/9187032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117334 0039d316-1c4b-4281-b951-d872f2087c98
* Fix GLES2 Conformance test supportgman@chromium.org2012-01-111-25/+24
| | | | | | | | | | | | TEST=ran GLES2 Conformance tests BUG=none R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9166034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117295 0039d316-1c4b-4281-b951-d872f2087c98
* Make GLES2Implementation handl failed allocationgman@chromium.org2012-01-114-11/+211
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This passes all the current unit tests I'll write more tests to check this stuff but I want to get it in the tree asap to see if it stops the crashes Note. This is step 2 of 4 Step 1 was doing the same for GLES2CmdHelper and CommandBufferHelper Step 2 is this Step 3 is make these trigger lost context Step 4 is write tests TEST=none BUG=109694 false to NULL Make GLES2CmdHelper and CommandBufferHelper handle failed allocation This passes all the current unit tests. I'll write more tests to check this stuff but I want to get it the tree asap to see if it stop the crashes Note. This is only step 1 of about 4 steps Step 2 is make GLES2Implementation do the same Step 3 is make both of these trigger lost context Step 4 is write tests. TEST=none BUG=109694 R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9168022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117204 0039d316-1c4b-4281-b951-d872f2087c98
* Make GLES2CmdHelper and CommandBufferHelper handle failed allocationgman@chromium.org2012-01-116-584/+1092
| | | | | | | | | | | | | | | | | | | | | This passes all the current unit tests. I'll write more tests to check this stuff but I want to get it the tree asap to see if it stop the crashes Note. This is only step 1 of about 4 steps Step 2 is make GLES2Implementation do the same Step 3 is make both of these trigger lost context Step 4 is write tests. TEST=none BUG=109694 R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9166017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@117135 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 116821 - Make StrictSharedIdHandler free its unused ids.zmo@google.com2012-01-092-27/+3
| | | | | | | | | | | | | TEST=none BUG=109330,109575 Review URL: http://codereview.chromium.org/9109030 TBR=gman@chromium.org Review URL: http://codereview.chromium.org/9147001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116854 0039d316-1c4b-4281-b951-d872f2087c98
* Make StrictSharedIdHandler free its unused ids.gman@chromium.org2012-01-072-3/+27
| | | | | | | | | | TEST=none BUG=109330 Review URL: http://codereview.chromium.org/9109030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116821 0039d316-1c4b-4281-b951-d872f2087c98
* Move paint aggregator and the completion callback factory.brettw@chromium.org2012-01-061-0/+1
| | | | | | | | | | | [Reland of 116281] Move paint aggregator and the completion callback factory to the ppapi/helpers directory since they're not strictly wrappers. Review URL: http://codereview.chromium.org/9030001 Review URL: http://codereview.chromium.org/9122012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116759 0039d316-1c4b-4281-b951-d872f2087c98
* Remove task.h and finish base::Bind() migration.ajwong@chromium.org2012-01-061-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Over 341 CLs, in ~3 months, touching 3251 unique files! Top 5 most CLs: (121) jhawkins ( 45) dcheng ( 24) achuith ( 23) csilv ( 12) tfarina ( 12) groby ~1000 files touched: (918) jhawkins 100+ files touched: (486) ajwong (385) willchan (372) dcheng (126) csilv (123) fischman (112) sergeyu 49+ files touched: (65) tfarina (57) acolwell (52) adamk (49) tzik BUG=35223 TEST=existing Review URL: http://codereview.chromium.org/9114020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116748 0039d316-1c4b-4281-b951-d872f2087c98
* Bind to eglCreateImageKHR and eglDestroyImageKHR when KHR_image_base is ↵apatrick@chromium.org2012-01-061-1/+4
| | | | | | | | | | | | advertised by EGL. At the moment we only bind to them if KHR_image (a superset) is advertised. Because we determine to which extension each entry point belongs by parsing the header files and those entry points are not listed for KHR_image_base, I had to add some code to the autogenerator script to to add extra extensions for each entry point. Review URL: http://codereview.chromium.org/9111039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116640 0039d316-1c4b-4281-b951-d872f2087c98
* Coverity: Add some NULL checks.thestig@chromium.org2012-01-051-5/+5
| | | | | | | | | | CID=101669 BUG=none TEST=none Review URL: http://codereview.chromium.org/8989027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116578 0039d316-1c4b-4281-b951-d872f2087c98
* Undo GL_EXT_texture_storage disable, fixup internal format for non-GLES2.jbates@chromium.org2012-01-043-49/+24
| | | | | | | | | | | | Desktop GL does not support BGRA as an internal format for glTexStorage, but GLES2 does. Since we provide an ES2 implementation to client code, we need to convert BGRA to RGBA when running on top of non-ES2 GL implementations. BUG=107782 TEST=see bug for manual test Review URL: http://codereview.chromium.org/9008071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116378 0039d316-1c4b-4281-b951-d872f2087c98
* Track shared memory used by GPU processgman@chromium.org2012-01-044-29/+25
| | | | | | | | | | | | TEST=DCHECK BUG=79762 R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9027016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116366 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 116281 - Move paint aggregator and the completion callback factory.brettw@chromium.org2012-01-041-1/+0
| | | | | | | | | | | Move paint aggregator and the completion callback factory to the ppapi/helpers directory since they're not strictly wrappers. Review URL: http://codereview.chromium.org/9030001 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/9086003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116284 0039d316-1c4b-4281-b951-d872f2087c98
* Move paint aggregator and the completion callback factory.brettw@chromium.org2012-01-041-0/+1
| | | | | | | | Move paint aggregator and the completion callback factory to the ppapi/helpers directory since they're not strictly wrappers. Review URL: http://codereview.chromium.org/9030001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116281 0039d316-1c4b-4281-b951-d872f2087c98
* Input latency performance test that uses tracing (retry)jbates@chromium.org2012-01-041-3/+8
| | | | | | | | | | | | | | Original review: http://codereview.chromium.org/8883005/ This CL adds a new gyp target called performance_browser_tests to run the new input latency test as a browser test. See the comments in latency_tests.cc for an overview of how latency is measured. TBR=jbates@chromium.org Review URL: http://codereview.chromium.org/9077001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116271 0039d316-1c4b-4281-b951-d872f2087c98