Index: content/renderer/gpu/gpu_channel_host.h |
=================================================================== |
--- content/renderer/gpu/gpu_channel_host.h (revision 105158) |
+++ content/renderer/gpu/gpu_channel_host.h (working copy) |
@@ -21,6 +21,7 @@ |
#include "ipc/ipc_channel_handle.h" |
#include "ipc/ipc_channel_proxy.h" |
#include "ipc/ipc_sync_channel.h" |
+#include "ui/gfx/gl/gpu_preference.h" |
#include "ui/gfx/native_widget_types.h" |
#include "ui/gfx/size.h" |
@@ -80,7 +81,8 @@ |
CommandBufferProxy* share_group, |
const std::string& allowed_extensions, |
const std::vector<int32>& attribs, |
- const GURL& active_url); |
+ const GURL& active_url, |
+ gfx::GpuPreference gpu_preference); |
// Create and connect to a command buffer in the GPU process. |
CommandBufferProxy* CreateOffscreenCommandBuffer( |
@@ -88,7 +90,8 @@ |
CommandBufferProxy* share_group, |
const std::string& allowed_extensions, |
const std::vector<int32>& attribs, |
- const GURL& active_url); |
+ const GURL& active_url, |
+ gfx::GpuPreference gpu_preference); |
// Creates a video decoder in the GPU process. |
// Returned pointer is owned by the CommandBufferProxy for |route_id|. |
@@ -108,6 +111,20 @@ |
void AddRoute(int route_id, base::WeakPtr<IPC::Channel::Listener> listener); |
void RemoveRoute(int route_id); |
+ // Asks the GPU process whether the creation or destruction of the |
+ // given command buffer on the given GPU will provoke a switch of |
+ // the GPU from integrated to discrete or vice versa. This requires |
+ // all of the GL contexts in the same share group in the GPU process |
+ // to be dropped. |
+ bool WillGpuSwitchOccur(bool is_creating_context, |
+ gfx::GpuPreference gpu_preference); |
+ |
+ // Forcibly close the channel on the GPU process side. This will |
+ // cause all command buffers on this side to soon afterward start |
+ // registering lost contexts. It also has the side effect of setting |
+ // the state on this side to lost. |
+ void ForciblyCloseChannel(); |
+ |
private: |
// An shim class for working with listeners between threads. |
// It is used to post a task to the thread that owns the listener, |