summaryrefslogtreecommitdiffstats
path: root/gpu
Commit message (Collapse)AuthorAgeFilesLines
* Make gles2_c_lib depend on command_buffer_clientthakis@chromium.org2012-03-081-0/+2
| | | | | | | | | | | | | | gles2_c_lib is missing a dependency on command_buffer_client, since GLES2AttachShader and friends use gpu::CommandBufferHelper::GetSpace(unsigned int). This breaks the work-in-progress components build on mac. (Triggered by https://chromiumcodereview.appspot.com/9581018/) BUG=90078 TEST=none Review URL: http://codereview.chromium.org/9630019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125691 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for GL_EXT_occlusion_query_booleangman@chromium.org2012-03-0837-411/+2524
| | | | | | | | | | TEST=unit tests BUG=88601 Review URL: http://codereview.chromium.org/9555011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125649 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor Pickle Read methods to use higher performance PickleIterator.jbates@chromium.org2012-03-072-3/+3
| | | | | | | | | | | | | | | | There was a lot of redundant error checking and initialization code in all Pickle Read methods because of the void** iterator type. This change replaces the void* iterator with PickleIterator, which encapsulates the read pointer so that less error checking and initialization code is needed for reading. PickleIterator has all the necessary data to do the actual reading. The advantage of having it provide Read methods (as opposed to leaving them solely in the Pickle interface) is that the callers do not need to pass around the const Pickle* once they have a PickleIterator. Followup CLs will refactor the call sites to remove const Pickle* arguments where they are now unnecessary. Then the Pickle::Read* methods can be removed entirely. The alternative approach would have been to change the Pickle::Read methods to non-const and remove the iterator parameter (making Read methods advance an internal read pointer). Unfortunately, the const Read with iterator design is entrenched throughout the chromium code, making this a much more complex change with the same performance outcome. BUG=13108 Review URL: https://chromiumcodereview.appspot.com/9447084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125447 0039d316-1c4b-4281-b951-d872f2087c98
* GPU: Fix the component build when the incremental linker is used.rvargas@google.com2012-03-071-1/+1
| | | | | | | | | BUG=114261 TEST=none TBR=gman Review URL: https://chromiumcodereview.appspot.com/9617033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125277 0039d316-1c4b-4281-b951-d872f2087c98
* Deschedule command buffer while polling fencesjbauman@chromium.org2012-03-062-5/+8
| | | | | | | | | | | Use the normal deschedule path when waiting for fences, and use a separate callback to poll for the fences to complete (not the normal rescheduled command buffer message). This lets us run commands on other command buffers while waiting for this command buffer to finish. BUG=112349 Review URL: http://codereview.chromium.org/9553012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125234 0039d316-1c4b-4281-b951-d872f2087c98
* GPU: Build most of the gpu as a single DLL.rvargas@google.com2012-03-0535-304/+478
| | | | | | | | BUG=114261 TEST=none Review URL: https://chromiumcodereview.appspot.com/9581018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124983 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 124702 - GPU: Buld most of the gpu as a single DLL.rvargas@google.com2012-03-0234-474/+302
| | | | | | | | | | | BUG=114261 TEST=none Review URL: https://chromiumcodereview.appspot.com/9514020 TBR=rvargas@google.com Review URL: https://chromiumcodereview.appspot.com/9582024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124715 0039d316-1c4b-4281-b951-d872f2087c98
* Fails glLinkProgram if two glBindAttribLocation conflicts.zmo@chromium.org2012-03-024-1/+126
| | | | | | | | | | | | | i.e., two declared attributes are bound to the same location, then we fail the link. Many drivers already do this, but not all of them. For example, mesa does not, and it caused memory corruption actually. So we do this in chrome command buffer. BUG=112569 TEST=test case in 112569 R=gman Review URL: https://chromiumcodereview.appspot.com/9570023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124707 0039d316-1c4b-4281-b951-d872f2087c98
* GPU: Buld most of the gpu as a single DLL.rvargas@google.com2012-03-0234-302/+474
| | | | | | | | BUG=114261 TEST=none Review URL: https://chromiumcodereview.appspot.com/9514020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124702 0039d316-1c4b-4281-b951-d872f2087c98
* Expose API for GL_EXT_occlusion_query_boolean but as no-opsgman@chromium.org2012-02-2717-34/+753
| | | | | | | | | | | R=jbauman@chromium.org BUG=88601 TEST=none Review URL: http://codereview.chromium.org/9463027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123766 0039d316-1c4b-4281-b951-d872f2087c98
* Add Pepper support for several GL extensionsjbauman@chromium.org2012-02-261-56/+169
| | | | | | | | | | | | | Add support to the command buffer code generator to generate multiple pepper interfaces, and use that to generate interfaces for ANGLE_instanced_arrays, ANGLE_framebuffer_blit, ANGLE_framebuffer_multisample, CHROMIUM_enable_feature, and CHROMIUM_map_sub. BUG=93148 TEST= Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=123696 Review URL: https://chromiumcodereview.appspot.com/9420017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123702 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 123696 - Add Pepper support for several GL extensionsjbauman@chromium.org2012-02-261-169/+56
| | | | | | | | | | | | | | Add support to the command buffer code generator to generate multiple pepper interfaces, and use that to generate interfaces for ANGLE_instanced_arrays, ANGLE_framebuffer_blit, ANGLE_framebuffer_multisample, CHROMIUM_enable_feature, and CHROMIUM_map_sub. BUG=93148 TEST= Review URL: https://chromiumcodereview.appspot.com/9420017 TBR=jbauman@chromium.org Review URL: https://chromiumcodereview.appspot.com/9466042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123697 0039d316-1c4b-4281-b951-d872f2087c98
* Add Pepper support for several GL extensionsjbauman@chromium.org2012-02-261-56/+169
| | | | | | | | | | | Add support to the command buffer code generator to generate multiple pepper interfaces, and use that to generate interfaces for ANGLE_instanced_arrays, ANGLE_framebuffer_blit, ANGLE_framebuffer_multisample, CHROMIUM_enable_feature, and CHROMIUM_map_sub. BUG=93148 TEST= Review URL: https://chromiumcodereview.appspot.com/9420017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123696 0039d316-1c4b-4281-b951-d872f2087c98
* Fix gcc 4.6 warnings in gpu.tony@chromium.org2012-02-231-1/+1
| | | | | | | | | | | The 10th param is an unsigned int. BUG=None Review URL: http://codereview.chromium.org/9456023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123361 0039d316-1c4b-4281-b951-d872f2087c98
* Fix fake uniforms for Uniform2i, 3i and 4igman@chromium.org2012-02-234-14/+37
| | | | | | | | | | | | These 3 functions were not getting translated from fake to real locations TEST=WebGL conformance tests BUG=115397 Review URL: http://codereview.chromium.org/9455004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123199 0039d316-1c4b-4281-b951-d872f2087c98
* Map uniform locations to fake locations.gman@chromium.org2012-02-229-274/+368
| | | | | | | | | | | | | | | | | | | | | | The issue was there's was a vector of location_info_ that mapped real locations to intern info about the corresponding uniform. It assumed locations would be small numbers but it turns out some drivers use the upper 16 bits of a 32 bit location for the location of array elements. We need lookup to be fast so if we make up fake locations for the client then when the client uses a location we can quickly index into our uniform info and get the real location. TEST=unit tests, ran OpenGL ES 2.0 conformance tests and WebGL tests BUG=112230 R=apatrick@chromium.org Review URL: http://codereview.chromium.org/9372080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122964 0039d316-1c4b-4281-b951-d872f2087c98
* This is the glue that binds the GpuMemoryManager and the WebKit ↵mmocny@chromium.org2012-02-211-0/+1
| | | | | | | | | | | | | | | | WebGraphicsContext3D GL_CHROMIUM_gpu_memory_manager extension. Depends on: 1. https://chromiumcodereview.appspot.com/9289052/ 2. https://bugs.webkit.org/show_bug.cgi?id=77155 TBR=backer BUG=114234 TEST=GpuMemoryManager unittests updated Review URL: https://chromiumcodereview.appspot.com/9234072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122787 0039d316-1c4b-4281-b951-d872f2087c98
* Use shared memory to update the renderer's view of the command buffer state.jbauman@chromium.org2012-02-175-0/+184
| | | | | | | | | | | | | 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= Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=122034 Review URL: https://chromiumcodereview.appspot.com/9380037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122593 0039d316-1c4b-4281-b951-d872f2087c98
* GPU: Split some of the GPU projects to individual gypi files.rvargas@google.com2012-02-177-149/+211
| | | | | | | | | | There should be no change in behavior. BUG=114261 TEST=none Review URL: https://chromiumcodereview.appspot.com/9359055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122413 0039d316-1c4b-4281-b951-d872f2087c98
* GPU: Make gles2_utils a separate component.rvargas@google.com2012-02-164-6/+40
| | | | | | | | BUG=114261 TEST=none Review URL: https://chromiumcodereview.appspot.com/9365070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122373 0039d316-1c4b-4281-b951-d872f2087c98
* Don't call finish if there is nothing to dogman@chromium.org2012-02-152-36/+4
| | | | | | | | | | TEST=none BUG=25971 Review URL: http://codereview.chromium.org/9392025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122183 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 122034 - Use shared memory to update the renderer's view of the ↵zmo@google.com2012-02-155-185/+0
| | | | | | | | | | | | | | | | | command buffer state. 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=114397 TEST= Review URL: http://codereview.chromium.org/9380037 TBR=jbauman@chromium.org Review URL: https://chromiumcodereview.appspot.com/9403022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122116 0039d316-1c4b-4281-b951-d872f2087c98
* 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