summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/command_buffer_service.cc
Commit message (Collapse)AuthorAgeFilesLines
* Move InsertSyncPoint to GLES2Interfacepiman@chromium.org2013-03-081-0/+5
| | | | | | | | | | | | This is needed to allow Pepper to use mailboxes rather than parenting to integrate with the compositor. BUG=164095 Review URL: https://chromiumcodereview.appspot.com/12581004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186869 0039d316-1c4b-4281-b951-d872f2087c98
* Send token to client immediatelygman@chromium.org2013-01-251-0/+1
| | | | | | | | | BUG=none Review URL: https://chromiumcodereview.appspot.com/12051076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178813 0039d316-1c4b-4281-b951-d872f2087c98
* Add CommandBuffer::GetLastTokengman@chromium.org2013-01-251-0/+4
| | | | | | | | | | | | | | GetLastToken is potentially more up to date then GetLastState().token but is also potentially slower. Functions that need to know the last token can call GetLastToken. Functions that need to know error/get will still call GetLastState BUG=none Review URL: https://chromiumcodereview.appspot.com/12040090 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178763 0039d316-1c4b-4281-b951-d872f2087c98
* Made the registration and deletion of transfer buffers async.apatrick@chromium.org2012-12-211-16/+37
| | | | | | | | | | | | | | Added a thread safe way to duplicate a shared memory handle for the GPU process. Removed synchronous IPC to set the command buffer shared state buffer. Removed CreateTransferBuffer IPC. Removed request_id arg from transfer buffer IPCs. It wasn't being used. BUG=166229 Review URL: https://chromiumcodereview.appspot.com/11640008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174303 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 172805apatrick@google.com2012-12-141-28/+13
| | | | | | | | | | | | | | | | | > Made the registration and deletion of transfer buffers async. > > Added an IPC to request multiple transfer buffer IDs up front. > > Every renderer command buffer proxy gets some IPCs immediately after initialization. > > Removed request_id arg from CreateTransferBuffer. It wasn't being used. > > Review URL: https://chromiumcodereview.appspot.com/11308296 TBR=apatrick@chromium.org Review URL: https://codereview.chromium.org/11578020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173018 0039d316-1c4b-4281-b951-d872f2087c98
* Made the registration and deletion of transfer buffers async.apatrick@chromium.org2012-12-131-13/+28
| | | | | | | | | | | | Added an IPC to request multiple transfer buffer IDs up front. Every renderer command buffer proxy gets some IPCs immediately after initialization. Removed request_id arg from CreateTransferBuffer. It wasn't being used. Review URL: https://chromiumcodereview.appspot.com/11308296 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172805 0039d316-1c4b-4281-b951-d872f2087c98
* Make context groups share a TextureBufferManagergman@chromium.org2012-06-011-4/+4
| | | | | | | | | | TEST=unit tests, and ran WebGL Conformance tests BUG=129803 Review URL: https://chromiumcodereview.appspot.com/10441140 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139981 0039d316-1c4b-4281-b951-d872f2087c98
* Separate management of shared memory from CmdBufService to separate classgman@chromium.org2012-05-261-112/+10
| | | | | | | | | | | | | | | This is a step on the way to making this per ContextGroup instead of per context TEST=unit tests BUG=129803 R=apatrick@chromium.org Review URL: https://chromiumcodereview.appspot.com/10448030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139196 0039d316-1c4b-4281-b951-d872f2087c98
* Use shared memory to update the renderer's view of the command buffer state.jbauman@chromium.org2012-02-171-0/+18
| | | | | | | | | | | | | 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
* Revert 122034 - Use shared memory to update the renderer's view of the ↵zmo@google.com2012-02-151-18/+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-151-0/+18
| | | | | | | | | | | | 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
* Track shared memory used by GPU processgman@chromium.org2012-01-041-3/+16
| | | | | | | | | | | | 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
* Coverity fixes for uninitialized varsgroby@chromium.org2011-12-291-1/+2
| | | | | | | | | | CID=102348, 102334, 100563, 102456, 102012, 101525, 101526, 101330, 101329 TEST=none Review URL: http://codereview.chromium.org/9006028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116003 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert 113479 - Revert "Revert 113250 - Add ↵gman@chromium.org2011-12-121-57/+30
| | | | | | | | | | | | | | CommandBuffer::SetGetBuffer"" This reverts commit 84677847c10d0319d8d996aea9b310add85c0bd3. TEST=ran browser tests on OSX BUG=103989 TBR=apatrick@chromiu.org Review URL: http://codereview.chromium.org/8919014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114114 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 113479 - Revert "Revert 113250 - Add CommandBuffer::SetGetBuffer"rsimha@google.com2011-12-081-30/+57
| | | | | | | | | | | | | | | | | | Reason for revert: Bot redness. See http://build.chromium.org/p/chromium/builders/Mac10.6%20Tests%20%281%29/builds/15717 Original checkin notes: This reverts commit bd45bd252aeb8babac62547a5c605fbf64287cd3. TEST=ran webkit tests in DRT and webgl tests in chrome BUG=103989 Review URL: http://codereview.chromium.org/8758026 TBR=gman@chromium.org Review URL: http://codereview.chromium.org/8865008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113512 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert 113250 - Add CommandBuffer::SetGetBuffer"gman@chromium.org2011-12-071-57/+30
| | | | | | | | | | | This reverts commit bd45bd252aeb8babac62547a5c605fbf64287cd3. TEST=ran webkit tests in DRT and webgl tests in chrome BUG=103989 Review URL: http://codereview.chromium.org/8758026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113479 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 113250 - Add CommandBuffer::SetGetBufferdglazkov@chromium.org2011-12-061-22/+57
| | | | | | | | | | | | | | | | | | | | | | | As well as remove CommandBuffer::GetRingBuffer and change CommandBuffer::Initialize Before this change the service allocated and managed the command buffer. After this change the client uses CreateTransferBuffer, GetTransferBuffer, end potentially DeleteTransferBufffer to manage the command buffer. Another CL will actually make the client delete the command buffer on demand. TEST=unit tests and run some samples and a NaCl 3D game BUG=103989 Review URL: http://codereview.chromium.org/8566059 TBR=gman@chromium.org Review URL: http://codereview.chromium.org/8827005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113255 0039d316-1c4b-4281-b951-d872f2087c98
* Add CommandBuffer::SetGetBuffergman@chromium.org2011-12-061-57/+22
| | | | | | | | | | | | | | | | | | | | As well as remove CommandBuffer::GetRingBuffer and change CommandBuffer::Initialize Before this change the service allocated and managed the command buffer. After this change the client uses CreateTransferBuffer, GetTransferBuffer, end potentially DeleteTransferBufffer to manage the command buffer. Another CL will actually make the client delete the command buffer on demand. TEST=unit tests and run some samples and a NaCl 3D game BUG=103989 Review URL: http://codereview.chromium.org/8566059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113250 0039d316-1c4b-4281-b951-d872f2087c98
* base::Bind() conversion for remaining GPU files.dcheng@chromium.org2011-11-221-13/+10
| | | | | | | | | | BUG=none TEST=trybots Review URL: http://codereview.chromium.org/8586048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111067 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 93066 - Execute all GL commands up to the put offset reported by a ↵apatrick@chromium.org2011-07-211-3/+7
| | | | | | | | | | | each flush.This means glFlush is a barrier that prevents reordering of GL commands issued on different command buffers. I used it to replace latches for synchronizing the rendering of WebGL canvas and Pepper 3D with the accelerated compositor. The primary advantage is it is more robust than latches and there is no possibility of deadlock. It should also be possible for WebGL and Pepper 3D to use it whereas exposing SetLatch and WaitLatch would be dangerous. The calls to SetLatch and WaitLatch are still in webkit but they are no-ops. SetLatch and WaitLatch are completely removed elsewhere.I changed CommandBuffer::FlushSync to Finish to reflect the new semantics. Going forward, I will add a synchronous CommandBuffer::WaitForToken and WaitForAvailableEntries, which should eliminate the need to call Finish unless glFinish is called by the client. The Pepper interface is unchanged because I don't want to break binary compatibility.I fixed a bug where the last read token in CmdBufferHelper was stale after receiving a ReportState IPC. That was causing a redundant synchronous flush in the client side SwapBuffers throttling. I removed Yield because it does not make sense with the new semantics. There is no round robin scheduling.Tested with WebGL on Windows and Mac and checked that 72672 did not regress. Review URL: http://codereview.chromium.org/7466022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93479 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 93066 - Execute all GL commands up to the put offset reported by a ↵apatrick@chromium.org2011-07-201-7/+3
| | | | | | | | | | | each flush.This means glFlush is a barrier that prevents reordering of GL commands issued on different command buffers. I used it to replace latches for synchronizing the rendering of WebGL canvas and Pepper 3D with the accelerated compositor. The primary advantage is it is more robust than latches and there is no possibility of deadlock. It should also be possible for WebGL and Pepper 3D to use it whereas exposing SetLatch and WaitLatch would be dangerous.The calls to SetLatch and WaitLatch are still in webkit but they are no-ops. SetLatch and WaitLatch are completely removed elsewhere.I changed CommandBuffer::FlushSync to Finish to reflect the new semantics. Going forward, I will add a synchronous CommandBuffer::WaitForToken and WaitForAvailableEntries, which should eliminate the need to call Finish unless glFinish is called by the client. The Pepper interface is unchanged because I don't want to break binary compatibility.I fixed a bug where the last read token in CmdBufferHelper was stale after receiving a ReportState IPC. That was causing a redundant synchronous flush in the client side SwapBuffers throttling.I removed Yield because it does not make sense with the new semantics. There is no round robin scheduling.Tested with WebGL on Windows and Mac and checked that 72672 did not regress. Review URL: http://codereview.chromium.org/7253052 TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/7458010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93143 0039d316-1c4b-4281-b951-d872f2087c98
* Execute all GL commands up to the put offset reported by a each flush.This ↵apatrick@chromium.org2011-07-191-3/+7
| | | | | | | | means glFlush is a barrier that prevents reordering of GL commands issued on different command buffers. I used it to replace latches for synchronizing the rendering of WebGL canvas and Pepper 3D with the accelerated compositor. The primary advantage is it is more robust than latches and there is no possibility of deadlock. It should also be possible for WebGL and Pepper 3D to use it whereas exposing SetLatch and WaitLatch would be dangerous.The calls to SetLatch and WaitLatch are still in webkit but they are no-ops. SetLatch and WaitLatch are completely removed elsewhere.I changed CommandBuffer::FlushSync to Finish to reflect the new semantics. Going forward, I will add a synchronous CommandBuffer::WaitForToken and WaitForAvailableEntries, which should eliminate the need to call Finish unless glFinish is called by the client. The Pepper interface is unchanged because I don't want to break binary compatibility.I fixed a bug where the last read token in CmdBufferHelper was stale after receiving a ReportState IPC. That was causing a redundant synchronous flush in the client side SwapBuffers throttling.I removed Yield because it does not make sense with the new semantics. There is no round robin scheduling.Tested with WebGL on Windows and Mac and checked that 72672 did not regress. Review URL: http://codereview.chromium.org/7253052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93066 0039d316-1c4b-4281-b951-d872f2087c98
* Detect and expose loss of OpenGL context using GL_ARB_robustness.kbr@chromium.org2011-07-141-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (This CL was originally reviewed under http://codereview.chromium.org/7331020/ . The only difference is the removal of an #include from command_buffer.h that was accidentally left in and which caused a significant increase in the number of files containing static initializers, presumably because of the dependent #include of <iostream>.) This initial patch changes the Linux port to use GLX_ARB_create_context_robustness when available, and tests periodically whether the context has been lost after each draw call and when making the context current. The detection of context loss also works with EGL and ANGLE, although it always reports an unknown reset status. WebKit changes will follow which test the reset status and determine what to do in response; for example, the policy might be to never restore a WebGL context which was lost (due to a GPU reset) and which was determined to be the guilty context. Tested manually with WebGL stress tests and verified on Linux and Windows that in at least some situations it is possible to detect guilty contexts and shut down the associated WebGL application. Some precision of this detection was recently lost and will need to be fixed in following CLs. Also updated and ran GPU unit tests. BUG=88106 TEST=none (tested manually; try servers) R=gman,apatrick,piman Review URL: http://codereview.chromium.org/7362005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92453 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 92429 - Detect and expose loss of OpenGL context using ↵kbr@chromium.org2011-07-131-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GL_ARB_robustness. (Regressed static initalizer size on Linux -- will need to reexamine code to understand why.) This initial patch changes the Linux port to use GLX_ARB_create_context_robustness when available, and tests periodically whether the context has been lost after each draw call and when making the context current. The detection of context loss also works with EGL and ANGLE, although it always reports an unknown reset status. WebKit changes will follow which test the reset status and determine what to do in response; for example, the policy might be to never restore a WebGL context which was lost (due to a GPU reset) and which was determined to be the guilty context. Tested manually with WebGL stress tests and verified on Linux and Windows that in at least some situations it is possible to detect guilty contexts and shut down the associated WebGL application. Some precision of this detection was recently lost and will need to be fixed in following CLs. Also updated and ran GPU unit tests. BUG=88106 TEST=none (tested manually; try servers) Review URL: http://codereview.chromium.org/7331020 TBR=kbr@chromium.org Review URL: http://codereview.chromium.org/7346032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92434 0039d316-1c4b-4281-b951-d872f2087c98
* Detect and expose loss of OpenGL context using GL_ARB_robustness.kbr@chromium.org2011-07-131-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | This initial patch changes the Linux port to use GLX_ARB_create_context_robustness when available, and tests periodically whether the context has been lost after each draw call and when making the context current. The detection of context loss also works with EGL and ANGLE, although it always reports an unknown reset status. WebKit changes will follow which test the reset status and determine what to do in response; for example, the policy might be to never restore a WebGL context which was lost (due to a GPU reset) and which was determined to be the guilty context. Tested manually with WebGL stress tests and verified on Linux and Windows that in at least some situations it is possible to detect guilty contexts and shut down the associated WebGL application. Some precision of this detection was recently lost and will need to be fixed in following CLs. Also updated and ran GPU unit tests. BUG=88106 TEST=none (tested manually; try servers) Review URL: http://codereview.chromium.org/7331020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92429 0039d316-1c4b-4281-b951-d872f2087c98
* Send message to renderer on command buffer errorjbauman@chromium.org2011-06-071-0/+7
| | | | | | | | | | | If there's a command buffer error, no more swap buffers callbacks will be sent, which could cause the renderer to hang forever. Prevent that by sending a message to the renderer, which will invoke the lost context callback. BUG= TEST= Review URL: http://codereview.chromium.org/7024011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@88097 0039d316-1c4b-4281-b951-d872f2087c98
* Rework FlushSync to return early if commands have been processed since the ↵piman@google.com2011-04-281-4/+16
| | | | | | | | | | | last update BUG=80480 TEST= Review URL: http://codereview.chromium.org/6883179 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83442 0039d316-1c4b-4281-b951-d872f2087c98
* implemented latch support in renderer process. this corresponds with a ↵jbates@chromium.org2011-04-121-3/+27
| | | | | | | | | | | | | webkit patch. https://bugs.webkit.org/show_bug.cgi?id=58003 BUG=72671 TEST=see attachment in bug for test. only green should be seen. Review URL: http://codereview.chromium.org/6810009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81295 0039d316-1c4b-4281-b951-d872f2087c98
* Validate that a GPU transfer buffer's size is valid when it is registered ↵apatrick@chromium.org2011-03-191-28/+27
| | | | | | | | | | | | | | rather than when it is mapped. This cleaned up the code a little because it now doesn't check whether the memory is mapped every time the address and size are requested. Also fixed a very unlikely memory leak of a SharedMemory object. TEST=WebGL/compositor works, try BUG=none Review URL: http://codereview.chromium.org/6688048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78778 0039d316-1c4b-4281-b951-d872f2087c98
* Moved creation of GPU command buffer shared memory into the browser process.apatrick@chromium.org2011-02-281-19/+38
| | | | | | | | | | | This is to allow the GPU process to be sandboxed on all platforms. TEST=try, run WebGL app on win and mac. BUG=none Review URL: http://codereview.chromium.org/6588029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76307 0039d316-1c4b-4281-b951-d872f2087c98
* Moved creation of GPU transfer buffers into the browser process.apatrick@chromium.org2011-02-241-15/+36
| | | | | | | | | | | | | Transfer buffer creation was previously done in the GPU process. This is one step required to sandbox the GPU process. Rather than the GPU process opening a renderer process's handle by PID, which can't been done when sandboxed on Windows, the browser process passes the handle to the GPU process via the renderer process. TEST=try BUG=none Review URL: http://codereview.chromium.org/6557006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75980 0039d316-1c4b-4281-b951-d872f2087c98
* Make CommandBuffer::Flush asynchronous, and add CommandBuffer::FlushSync ↵piman@google.com2011-01-141-1/+5
| | | | | | | | | | | | | with former semantics. Also force a flush when the buffer is getting full. BUG=none TEST=gpu_unittests, some webgl content, some 3d css content, pepper flash Review URL: http://codereview.chromium.org/6316002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71514 0039d316-1c4b-4281-b951-d872f2087c98
* Fix up SharedMemory implementation so that it is more equivalent on Windows ↵dmaclach@chromium.org2010-10-271-7/+6
| | | | | | | | | | | | | vs Posix and enforces exclusive creates. Clean up some naming to make it clearer what size you are getting by changing max_size to created_size. BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/4034006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64097 0039d316-1c4b-4281-b951-d872f2087c98
* shared_memory: remove wstrings, fix callers.evan@chromium.org2010-09-291-2/+2
| | | | | | | | | BUG=23581 TEST=compiles Review URL: http://codereview.chromium.org/3555002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60985 0039d316-1c4b-4281-b951-d872f2087c98
* Added lots of logging to the GPU code.apatrick@chromium.org2010-09-201-2/+12
| | | | | | | | | | | This should help us diagnose initialization failures. TEST=try BUG=none Review URL: http://codereview.chromium.org/3380010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59970 0039d316-1c4b-4281-b951-d872f2087c98
* Step 1: Changing CommandBufferHelper to only use a portiongman@chromium.org2010-05-121-9/+8
| | | | | | | | | | | | | | | | | of the command buffer. This brought out the fact that there were lots of places in the code mixing size in bytes with num command buffer entries. This fixes most of those issues. No public interface uses num command buffer entries except gpu::CommandBuffer::State where it makes sense. TEST=relying on unit tests, conformance tests and chrome BUG=none Review URL: http://codereview.chromium.org/2008014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47041 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed a command buffer wrap around bug.gman@chromium.org2010-03-081-1/+1
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/668212 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40910 0039d316-1c4b-4281-b951-d872f2087c98
* Added check for negative size to CommandBufferService.apatrick@chromium.org2010-02-221-1/+2
| | | | | | | | | 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
* Fixed integer overflow.apatrick@chromium.org2010-02-191-0/+3
| | | | | | | | | 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-191-0/+1
| | | | | | | | | | | | | 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
* 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
* Renamed ParseError -> Error, parse_error -> error, kParseNoError -> ↵apatrick@chromium.org2010-02-011-4/+4
| | | | | | | | | | | | 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
* Redesigned CommandBuffer and NPDevice3D interfaces.apatrick@chromium.org2010-01-291-37/+19
| | | | | | | | | | | | 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
* Removing the dependency of command-buffer client on base/task.h. This file ↵alokp@chromium.org2010-01-091-5/+5
| | | | | | | | | | includes base/logging.h which is difficult to compile under nacl. base-logging is stubbed in gpu by gpu/common/logging.h. BUG=26104 Review URL: http://codereview.chromium.org/527009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35860 0039d316-1c4b-4281-b951-d872f2087c98
* Added Pepper 3D device that instantiates the GPU plugin and sends GLES2 ↵apatrick@google.com2009-12-221-11/+33
| | | | | | | | | | | | | | | | | | | | | | | commands to it via a command buffer. Added API for managing buffers to Pepper 3D device. Removed DCHECK from WebPluginImpl::SetWindow that checks against a windowless plugin being given a window handle. Please check this! Now an initially windowless plugin instance gets a handle when it requests a Pepper 3D context. Perhaps the window handle should be concealed from the underlying plugin isntance. Removed enable_gpu gyp variable and C macro. GPU code is always built on windows but not mac or linux. It is enabled at runtime with the --enable-gpu-plugin switch. Redesigned CommandBuffer interface so it exposes shared memory through a Buffer. This was necessary because Pepper has no notion of shared memory handles. The Buffer exposes the shared memory as both a handle (through base::SharedMemory) and the mapped address and size. Refactored CommandBufferEngine so mapped shared memory addresses and sizes are returned with a single call rather than two separate calls. Added 3D demo to pepper test plugin. TEST=try servers BUG=none Review URL: http://codereview.chromium.org/367002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35185 0039d316-1c4b-4281-b951-d872f2087c98
* Added CommandBufferProxy, CommandBufferStub. Replaced NPAPI with IPC for ↵apatrick@google.com2009-12-121-10/+13
| | | | | | | | | | | synchronous messages. WebPluginDelegateImpl can instantiate a command buffer. Removed remaining dependencies on NPAPI. TEST=none BUG=none Review URL: http://codereview.chromium.org/465040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34397 0039d316-1c4b-4281-b951-d872f2087c98
* First batch of GCC fixes for GPU code.scherkus@chromium.org2009-12-101-2/+4
| | | | | | | | | | | | This patch addresses signed/unsigned and 64-bit errors. The remaining fixes are more involved requiring changes/ifdefs to get around HWND. There's also a ton of "unused variable" warnings in the auto-generated code. BUG=n/a TEST=n/a Review URL: http://codereview.chromium.org/492009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34296 0039d316-1c4b-4281-b951-d872f2087c98
* Landing the GPU process and command buffer code again, this time with a DEPS ↵apatrick@google.com2009-11-251-0/+159
| | | | | | | | | | file with the necessary include rules. TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33006 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting the rest of 32952apatrick@google.com2009-11-241-159/+0
| | | | | | | | TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32970 0039d316-1c4b-4281-b951-d872f2087c98
* Branched gpu process and command buffer code into Chrome tree. Fixed up ↵apatrick@google.com2009-11-241-0/+159
paths and other minor changes to make it work in the Chrome tree. Will remove copy from O3D tree shortly. Only works in Windows currently. TEST=none BUG=none Review URL: http://codereview.chromium.org/436017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32952 0039d316-1c4b-4281-b951-d872f2087c98