summaryrefslogtreecommitdiffstats
path: root/chrome/gpu
Commit message (Collapse)AuthorAgeFilesLines
* - Extracted platform specific code from GLES2 command decoder to platform ↵apatrick@chromium.org2010-04-091-1/+1
| | | | | | | | | | | | | specific GLContext classes. - GLContext encapsulates management of GL contexts on each platform. - ReadPixels uses actual current window size to validate source rectangle. TEST=trybots, running Pepper 3D and WebGL demos on all platforms BUG=none Review URL: http://codereview.chromium.org/1605014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44129 0039d316-1c4b-4281-b951-d872f2087c98
* Implemented offscreen rendering path for GLES2CmdDecoder on Linux.kbr@google.com2010-03-311-0/+32
| | | | | | | | | | | With these changes, WebGL runs in the sandbox on Linux. BUG=29120 TEST=ran WebGL demos in sandbox on Linux Review URL: http://codereview.chromium.org/1540004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43235 0039d316-1c4b-4281-b951-d872f2087c98
* Split GpuProcessHost into GpuProcessHostUIShim, which runs on the UIkbr@google.com2010-03-303-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | thread, and GpuProcessHost, which now runs on the IO thread and derives from ChildProcessHost. This split was necessary in order to service synchronous messages from the renderer process. Moved message handlers for GPU messages from renderer to browser from BrowserRenderProcessHost to ResourceMessageFilter. Stopped sending multiple ViewHostMsg_EstablishGpuChannel messages from the same renderer if the connection was already established. Resetting the channel was causing failures in Send, and every other page reload containing WebGL content to fail. This cleanup will allow further simplification in the GPU process, but this is being left for a subsequent CL. Fixed bug in sandboxing of GPU process. Fixed latent bugs in cleanup code in GpuChannel and GpuChannelHost. Fixed crashes in ChildProcessHost if resource_dispatcher_host_ was NULL. Fixed apparent latent race conditions in creation of BackingStoreProxy and VideoLayerProxy. With these changes, WebGL content is running in the sandbox on both Mac and Windows. Linux support will be added in a following CL. BUG=29120 TEST=ran WebGL demos on Mac and Windows Review URL: http://codereview.chromium.org/1546001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43029 0039d316-1c4b-4281-b951-d872f2087c98
* Added command buffer implementation of WebGL which runs in the sandbox.kbr@google.com2010-03-272-0/+7
| | | | | | | | | | | | | | | | | | | | | | Added synchronous initialization of the channel to the GPU process, needed to obey WebGL startup semantics. There are problems with this on the Windows platform which will be addressed via refactoring in the GpuProcessHost in a subsequent CL. Implemented offscreen rendering code path in GGL / GLES2CmdDecoder for Mac OS X. This new code path is not yet complete for all platforms and is still being stress tested. The previous in-process WebGL implementation is currently used when the sandbox is disabled; it will be removed in a subsequent CL. A one-line code change in WebKit is needed after this CL lands to enable the new code path. BUG=29120 TEST=ran WebGL demos on command buffer implementation on Mac Review URL: http://codereview.chromium.org/1328001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42879 0039d316-1c4b-4281-b951-d872f2087c98
* Calling OpenGL from the renderer processapatrick@chromium.org2010-03-256-69/+153
| | | | | | | | | | | | | | - Added ability for renderer processes to render to a real window (Windows only so far). - Added ability to create offscreen frame buffer objects that can be resized later. - OpenGL context can have a "parent" context that can access its last swapped back buffer through a texture ID. - Moved code to establish GPU channel from RenderWidget to RenderThread. - Changed way service size command buffer object lifetimes are managed. TEST=trybot and visual verification that OpenGL can clear the browser window to magenta. BUG=none Review URL: http://codereview.chromium.org/1136006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42679 0039d316-1c4b-4281-b951-d872f2087c98
* Workaround for I915 graphics cards which have horrible GL shader support.scherkus@chromium.org2010-03-252-0/+19
| | | | | | | | | | | | | | Summary: - GLEW doesn't load the GL shader functions, so we have to load them ourselves - Replace our varying vec2 with glTexCoord[0].st - Replace our uniform mat3 with manual matrix multiplication BUG=33329 TEST=try it out on anything with an I915 Review URL: http://codereview.chromium.org/1219006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42659 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed bugs in GPU process startup on POSIX platforms. Addedkbr@google.com2010-03-232-0/+15
| | | | | | | | | | | | --gpu-startup-dialog command line option to allow debugging of GPU process. BUG=none TEST=none (tested manually in development workspace) Review URL: http://codereview.chromium.org/1095005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42375 0039d316-1c4b-4281-b951-d872f2087c98
* Remove dependency from webkit on chrome/common by moving files to src/app.pinkerton@chromium.org2010-03-195-7/+7
| | | | | | | | BUG=37985 TEST=no functional change. Review URL: http://codereview.chromium.org/1060001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42101 0039d316-1c4b-4281-b951-d872f2087c98
* Move more files to toplevel gfx.ben@chromium.org2010-03-191-1/+1
| | | | | | | | | TBR=darin BUG=none TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42071 0039d316-1c4b-4281-b951-d872f2087c98
* Move some more files to toplevel gfx dir.ben@chromium.org2010-03-175-5/+5
| | | | | | | | | TBR=darin BUG=none TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41812 0039d316-1c4b-4281-b951-d872f2087c98
* Move base/gfx contents to gfx/ben@chromium.org2010-03-142-2/+2
| | | | | | | | | TBR=darin BUG=none TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41559 0039d316-1c4b-4281-b951-d872f2087c98
* Added support for opening a GPU command buffer from a renderer processes ↵apatrick@chromium.org2010-03-057-1/+495
| | | | | | | | | | | | through a GPU channel. Probably only works in windows only so far. TEST=none BUG=none Review URL: http://codereview.chromium.org/657046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40783 0039d316-1c4b-4281-b951-d872f2087c98
* Basic GPU accelerated video rendering.scherkus@chromium.org2010-03-033-5/+294
| | | | | | | | | | | Fragment shader is used for YUV to RGB conversion. No actual layering yet, so the video is still rendered on top of everything else. BUG=33329 TEST=Watch some <video> with --enable-video-layering --enable-gpu-rendering Review URL: http://codereview.chromium.org/661430 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40538 0039d316-1c4b-4281-b951-d872f2087c98
* Laying down the groundwork for GPU video layers.scherkus@chromium.org2010-03-024-0/+105
| | | | | | | | | | | This gets --enable-video-layering working when using the GPU backing store. No actual visuals yet, just IPC message passing and a lot of NOTIMPLEMENTED messages. BUG=33329 TEST=try it out and see if you get lots of NOTIMPLEMENTED messages corresponding with video playback Review URL: http://codereview.chromium.org/661344 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40434 0039d316-1c4b-4281-b951-d872f2087c98
* Add scrolling to the GPU-accelerated backing store. This also fixes some bugsbrettw@chromium.org2010-01-285-13/+167
| | | | | | | | | | | | | | | | | | | in the regular painting mode and adds handling for expose events. Accelerated tabs now seem to look and behave properly as far as I can tell. Scrolling works by keeping a secondary texture which the current backing store is painted into. To save copies and excess texture creation, the current texture and the newly generated one are just swapped whan scrolling completes. Scrolling does not actually trigger painting to the screen. This is because scrolling is always followed by a paint to the exposed area, which then triggers copying the GPU backing store to the screen. BUG=none TEST=none Review URL: http://codereview.chromium.org/552207 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37409 0039d316-1c4b-4281-b951-d872f2087c98
* Hopefully fix the Linux build for real. I didn't realize *_X86 wasn't definedbrettw@chromium.org2010-01-261-1/+1
| | | | | | | | | | on X86_64. BUG=none TEST=none Review URL: http://codereview.chromium.org/555097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37094 0039d316-1c4b-4281-b951-d872f2087c98
* Fix stupid error for Linux build.brettw@chromium.org2010-01-261-1/+1
| | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/555096 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37093 0039d316-1c4b-4281-b951-d872f2087c98
* Fix the ARM build which can't find OpenGL. This adds a new define which I usebrettw@chromium.org2010-01-265-9/+33
| | | | | | | | | | | | to detect X and GL related build options. On ARM, this means we don't compile the accelerated backing store even though its Linux. BUG=none TEST=none Review URL: http://codereview.chromium.org/546144 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37091 0039d316-1c4b-4281-b951-d872f2087c98
* Create initial GPU backing store in the GPU process for X windows applications.brettw@chromium.org2010-01-2615-39/+619
| | | | | | | | | | | | | | | | | | | | | | | | | | | This gets the window from the RenderWidgetHostViewGtk and just does OpenGL calls directly into it. There are a lot of bugs, especially around expose events, which aren't really processed at all, and also tab teardown and reparenting. The new backing store defaults to off. This does some refactoring of the existing Windows GPU process backing store implementation to make some of it sharable by this Linux verion. This removes some previously defunct in-process GL backing store code and moves it to the GPU process. This patch does some refactoring around how child processes are created using zygoes or not. I found there were many places where a command line would be checked with special logic to know whether to enable zygote code or not. I tried to unify this so it could be computed once for each process type. This is what most of the changed files in chrome/browser are related to. BUG=none TEST=none Review URL: http://codereview.chromium.org/548112 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37088 0039d316-1c4b-4281-b951-d872f2087c98
* Include breakpad header.oshima@chromium.org2010-01-142-0/+8
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/546044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36277 0039d316-1c4b-4281-b951-d872f2087c98
* Mark the GPU view WS_DISABLED and remove the input event fowarding code whichbrettw@chromium.org2010-01-142-62/+4
| | | | | | | | | | | is no longer necessary. Windows will do the forwarding for us (without our weird bugs) when it finds a disabled child window. TEST=none BUG=none Review URL: http://codereview.chromium.org/543064 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36273 0039d316-1c4b-4281-b951-d872f2087c98
* Add the ability for the GPU process to be used to paint the backing store of abrettw@chromium.org2010-01-139-0/+653
tab. This is the first pass and is currently a bit buggy and incomplete. This patch refactors the backing store to make it a virtual interface which is then implemented by the platform-specific backing stores. This cleans up the multi-platform aspects of the old code, and also makes it possible to create different backing stores (such as ones in another process). This renames the BackingStore::PaintRect function to PaintToBackingStore which clears up what it does. I would often get confused and think that it paints the backing store to the screen. This makes a common way to capture backing store information and adds it to the backing store API. This removed a bunch of ugly ifdefs. This adds the ability for a backing store to specify that the TransportDIB should not be freed by RenderWidgetHost when painting is complete. This is necessary since the out-of-process version needs to use it after the RenderWidget paint function has returned. This pushes up the vector of copy_rect from RenderWidgetHost to the actual BackingStores. This prevents us from sending duplicate data over IPC. It also makes the common non-IPC case more efficient, since we end up setting up various surfaces only once when there are multiple update rects. BUG=none TEST=none Review URL: http://codereview.chromium.org/523028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36075 0039d316-1c4b-4281-b951-d872f2087c98