DescriptionFix gpu acceleration with --in-process-gpu and --single-process modes.
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.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=86958
Patch Set 1 #Patch Set 2 : merged GpuBrowserHost and GpuHostDelegate into GpuMessageHub #Patch Set 3 : clean up GpuMessageHub Send() interface #Patch Set 4 : cleanup #
Total comments: 4
Patch Set 5 : address comments, fix leak with RouteToGpuProcessHostUIShimTask #Patch Set 6 : new approach: instantiate GpuProcessHost even in gpu-thread mode #Patch Set 7 : remove obsolete files #
Total comments: 4
Patch Set 8 : address comments #Patch Set 9 : Make --single-process mode work too #
Total comments: 1
Patch Set 10 : rebase #Patch Set 11 : virtual ~RouteToGpuProcessHostUIShimTask() #Patch Set 12 : add comment #
Messages
Total messages: 14 (0 generated)
|