summaryrefslogtreecommitdiffstats
path: root/chrome/common/gpu_messages.cc
Commit message (Collapse)AuthorAgeFilesLines
* Make GPUInfo a struct, which it should be according to the C++ guidelines. ↵jam@chromium.org2011-03-081-79/+48
| | | | | | | | This makes it easy to write automated serilization code for it. Review URL: http://codereview.chromium.org/6621057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77300 0039d316-1c4b-4281-b951-d872f2087c98
* Collect D3D Driver Info (version and date) from Windows system registry.zmo@google.com2011-03-011-2/+6
| | | | | | | | | BUG=72977 TEST=about:gpu page display driver version and date in Windows. Review URL: http://codereview.chromium.org/6588027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76381 0039d316-1c4b-4281-b951-d872f2087c98
* Change includes of gfx/* to ui/gfx/*sail@chromium.org2011-02-051-2/+2
| | | | | | | | | BUG=71063 TEST=compiled Review URL: http://codereview.chromium.org/6312156 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73890 0039d316-1c4b-4281-b951-d872f2087c98
* Implement proxy for 3d-related interfacespiman@google.com2011-02-021-30/+0
| | | | | | | | | BUG=none TEST=Pepper Flash Review URL: http://codereview.chromium.org/6400007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73472 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 72704 - Defered collect DirectX diagnostics until they are needed for ↵apatrick@chromium.org2011-01-271-5/+23
| | | | | | | | | | | | | | | | | | | about:gpu. This is because collecting the stats often crashes. Added a guard to prevent the collection of diagnostics on multiple threads simultaneously. Renamed GPUInfo::Progress to GPUInfo::Level. TEST=try, about:gpu does not cause concurrent diagnostics collection BUG=none Review URL: http://codereview.chromium.org/6364013 Review URL: http://codereview.chromium.org/6341011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72731 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 72704 - Defered collect DirectX diagnostics until they are needed for ↵apatrick@chromium.org2011-01-261-23/+5
| | | | | | | | | | | | | | | | | | | | about:gpu. This is because collecting the stats often crashes. Added a guard to prevent the collection of diagnostics on multiple threads simultaneously. Renamed GPUInfo::Progress to GPUInfo::Level. TEST=try, about:gpu does not cause concurrent diagnostics collection BUG=none Review URL: http://codereview.chromium.org/6364013 TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/6370013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72707 0039d316-1c4b-4281-b951-d872f2087c98
* Defered collect DirectX diagnostics until they are needed for about:gpu.apatrick@chromium.org2011-01-261-5/+23
| | | | | | | | | | | | | | | This is because collecting the stats often crashes. Added a guard to prevent the collection of diagnostics on multiple threads simultaneously. Renamed GPUInfo::Progress to GPUInfo::Level. TEST=try, about:gpu does not cause concurrent diagnostics collection BUG=none Review URL: http://codereview.chromium.org/6364013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72704 0039d316-1c4b-4281-b951-d872f2087c98
* Collect GL_EXTENSIONS string in GPUInfo and display it in about:gpu page.zmo@google.com2011-01-251-0/+4
| | | | | | | | (A second try after being reverted.) Review URL: http://codereview.chromium.org/6279009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72445 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 72180 - Collect GL_EXTENSIONS string in GPUInfo and display it in ↵asargent@chromium.org2011-01-211-4/+0
| | | | | | | | | | | | | | about:gpu page. BUG=none TEST=GL_EXTENSIONS showing in about:gpu Review URL: http://codereview.chromium.org/6306008 TBR=zmo@google.com Review URL: http://codereview.chromium.org/6324008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72182 0039d316-1c4b-4281-b951-d872f2087c98
* Collect GL_EXTENSIONS string in GPUInfo and display it in about:gpu page.zmo@google.com2011-01-211-0/+4
| | | | | | | | | BUG=none TEST=GL_EXTENSIONS showing in about:gpu Review URL: http://codereview.chromium.org/6306008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72180 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor and improve gpu_info_collector: collect information on linux;zmo@google.com2011-01-211-9/+28
| | | | | | | | | | | | | collect extra information (driver_vendor, gl_renderer, etc.) on Mac/linux. Note that this CL takes some code from rlp's long outstandingCL (with her permission). BUG=49579 TEST=unittest Review URL: http://codereview.chromium.org/6346007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72055 0039d316-1c4b-4281-b951-d872f2087c98
* ipc: Simplify the magic required to create IPC message headers.This gets rid ↵jam@chromium.org2010-12-081-6/+2
| | | | | | | | | of having to include the files in a magic place because of xcode dependency issues, and just makes it simpler to create new IPC message classes. It also gets rid of including the X_messages_internal.h file multiple times, which simplifies things and should make the build a little faster. In a future change, I will remove the "internal.h" files since they're no longer needed. Review URL: http://codereview.chromium.org/5526008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68664 0039d316-1c4b-4281-b951-d872f2087c98
* Add flow control between renderer and GPU processes, and, on Mac OS X,kbr@google.com2010-11-261-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | between GPU process and browser process. Thanks to Al Patrick for the renderer<->GPU flow control mechanism. This CL prevents the renderer from issuing more OpenGL work than the GPU process can execute, and, on the Mac, prevents the combination of the renderer and GPU processes from transmitting more frames via IOSurfaces from the GPU to the browser process than can be handled by the GPU. This fix causes the renderer to block inside ggl::SwapBuffers() when it gets too far ahead. Different strategies can be considered going forward, including measuring frame rates in the GPU and renderer processes and trying to match them via techniques such as delaying the execution of some timers. However, despite the general undesirability of blocking the render thread, this fix results in a significant performance improvement. With this fix integrated, a fill-limited test case from Chris Rogers displays at 60 FPS instead of 15 FPS on a Mac Pro. Gregg Tavares' aquarium from webglsamples.googlecode.com displays at 30 FPS instead of 4 or 5 FPS on a MacBook Pro. The frame rates measured at the JavaScript level now match the actual frame rate of the browser, where previously they were much higher since they were issuing more work than the browser could render. A few other minor OpenGL bugs potentially impacting the correctness of the Mac compositor are being fixed as well in this CL. Verified that WebGL, CSS 3D and YouTube (Core Animation plugin) content all work. BUG=63539 TEST=none Review URL: http://codereview.chromium.org/5317007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67470 0039d316-1c4b-4281-b951-d872f2087c98
* Collect DirectX diagnostic information asynchronously.apatrick@chromium.org2010-11-151-43/+44
| | | | | | | | | | | | | Collecting this can take a couple of seconds. I put the code onto a worker thread. The about:gpuinfo handler polls for it until it is available, initially displaying only the subset of informtation that can be retreived quickly. This makes the startup time for accelerated compositing, WebGL, etc significantly lower on Windows. None of the other platforms have this issue. TEST=go to about:gpuinfo, try BUG=59711 Review URL: http://codereview.chromium.org/4860001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66184 0039d316-1c4b-4281-b951-d872f2087c98
* Coverity: Prevent reading uninitialized variables.jhawkins@chromium.org2010-11-111-0/+3
| | | | | | | | | | CID=13648 BUG=none TEST=none Review URL: http://codereview.chromium.org/4771003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65848 0039d316-1c4b-4281-b951-d872f2087c98
* - Relanding 61718.apatrick@chromium.org2010-11-091-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I disabled the GPU watchdog in three new cases: - If the OSMesa software renderer is in use. This will disable it on bots. - When running on valgrind, whether on a bot or locally. - In debug builds I added a GPU process initialization time to the GPU info. I moved the GPU initialization code outside the watchdog protection because it can take a long time and trigger the watchdog. I increased the timeout. I set up a field trial with different timeouts to see the rate of failure for each period. Original CL description: I added a watchdog thread that intermitently checks the main thread can respond to tasks posted on its message queue. I fixed some bugs that prevented GGL from failing when the GPU channel was lost. Added a command line swith to disable the watchdog thread for debugging purposes. TEST=try, local testing of all features BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65461 0039d316-1c4b-4281-b951-d872f2087c98
* chrome/common: Append base:: in the StringPrintf calls.tfarina@chromium.org2010-10-311-5/+5
| | | | | | | | | | | (Note: This is a TODO in string_util.h) BUG=None TEST=trybots Review URL: http://codereview.chromium.org/4111011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64567 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 63388 - ↵stoyan@chromium.org2010-10-211-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://build.chromium.org/buildbot/waterfall/builders/Mac10.6%20Tests%20(dbg)(2)/builds/10949 - Relanding 61718. I disabled the GPU watchdog in three new cases: - If the OSMesa software renderer is in use. This will disable it on bots. - When running on valgrind, whether on a bot or locally. - In debug builds I added a GPU process initialization time to the GPU info. I moved the GPU initialization code outside the watchdog protection because it can take a long time and trigger the watchdog. I increased the timeout. I set up a field trial with different timeouts to see the rate of failure for each period. I made ui_tests always run with OSMesa, for consistent operation on bots and when run locally. Original CL description: I added a watchdog thread that intermitently checks the main thread can respond to tasks posted on its message queue. I fixed some bugs that preventede GGL from failing when the GPU channel was lost. Added a command line swith to disable the watchdog thread for debugging purposes. TEST=try, local testing of all features BUG=none Review URL: http://codereview.chromium.org/3794011 TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/3979004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63396 0039d316-1c4b-4281-b951-d872f2087c98
* Relanding 61718.apatrick@chromium.org2010-10-211-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I disabled the GPU watchdog in three new cases: - If the OSMesa software renderer is in use. This will disable it on bots. - When running on valgrind, whether on a bot or locally. - In debug builds I added a GPU process initialization time to the GPU info. I moved the GPU initialization code outside the watchdog protection because it can take a long time and trigger the watchdog. I increased the timeout. I set up a field trial with different timeouts to see the rate of failure for each period. I made ui_tests always run with OSMesa, for consistent operation on bots and when run locally. Original CL description: I added a watchdog thread that intermitently checks the main thread can respond to tasks posted on its message queue. I fixed some bugs that preventede GGL from failing when the GPU channel was lost. Added a command line swith to disable the watchdog thread for debugging purposes. TEST=try, local testing of all features BUG=none Review URL: http://codereview.chromium.org/3794011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63388 0039d316-1c4b-4281-b951-d872f2087c98
* Add Ability to pass in allowed extensions to GPU contexts.gman@chromium.org2010-10-191-1/+22
| | | | | | | | | | | | | | | | | | | | Questions: 1) Is WebGraphicsContext3D only used for WebGL? Currently this patch makes that assumption. 2) I started by adding const char* allowed_extensions to a bunch of functions. Then, at the IPC level added GPUInitParams. Should I use GPUInitParams everywhere? 3) Is the path for gpu_init_params.h ok? TEST=unit tests, manually tested WebGL BUG=none Review URL: http://codereview.chromium.org/3775014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63026 0039d316-1c4b-4281-b951-d872f2087c98
* Relanding 61904 with missing file this time.apatrick@chromium.org2010-10-081-0/+35
| | | | | | | | | | | | | | | | Original description: Added DirectX Diagnostics information to about:gpu on Windows. This includes the name of the GPU hardware and the driver version and release date and some other information that might potentially also be valuable in the GPU stats. TEST=try BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61980 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Added DirectX Diagnostics information to about:gpu on Windows."ajwong@chromium.org2010-10-081-35/+0
| | | | | | | | This reverts r61904. TBR=apatrick git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61905 0039d316-1c4b-4281-b951-d872f2087c98
* Added DirectX Diagnostics information to about:gpu on Windows.apatrick@chromium.org2010-10-081-0/+35
| | | | | | | | | | | This includes the name of the GPU hardware and the driver version and release date and some other information that might potentially also be valuable in the GPU stats. TEST=try BUG=none Review URL: http://codereview.chromium.org/3547020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61904 0039d316-1c4b-4281-b951-d872f2087c98
* Resubmit - Some cleanup work in GpuVideoDecoderHost and IpcVideoDecoderhclam@chromium.org2010-09-291-4/+0
| | | | | | | | | | | TBR=sergeyu BUG=None. TEST=None. Review URL: http://codereview.chromium.org/3571007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60959 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 60912 - Some cleanup work in GpuVideoDecoderHost and IpcVideoDecoderjochen@chromium.org2010-09-291-0/+4
| | | | | | | | | | | | | | | | | | | Seeing that GpuVideoDecoderHost has a very similar interface to VideoDecodeEngine, this patch makes GpuVideoDecoderHost implments VideoDecodeEngine. Also did some cleanup work to remove code patch that doesn't fit into the buffer allocation model we are moving to. BUG=53714 TEST=Tree is green. Code still doesn't work yet. Review URL: http://codereview.chromium.org/3393014 TBR=hclam@chromium.org Review URL: http://codereview.chromium.org/3531002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60922 0039d316-1c4b-4281-b951-d872f2087c98
* Some cleanup work in GpuVideoDecoderHost and IpcVideoDecoderhclam@chromium.org2010-09-291-4/+0
| | | | | | | | | | | | | | | | Seeing that GpuVideoDecoderHost has a very similar interface to VideoDecodeEngine, this patch makes GpuVideoDecoderHost implments VideoDecodeEngine. Also did some cleanup work to remove code patch that doesn't fit into the buffer allocation model we are moving to. BUG=53714 TEST=Tree is green. Code still doesn't work yet. Review URL: http://codereview.chromium.org/3393014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60912 0039d316-1c4b-4281-b951-d872f2087c98
* Build fix to pick up changes in gpu_messages_internal.h for mac.hclam@chromium.org2010-09-291-0/+4
| | | | | | | | | | | TBR=kinuko BUG=None TEST=None Review URL: http://codereview.chromium.org/3542004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60903 0039d316-1c4b-4281-b951-d872f2087c98
* Added GPU stat for whether a GPU can report context lost.apatrick@chromium.org2010-09-071-8/+108
| | | | | | | | | | | | | | | On Windows it checks to see if the IDirect3D9 object supports Vista and later features (meaning it won't routinely report lost contexts). On Linux and Mac we can just check if its EGL versus some other GL that doesn't report lost contexts. I routed the stats to the renderer process so webkit code can query whether lost contexts are likely. I didn't wire up breakpad yet. TEST=try BUG=52318 Review URL: http://codereview.chromium.org/3149016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58755 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Move individual XXXMsg_Params structs to a new file.erg@google.com2010-08-241-0/+44
| | | | | | | | | | | | | | | | The new file, render_messages_params.h, is included in 57 files, while render_messages.h is included in 176 files. Moving the Params structs to their own file allow pruning the included headers. (Part 2 of this cleanup will be sorting the individual structs into themes to further minimize header inclusion.) BUG=51411 TEST=compiles Review URL: http://codereview.chromium.org/3119035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57229 0039d316-1c4b-4281-b951-d872f2087c98
* Reapplies all the IPC system work (reverts the revert r56272).erg@google.com2010-08-171-0/+9
| | | | | | | | | | | That patch wasn't what caused the regression in the page cycler. BUG=51411,52103 TEST=still compiles Review URL: http://codereview.chromium.org/3106018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56390 0039d316-1c4b-4281-b951-d872f2087c98
* Completely revert all my IPC work to see if this was what regressed the page ↵erg@google.com2010-08-171-9/+0
| | | | | | | | | | | cycler. BUG=51411,52103 TEST=page cycler Review URL: http://codereview.chromium.org/3170020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56272 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Reapplies r55259, the first new IPC definition patch.erg@google.com2010-08-101-0/+9
| | | | | | | | | | | | | This moves MessageWithTuple::Read() back into the main ipc_message_utils.h header from the private ipc_messsage_utils_impl.h header. In release mode, this was causing link failures. BUG=51411 TEST=none Review URL: http://codereview.chromium.org/3069034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55587 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 55259 - FBTF: New IPC definitions, only applied to async ROUTED and ↵pinkerton@google.com2010-08-091-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CONTROL messages. The slowest cc files in chrome include render_messages.h and other IPC message definitions. Including one of these files will bring in half of chrome because in the IPC system previously required full class definitions due to implementation details. The new system allows forward declarations and places the implementations of functions that need the full class definitions (ctor/dtor()/Log() and superclass ctor/Read() methods) into a separate xxx_messages.cc file using a parallel set of macros to ipc_message_macros.h. This has the added benefit of moving most of the template instantiation junk into a small number of files. Pros: - Will speed up compiling by a lot once everything is forward declared. - Already, intermediary .o/.a files are smaller. Cons: - Adds a 4th pass to the messages system, this time in a different header. BUG=51411 TEST=none Review URL: http://codereview.chromium.org/2873090 TBR=erg@google.com Review URL: http://codereview.chromium.org/3080040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55406 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: New IPC definitions, only applied to async ROUTED and CONTROL messages.erg@google.com2010-08-061-0/+9
The slowest cc files in chrome include render_messages.h and other IPC message definitions. Including one of these files will bring in half of chrome because in the IPC system previously required full class definitions due to implementation details. The new system allows forward declarations and places the implementations of functions that need the full class definitions (ctor/dtor()/Log() and superclass ctor/Read() methods) into a separate xxx_messages.cc file using a parallel set of macros to ipc_message_macros.h. This has the added benefit of moving most of the template instantiation junk into a small number of files. Pros: - Will speed up compiling by a lot once everything is forward declared. - Already, intermediary .o/.a files are smaller. Cons: - Adds a 4th pass to the messages system, this time in a different header. BUG=51411 TEST=none Review URL: http://codereview.chromium.org/2873090 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55259 0039d316-1c4b-4281-b951-d872f2087c98