summaryrefslogtreecommitdiffstats
path: root/content/gpu/gpu_child_thread.h
Commit message (Collapse)AuthorAgeFilesLines
* Use a direct include of time headers in content/, part 2.avi@chromium.org2013-06-281-1/+1
| | | | | | | | | | BUG=254986 TEST=none TBR=ben@chromium.org Review URL: https://chromiumcodereview.appspot.com/18154002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209062 0039d316-1c4b-4281-b951-d872f2087c98
* Wire gpu process startup error messages to about:gpuzmo@chromium.org2013-06-141-1/+8
| | | | | | | | | | | | This helps us to better understand why the GPU process fails to launch. BUG=249406 TEST=about:gpu get GPU process startup errors if there are any R=apatrick@chromium.org Review URL: https://codereview.chromium.org/17019002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206420 0039d316-1c4b-4281-b951-d872f2087c98
* Move a bunch of child-only code from content/common to content/childscottmg@chromium.org2013-06-061-1/+1
| | | | | | | | | | | | Was just trying to move content/common/resource_dispatcher.{cc,h}, but that ends up needing a lot of other things to move. TBR=jam@chromium.org BUG=246357 Review URL: https://codereview.chromium.org/16328003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204569 0039d316-1c4b-4281-b951-d872f2087c98
* Move GPU device/driver info related code from content to gpu.zmo@chromium.org2013-05-231-3/+3
| | | | | | | | | | | | | | | | | | | | Try to reland r201380 with build fix. This has been suggested by gman, and agreed by kbr and jam, for the following reasons: 1) These are gpu related code, and are independent of content / browser, so putting them under gpu/ is the right thing to do conceptually. 2) This enables us to set up tests in various places with the correct blacklisting/driver_bug_workarounds information. Otherwise, for the moment, gpu/ has no visibility into content/ side, so we have to duplicate the driver_bug_workarounds code and hardwire them for testing purpose. This is going to cause a lot of bugs in the future, as we have the two pieces of code for the same thing (one for chrome and one for testing) and people will easily forget to update one or the other. As for this patch, I didn't change the logic, and try to minimize the refactoring. All improvements enabled by this relocation will be done in follow-up CLs. BUG=230477 TEST=tree TBR=apatrick@chromium.org, joi@chromium.org, kbr@chromium.org, piman@chromium.org, sky@chromium.org Review URL: https://codereview.chromium.org/15745014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201875 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 201380 "Move GPU device/driver info related code from con..."zmo@chromium.org2013-05-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | > Move GPU device/driver info related code from content to gpu. > > This has been suggested by gman, and agreed by kbr and jam, for the following reasons: > > 1) These are gpu related code, and are independent of content / browser, so putting them under gpu/ is the right thing to do conceptually. > > 2) This enables us to set up tests in various places with the correct blacklisting/driver_bug_workarounds information. Otherwise, for the moment, gpu/ has no visibility into content/ side, so we have to duplicate the driver_bug_workarounds code and hardwire them for testing purpose. This is going to cause a lot of bugs in the future, as we have the two pieces of code for the same thing (one for chrome and one for testing) and people will easily forget to update one or the other. > > As for this patch, I didn't change the logic, and try to minimize the refactoring. All improvements enabled by this relocation will be done in follow-up CLs. > > BUG=230477 > TEST=tree > TBR=gman@chromium.org, joi@chromium.org, kbr@chromium.org, piman@chromium.org > > Review URL: https://codereview.chromium.org/15385003 TBR=zmo@chromium.org Review URL: https://codereview.chromium.org/15619004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201386 0039d316-1c4b-4281-b951-d872f2087c98
* Move GPU device/driver info related code from content to gpu.zmo@chromium.org2013-05-211-3/+3
| | | | | | | | | | | | | | | | | | This has been suggested by gman, and agreed by kbr and jam, for the following reasons: 1) These are gpu related code, and are independent of content / browser, so putting them under gpu/ is the right thing to do conceptually. 2) This enables us to set up tests in various places with the correct blacklisting/driver_bug_workarounds information. Otherwise, for the moment, gpu/ has no visibility into content/ side, so we have to duplicate the driver_bug_workarounds code and hardwire them for testing purpose. This is going to cause a lot of bugs in the future, as we have the two pieces of code for the same thing (one for chrome and one for testing) and people will easily forget to update one or the other. As for this patch, I didn't change the logic, and try to minimize the refactoring. All improvements enabled by this relocation will be done in follow-up CLs. BUG=230477 TEST=tree TBR=gman@chromium.org, joi@chromium.org, kbr@chromium.org, piman@chromium.org Review URL: https://codereview.chromium.org/15385003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201380 0039d316-1c4b-4281-b951-d872f2087c98
* Add Shutdown() helper to ChildThread and move all destructor logic.dcheng@chromium.org2013-04-221-0/+2
| | | | | | | | | | | | | | | r185551 changed the ordering of events in scoped_ptr<T>::reset(); specifically, callers can no longer rely on get() to return the old value of the stored pointer during a reset(). This causes issues such as http://crbug.com/232981. In order to break the dependency on the value of main_thread_.get() during main_thread_.reset(), destruction of ChildThread has been split into two parts. BUG=233761 Review URL: https://codereview.chromium.org/13878020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195628 0039d316-1c4b-4281-b951-d872f2087c98
* Do not send updated gpu_info from gpu thread when running in-process.sievers@chromium.org2013-01-181-0/+3
| | | | | | | | | | We did not collect gpu info and can just keep using the preliminary info instead of clobbering it with an uninitialized structure. Review URL: https://chromiumcodereview.appspot.com/11960004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177630 0039d316-1c4b-4281-b951-d872f2087c98
* Exit the unsandboxed GPU process after GPUInfo collected.zmo@chromium.org2012-12-071-9/+0
| | | | | | | | BUG=164712 TEST=on windows, open about:gpu, see the second gpu process in task manager, then once the full info is displayed, the the second gpu process disappear. Review URL: https://codereview.chromium.org/11466012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171686 0039d316-1c4b-4281-b951-d872f2087c98
* CrOS: Add hotkey for disabling the GPU watchdog timer.backer@chromium.org2012-11-301-0/+1
| | | | | | | | | | | | This works around the fact that switching to VT1 on CrOS prevents swaps from clearing, which hangs the GPU process, which causes the GPU process to get killed. Sometimes in order to diagnose a problem, we want to switch to VT1. This hotkey allows a developer to do that. TEST=by hand; Ctrl-Shift-Alt-G; then go about://gpuhang; UI should freeze and not unstick after 10 seconds BUG=chromium-os:28253 Review URL: https://chromiumcodereview.appspot.com/11348099 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170309 0039d316-1c4b-4281-b951-d872f2087c98
* Initialize GPU watchdog before initializing GPU implementation.jbauman@chromium.org2012-10-251-1/+3
| | | | | | | | | | | Initializing the GPU driver could hang, so start the watchdog beforehand. 10s to initialize the GPU driver shouldn't be too low. BUG=144221 Review URL: https://chromiumcodereview.appspot.com/11192029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164075 0039d316-1c4b-4281-b951-d872f2087c98
* Move a bunch of code in content\common (as well as a few left in renderer) ↵jam@chromium.org2012-10-221-4/+6
| | | | | | | | to the content namespace. Review URL: https://codereview.chromium.org/11227033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163359 0039d316-1c4b-4281-b951-d872f2087c98
* Add override message to divide GPU memory among windows.ccameron@chromium.org2012-10-011-0/+2
| | | | | | | | | | | The "number of windows" message is to be sent from the browser process, which is much more reliable than trying to reverse-engineer it from visibility messages asynchronously coming from WebKit. BUG=146448 Review URL: https://chromiumcodereview.appspot.com/11031009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159591 0039d316-1c4b-4281-b951-d872f2087c98
* Add GPU memory tab to the task manager.ccameron@chromium.org2012-08-181-0/+1
| | | | | | | | | | | | | | | | Each renderer process will have all of the resources that the GPU process has allocated on its behalf (including WebGL resources, compositor resources, and the backbuffer) included in its printed total. The GPU process will have the all resources currently allocated by the GPU process in its column. This will be approximately the sum of all other rows. The row for the GPU process is printed in ()s to draw attention to the fact that its size includes duplicates from other processes' sizes. I happy this UI scheme (having played with a few), but I'd wider feedback. Note that we do not account for swapchains or for backbuffers allocated by the browser process, so those allocations are not counted in the total. BUG=140157 Review URL: https://chromiumcodereview.appspot.com/10854076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152233 0039d316-1c4b-4281-b951-d872f2087c98
* Remove #pragma once from contentajwong@chromium.org2012-07-111-1/+0
| | | | | | Review URL: https://chromiumcodereview.appspot.com/10696166 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146071 0039d316-1c4b-4281-b951-d872f2087c98
* Show gpu process stats in about:tcmallocjamesr@chromium.org2012-04-251-0/+4
| | | | | | | | | | BUG=123939 TEST=launch GPU process by navigating to a page requiring it. open about:tcmalloc. refresh. see GPU process memory information Review URL: http://codereview.chromium.org/10041017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@133816 0039d316-1c4b-4281-b951-d872f2087c98
* Collect GPU info before enabling sandbox.apatrick@chromium.org2012-02-181-2/+3
| | | | | | | BUG=112205 Review URL: https://chromiumcodereview.appspot.com/9401025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122646 0039d316-1c4b-4281-b951-d872f2087c98
* Add OVERRIDE to content/.avi@chromium.org2011-11-171-2/+2
| | | | | | | | | BUG=104314 TEST=no change Review URL: http://codereview.chromium.org/8587009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110544 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove more unneeded forward declares in content.thestig@chromium.org2011-11-111-4/+0
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/8511044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109549 0039d316-1c4b-4281-b951-d872f2087c98
* Move GPUInfo to content/public/common and put it into the content namespace.jam@chromium.org2011-10-201-3/+4
| | | | | | | BUG=98716 Review URL: http://codereview.chromium.org/8363007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106637 0039d316-1c4b-4281-b951-d872f2087c98
* Initialize the sandbox earlier in GPU process bringup, deferring anykbr@google.com2011-07-221-5/+4
| | | | | | | | | | | | errors until receipt of the first IPC message. Tested by running WebGL content with this patch on Mac and Windows. BUG=84650 TEST=none Review URL: http://codereview.chromium.org/7458009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93676 0039d316-1c4b-4281-b951-d872f2087c98
* Virtual destructors should have virtual keyword.hans@chromium.org2011-05-251-1/+1
| | | | | | | | | | | | | | | | | 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
* Added about:gpucleanamarinichev@chromium.org2011-05-041-0/+1
| | | | | | | | | | | 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
* Moved code that runs in both the browser and GPU process from content/gpu to ↵apatrick@chromium.org2011-04-081-7/+7
| | | | | | | | | | | | | | 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
* Move some files from base to base/memory.levin@chromium.org2011-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* This is a thread that runs in the browser process that can issue GL calls ↵apatrick@chromium.org2011-03-211-0/+90
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