summaryrefslogtreecommitdiffstats
path: root/content/gpu
Commit message (Collapse)AuthorAgeFilesLines
* Fix gpu acceleration with --in-process-gpu and --single-process modes.sievers@google.com2011-05-271-1/+5
| | | | | | | | | | | | With recent changes that have moved gpu message handling in the browser to the IO thread (and moved the handling of messages between gpu and renderer, that are mediated by the browser, to GpuProcessHost), the routing for such messages was broken when running the gpu thread (rather than process). The new approach is to always instantiate GpuProcessHost (even when running a gpu thread only) and have a real IPC channel between host and gpu thread. This makes the 'in-process' GPU code work similar to what the renderer does when running --single-process. Note that --single-process mode is potentially still a bit fragile with this, since ChildProcess and ChildThread are currently written to only allow a single static instance in one process (it would be better to instantiate GpuProcess and RenderProcess simultaneously), so ambiguous calls to access e.g. the main thread are possible. Review URL: http://codereview.chromium.org/7054005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86958 0039d316-1c4b-4281-b951-d872f2087c98
* [Re-instate r86681 by reverting its revert in r86687.]fischman@chromium.org2011-05-265-1169/+0
| | | | | | | | | | | | | | | Take 2: Updated OMX decoder for recent PPAPI changes, and added to the build. Had to move from content/gpu to content/common/gpu to allow gpu_video_service.cc to depend on the decoder. Removed some dead code and did some random cleanup while I was in there. BUG=none TEST=chrome compiles on cros/arm! Review URL: http://codereview.chromium.org/6992087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86841 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 86681 - Updated OMX decoder for recent PPAPI changes, and added to ↵fischman@chromium.org2011-05-255-0/+1169
| | | | | | | | | | | | | | | | | | the build. Had to move from content/gpu to content/common/gpu to allow gpu_video_service.cc to depend on the decoder. Removed some dead code and did some random cleanup while I was in there. BUG=none TEST=chrome compiles on cros/arm! Review URL: http://codereview.chromium.org/7057027 TBR=fischman@chromium.org Review URL: http://codereview.chromium.org/6979017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86687 0039d316-1c4b-4281-b951-d872f2087c98
* Updated OMX decoder for recent PPAPI changes, and added to the build.fischman@chromium.org2011-05-255-1169/+0
| | | | | | | | | | | | | Had to move from content/gpu to content/common/gpu to allow gpu_video_service.cc to depend on the decoder. Removed some dead code and did some random cleanup while I was in there. BUG=none TEST=chrome compiles on cros/arm! Review URL: http://codereview.chromium.org/7057027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86681 0039d316-1c4b-4281-b951-d872f2087c98
* Virtual destructors should have virtual keyword.hans@chromium.org2011-05-252-2/+2
| | | | | | | | | | | | | | | | | Make sure user-declared virtual destructors always have the virtual keyword. The Clang style-check plugin will check for this soon. No functionality change: virtual is only added to destructors that are already implicitly virtual. Also fix a couple of in-line destructor definitions. BUG=83408 TEST=none Review URL: http://codereview.chromium.org/7064033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86587 0039d316-1c4b-4281-b951-d872f2087c98
* GLContext no longer holds a pointer to a GLSurface.apatrick@chromium.org2011-05-231-12/+19
| | | | | | | | | | This is part of an ongoing effort to treat GL contexts and GL surfaces as independent entities. TEST=run WebGL on mac, windows and linux, trybots BUG=none Review URL: http://codereview.chromium.org/7021014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86332 0039d316-1c4b-4281-b951-d872f2087c98
* Updated video decoder IPC to use PPB_Buffer_Dev's new support for SharedMemory. fischman@chromium.org2011-05-232-11/+20
| | | | | | | | | | | | Plumb through from renderer to GPU process' OMX decoder. BUG=none TEST=trybots Review URL: http://codereview.chromium.org/7034040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86302 0039d316-1c4b-4281-b951-d872f2087c98
* Fix the EOS hang and jerkiness in playback.vhiremath@nvidia.com2011-05-231-3/+5
| | | | | | | | | | | | | | | | | | | | | - output_picture_ should be cleared only after freeing the output buffers. - pop out free_input_buffers_ in Flush. This was missing and creates failure during FreeInputBuffers() - new picture_buffers to be pushed back into assigned_picture_buffers_. Otherwise display gets wrong texture These changes will fix the hang at EOS. BUG=none TEST=gpu_video_tests Review URL: http://codereview.chromium.org/7017006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86254 0039d316-1c4b-4281-b951-d872f2087c98
* Move scoped_temp_dir and scoped_native_library back from base/memory to base.thakis@chromium.org2011-05-191-3/+3
| | | | | | | | | | | It looks like they got moved accidentally in http://codereview.chromium.org/6714032 BUG=none TEST=none Review URL: http://codereview.chromium.org/7048007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86010 0039d316-1c4b-4281-b951-d872f2087c98
* Populating the Gles2TextureToEglImageTranslator class.vhiremath@nvidia.com2011-05-132-0/+114
| | | | | | | | | | | | | | | | App will create /Display/Context/Surface required for this method. App will create the new method for Gles2TextureToEglImageTranslator and pass it with some mechanism to OmxVideoDecodeAccelerator. OmxVideoDecodeAccelerator will use this method to create eglImage handles. Review URL: http://codereview.chromium.org/6900048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85311 0039d316-1c4b-4281-b951-d872f2087c98
* Implement VideoDecoder IPC hooks from plugin to GPU processvrk@google.com2011-05-132-294/+0
| | | | | | | | | | | | | This implements the communciation layers from the Renderer process to the GPU process and back for the AcceleratedVideoDecoder PPAPI interfaces. BUG=NONE TEST=NONE Review URL: http://codereview.chromium.org/6876004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85296 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 85013 - Split GLContext::Create*GLContext into ↵apatrick@chromium.org2011-05-122-22/+21
| | | | | | | | | | | | GLSurface::Create*GLSurface plus a surface type independent GLContext::CreateGLContext TEST=try, including layout tests BUG=none Review URL: http://codereview.chromium.org/7013037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85207 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Reland 85013 - Split GLContext::Create*GLContext into ↵antonm@chromium.org2011-05-122-21/+22
| | | | | | | | | GLSurface::Create*GLSurface plus a surface type independent GLContext::CreateGLContext". git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85124 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 85013 - Split GLContext::Create*GLContext into ↵apatrick@chromium.org2011-05-122-22/+21
| | | | | | | | | | | GLSurface::Create*GLSurface plus a surface type independent GLContext::CreateGLContext. TEST=webgl on windows and mac, trybots BUG=none Review URL: http://codereview.chromium.org/6997003 Review URL: http://codereview.chromium.org/7015016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85081 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 85013 - Split GLContext::Create*GLContext into ↵apatrick@chromium.org2011-05-112-22/+13
| | | | | | | | | | | | | GLSurface::Create*GLSurface plus a surface type independent GLContext::CreateGLContext. TEST=webgl on windows and mac, trybots BUG=none Review URL: http://codereview.chromium.org/6997003 TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/7015003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85016 0039d316-1c4b-4281-b951-d872f2087c98
* Split GLContext::Create*GLContext into GLSurface::Create*GLSurface plus a ↵apatrick@chromium.org2011-05-112-13/+22
| | | | | | | | | | surface type independent GLContext::CreateGLContext. TEST=webgl on windows and mac, trybots BUG=none Review URL: http://codereview.chromium.org/6997003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85013 0039d316-1c4b-4281-b951-d872f2087c98
* New change for OmxVideoDecodeAccelerator class.vhiremath@nvidia.com2011-05-062-0/+1043
| | | | | | | | | | | | This will use the h/w omx decoder in push model. Newly designed for using with PPAPIs. This has been tested with FakeTest "gpu_video_tests" TEST=Run gpu_video_tests on ARM device. Review URL: http://codereview.chromium.org/6894046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84389 0039d316-1c4b-4281-b951-d872f2087c98
* Add third_party/openmax to content/gpu/DEPS.fischman@google.com2011-05-061-0/+1
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/6930053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84366 0039d316-1c4b-4281-b951-d872f2087c98
* Added about:gpucleanamarinichev@chromium.org2011-05-042-0/+8
| | | | | | | | | | | It removes all contexts from the GPU process. Can rename it to what was originally suggested in the bug, about:gpuclean seemed a little more consistent with other about:gpu* URLs we have. BUG=75215 TEST=tried it Review URL: http://codereview.chromium.org/6870019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84119 0039d316-1c4b-4281-b951-d872f2087c98
* Switch IPC::ChannelProxy to use MessageLoopProxy instead of MessageLoop. ↵jam@chromium.org2011-05-021-1/+1
| | | | | | | | This allows us to remove usage of the IOThread object, and generally makes IPC::ChannelProxy more robust for future uses. Review URL: http://codereview.chromium.org/6901146 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83741 0039d316-1c4b-4281-b951-d872f2087c98
* Move more GPU related files from content/common to content/common/gpu.apatrick@chromium.org2011-04-223-3/+3
| | | | | | | | | | This is just moving files and updating references. There are no functional changes. TEST=trybots BUG=none Review URL: http://codereview.chromium.org/6881072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82715 0039d316-1c4b-4281-b951-d872f2087c98
* Fix diagnostics and log messages in about:gpu.nduca@chromium.org2011-04-221-0/+2
| | | | | | | | BUG=78189 Review URL: http://codereview.chromium.org/6877028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82662 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for base::Closure in the MessageLoop, and reimplement the whole ↵ajwong@chromium.org2011-04-202-9/+6
| | | | | | | | | | | sucker on top of base::Closure. After this, all Task objects that are posted will be wrapped in a closure prior to dispatch. BUG=35223 TEST=unittests. Review URL: http://codereview.chromium.org/6463013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82300 0039d316-1c4b-4281-b951-d872f2087c98
* Collect GPU info on Mac through IO registry for dual GPU systems.zmo@google.com2011-04-201-1/+79
| | | | | | | | | | | | Go through IO Registry to locate PCI based video cards on Mac. If there are two video cards and one of them is Intel, we assume Intel GPU is the integrated one and the other is the discrete one. Chromium GPU process should always use the discrete one (if Mac is handling automatic card switching), and we identify the discrete card in preliminary GPU info collection so we could run through GPU software rendering list and set up the renderer process with approriate GPU feature capabilities. Note that if the IO registry method fails, we fallback to the original "GPU locating through current display" method, so this CL should be pretty safe. BUG=75208,75220 TEST=gpu acceleration is enabled on Mac with Intel/ATI dual GPU. Review URL: http://codereview.chromium.org/6879023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82202 0039d316-1c4b-4281-b951-d872f2087c98
* Enforce no more includes through DEPS. I also added DEPS checking for ↵jam@chromium.org2011-04-181-0/+1
| | | | | | | | | gpu/plugin/worker directories as well. I've moved the breakpad specific code out of content\renderer\renderer_main.cc into chrome\renderer\chrome_render_process_observer.cc. I've also moved the rest of the process-specific initialization from chrome_content_renderer_client.cc there as well, so that all the chrome renderer process init code is one place (some of it existed before chrome_render_process_observer.cc was created). Review URL: http://codereview.chromium.org/6884001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81979 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the last Chrome dependencies from renderer, and enforce no more ↵jam@chromium.org2011-04-181-1/+1
| | | | | | | | includes through DEPS. I also added DEPS checking for gpu/plugin/worker directories as well. I moved the Chrome specific browser tests to the chrome directory, and removed render_widget_unittest since it didn't seem to be testing much (there are tests that test it much more fully). I had to move bindings_policy.h, which ideally would be split into separate pieces so that the content layer only has to know about the content bindings. Given that it's basically an enum, I moved the whole file now since it's used in a lot of places, and the value of turning on DEPS checking is really high. Review URL: http://codereview.chromium.org/6874038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81924 0039d316-1c4b-4281-b951-d872f2087c98
* Inverted dependency between code in content/common/gpu and the ↵apatrick@chromium.org2011-04-151-1/+5
| | | | | | | | | | GpuWatchdogThread class.This completes the split between code in content/gpu, which only ever runs in the GPU process and code in content/common/gpu, which can run in any process, though in practice only the GPU process or the browser process.I updated the DEPS file in content/common to enforce the dependency and prevent code that could run in either process depend on code that should only run in the GPU process.TEST=tryBUG=none TEST=try BUG=none Review URL: http://codereview.chromium.org/6840041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81784 0039d316-1c4b-4281-b951-d872f2087c98
* Draft version of the HW video decode tester and few other changes.scherkus@chromium.org2011-04-143-0/+1191
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Intention is that this tester can be used to decouple HW decode accelerator integration from running the whole Chrome browser. Features: - Independent GUnit executable, which should be possible to use in autotests. - Mimics Renderer process from Gpu video pipeline perspective. * Test bench contains implementation of FakeClient which essentially mimics Renderer process from the GpuVideoDecodeAccelerator's point of view. * FakeClient runs on it's own thread and will communicate with using the IPC messages that are used also within the real use case. * FakeClient will allocate memories using same SharedMemory stuff as the real Renderer code. * Currently reads H.264 Annex B bitstream from file and parses it to NAL units before feeding to the decoder * TODO: Polish and improving the features and configurability. * TODO: GLES texture allocation for textures. - Allows building various test cases and error behaviour as well both on AcceleratedVideoDecoder interface as well as erroneous behaviour from the client. - Allows also checking expected order of calls if we want to enforce certain behaviour across various implementations. Patch by vmr@chromium.org: http://codereview.chromium.org/6720040/ BUG=none TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81663 0039d316-1c4b-4281-b951-d872f2087c98
* Move a bunch of Chrome specific code out of RenderThread, in preparation of ↵jam@chromium.org2011-04-141-2/+2
| | | | | | | | moving it to content. Review URL: http://codereview.chromium.org/6850003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81614 0039d316-1c4b-4281-b951-d872f2087c98
* Split EGLContext in GLContextEGL and GLSurfaceEGL.apatrick@chromium.org2011-04-141-2/+2
| | | | | | | | | | | | | | Surfaces are independent of contexts in GL. To facilitate sharing of surfaces between processes, I have separated them from the notion of contexts because contexts cannot be shared between processes. I have started with EGL. GLContextEGL still has a pointer to a surface and still has some surface specific operations that just forward through to it. Once I have refactored all the GLContext implementations in this way, I will remove these pointers and the surface specific opertations. There will not be "view" and "offscreen" GL contexts. Rather there will be a single context type for each backend which can be made current with a surface that directs output either to a view or offscreen surface. TEST=try, WebGL puppy works BUG=none Review URL: http://codereview.chromium.org/6839008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81512 0039d316-1c4b-4281-b951-d872f2087c98
* Moved TextureTransport into content/common/gpu.apatrick@chromium.org2011-04-133-205/+0
| | | | | | | | | | | | It landed while I was working on the bigger move from content/gpu to content/common/gpu. Also renamed gpu_info_unittest_win.cc to gpu_info_collector_unittest_win.cc because that is what it is. TEST=try BUG=none Review URL: http://codereview.chromium.org/6824050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81344 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a path to gpu_info_unittest_win.cc, which was not moved into ↵rsleevi@chromium.org2011-04-081-1/+1
| | | | | | | | | | | | | | content/common/gpu/ as part of http://crrev.com/80883 TBR=apatrick BUG=none TEST=Win Full builder compiles Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=80902 Review URL: http://codereview.chromium.org/6816050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80905 0039d316-1c4b-4281-b951-d872f2087c98
* Fix buildapatrick@chromium.org2011-04-081-1/+1
| | | | | | | | TEST=compiles BUG=none Review URL: http://codereview.chromium.org/6813037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80885 0039d316-1c4b-4281-b951-d872f2087c98
* Moved code that runs in both the browser and GPU process from content/gpu to ↵apatrick@chromium.org2011-04-0828-2836/+15
| | | | | | | | | | | | | | content/common/gpu. Also renamed GpuRenderThread to GpuChannelManager since that is what it really does. The only remaining dependency from content/common/gpu to content/gpu is gpu_watchdog_thread.h. Once that dependency has been reversed it should be possible to move most or all of the code in content/gpu to chrome/gpu. TEST=build, WebGL works, run by trybots. BUG=none Review URL: http://codereview.chromium.org/6793054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80883 0039d316-1c4b-4281-b951-d872f2087c98
* Collect driver vendor in linux through glXGetClientString.zmo@google.com2011-04-081-1/+34
| | | | | | | | | | | | This helps in the situation where libpci is unavailable: at least we can identify a few vendors. Unfortunately we can not run this in preliminary GPU info collection because gl binding hasn't been initialized yet. BUG=78526 TEST=bots green Review URL: http://codereview.chromium.org/6803024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80876 0039d316-1c4b-4281-b951-d872f2087c98
* Define TransportTexture for 'sharing' texture between gpu and rendererhclam@chromium.org2011-04-064-2/+248
| | | | | | | | | | | | | | | | | The purpose of TransportTexture is to allow creating textures in the gpu process and be used in the renderer process. This is particularly useful for hardware video decoder where the video frames are in the form of textures. Creating these textures has to be originated from the GPU process, they are then used in the renderer process for compositing. This patch defines the class and has comments about its usage. BUG=None TEST=None Review URL: http://codereview.chromium.org/6765020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80715 0039d316-1c4b-4281-b951-d872f2087c98
* Use system constants instead of NULL for unset PID.jeffbailey@chromium.org2011-04-011-3/+2
| | | | | | Review URL: http://codereview.chromium.org/6759048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80225 0039d316-1c4b-4281-b951-d872f2087c98
* Setting last active URL in GPU process for crash reporting. For now this is ↵jbates@chromium.org2011-03-291-0/+3
| | | | | | | | | | | just one URL, because the windows implementation of breakpad is very rigid, and can not easily deal with arbitrary numbers of URLs. In the future, it may be possible to be smart about what URL is reported based on what GPU commands are being processed, but because of the asynchronous nature of GPU commands, it may be more relevant to just use the last loaded URL. BUG=75633 TEST=go to page with gpu content, cause gpu-process to crash, or go to about:gpucrash, then observe URL in crash report Review URL: http://codereview.chromium.org/6733051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79732 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor: Move app/gfx/gl ==> ui/gfx/glbacker@chromium.org2011-03-288-17/+17
| | | | | | | | | | | This is the final patch in the sequence. Note that gl.gyp is introduced because dependency checking on the Mac is done on a per file (rather than per target) basis. BUG=none TEST=trybots Review URL: http://codereview.chromium.org/6722026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79599 0039d316-1c4b-4281-b951-d872f2087c98
* Initialize a few uninitialized members in GPU classes.finnur@chromium.org2011-03-281-0/+1
| | | | | | | | | BUG=None TEST=None CID=12914, 15729, 12761, 8585, 14365, 15761, 14796, 15865. Review URL: http://codereview.chromium.org/6713127 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79544 0039d316-1c4b-4281-b951-d872f2087c98
* Move some files from base to base/memory.levin@chromium.org2011-03-2813-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | raw_scoped_refptr_mismatch_checker.h ref_counted.cc ref_counted.h ref_counted_memory.cc ref_counted_memory.h ref_counted_unittest.cc scoped_callback_factory.h scoped_comptr_win.h scoped_handle.h scoped_native_library.cc scoped_native_library.h scoped_native_library_unittest.cc scoped_nsobject.h scoped_open_process.h scoped_ptr.h scoped_ptr_unittest.cc scoped_temp_dir.cc scoped_temp_dir.h scoped_temp_dir_unittest.cc scoped_vector.h singleton.h singleton_objc.h singleton_unittest.cc linked_ptr.h linked_ptr_unittest.cc weak_ptr.cc weak_ptr.h weak_ptr_unittest.cc BUG=None TEST=Compile Review URL: http://codereview.chromium.org/6714032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
* Removed --no-gpu-sandbox.apatrick@chromium.org2011-03-251-1/+1
| | | | | | | | | | | | It now uses --disable-gpu-sandbox on all platforms. The confusion arose because I didn't know that --no-gpu-sandbox existed when I enabled the sandbox on windows. TEST=try BUG=none R=darin@chromium.org,brettw@chromium.org,jam@chromium.org,ben@chromium.org Review URL: http://codereview.chromium.org/6731029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79348 0039d316-1c4b-4281-b951-d872f2087c98
* GPU process: Add a SEH handler to the compositor window proc.rvargas@google.com2011-03-241-1/+5
| | | | | | | | BUG=63702 TEST=none Review URL: http://codereview.chromium.org/6705017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79326 0039d316-1c4b-4281-b951-d872f2087c98
* Check the GPU watchdog after processing every 3D command.jbauman@chromium.org2011-03-239-14/+40
| | | | | | | | | | | Reduce the chance that a long stream of expensive 3D commands will cause the watchdog to go off by checking the watchdog after every 3D command. BUG=76603 TEST=none Review URL: http://codereview.chromium.org/6715006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79097 0039d316-1c4b-4281-b951-d872f2087c98
* Collect ATI driver version through scanning /etc/ati.zmo@google.com2011-03-221-2/+36
| | | | | | | | | | This will enable us to blacklist only older ATI drivers on linux in the future. BUG=none TEST=about:gpu shows driver version in linux using ATI cards. Review URL: http://codereview.chromium.org/6708055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79040 0039d316-1c4b-4281-b951-d872f2087c98
* This is a thread that runs in the browser process that can issue GL calls ↵apatrick@chromium.org2011-03-218-205/+365
| | | | | | | | | | | | | | | | | | | | | | without going via a command buffer. It is for rendering the browser's chrome, basic compositing, etc. It is not for rendering arbitrary content from, for example, WebGL. It is only enabled with --single-process or --in-process-gpu, the latter only running the GPU "process" as a thread inside the browser process. Eventually, the plan is to add strict validation to ensure it can only run basic white-listed shaders and other restrictions so that the browser's GPU thread can be made available to the renderers' compositors without a command line switch. I split GpuThread into two new classes. GpuChildThread derives from ChildThread and contains stuff that should only happen in a standalone process. I included GPUInfo collection here because if the browser should never need to run that. GpuRenderThread contains stuff that is also needed in the browser process. The GPU thread does not use an IPC channel within the browser process. It still uses IPC messages but posts them directly between message loops. I changed the EstablishGpuChannel messages between the browser and GPU process to not deal with returning the GPUInfo. Now the GPU process just sends it as the first thing it does after handling its Init message. This was to allow the separation of GPUInfo collection (in GpuChildThread) and channel establishment (in GpuRenderThread). TEST=trybots, run webgl with no switches, --single-process and --in-process-gpu, check browser terminates cleanly in all cases. BUG=none Review URL: http://codereview.chromium.org/6677055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78945 0039d316-1c4b-4281-b951-d872f2087c98
* Added OWNERS for content/gpu.apatrick@chromium.org2011-03-211-0/+2
| | | | | | | | | | TEST=none BUG=none R=kbr@chromium.org,darin@chromium.org,brettw@chromium.org,jam@chromium.org,ben@chromium.org,apatrick@chromium.org Review URL: http://codereview.chromium.org/6715012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78938 0039d316-1c4b-4281-b951-d872f2087c98
* Do not put off destroying of the IOSurface in the GPU process.amarinichev@chromium.org2011-03-196-32/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | Evicting old graphics contexts will be done in the GPU process by removing routes from GpuChannel::router_. Doing so on a mac results in an assert when handling GpuCommandBufferMsg_SetWindowSize. The assert was a consequence of how we deal with closed windows. When a window is closed, the browser process sends a message to the GPU process to request that the surface is removed. Rather than doing that immediately, GpuThread object stores the view id of the renderer in destroyed_renderer_routes_. GpuCommandBufferStub::OnFlush always checks if its view id is in that set, and if is, it asks the GPUProcessor to destroy its surface. This change gets rid of the destroyed_renderer_routes_. Rather than deferring the request to destroy the surface, we ask the GPU process to remove the route which, in turn, will remove the GpuCommandBufferStub, GPUProcessor and its surface. See also bug 67170. BUG=none TEST=set the breakpoint in GpuChannel::OnMessageReceived, manually remove the route from router_ and stubs_. No assert should be triggered and context should be silently recovered. Review URL: http://codereview.chromium.org/6688026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78777 0039d316-1c4b-4281-b951-d872f2087c98
* Add separate ContentClient interfaces for gpu/plugin/renderer processes. ↵jam@chromium.org2011-03-172-2/+26
| | | | | | | | Since we don't have a need for a chrome/gpu or chrome/plugin directory, their chrome implementations are in chrome/common. Use the renderer one for getting the sad plugin image. Review URL: http://codereview.chromium.org/6708013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78617 0039d316-1c4b-4281-b951-d872f2087c98
* Change LOG to VLOG to avoid a lot of messages in the bots output.zmo@google.com2011-03-171-4/+4
| | | | | | | | BUG=76576 TEST=no more libpci message in bots output. Review URL: http://codereview.chromium.org/6713014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78603 0039d316-1c4b-4281-b951-d872f2087c98