Commit 98dc437b authored by piman@chromium.org's avatar piman@chromium.org

Fix windows gpu bots.

http://codereview.chromium.org/8498036 broke it, because I didn't realize that AsyncPresentAndAcknowledge called the callback from a background thread.
I simply reverted part of that change which just meant to simplify the code, and it should go back to the expected behavior.

BUG=107083
TEST=gpu bots

Review URL: http://codereview.chromium.org/8921017

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114160 0039d316-1c4b-4281-b951-d872f2087c98
parent cb7d5ed6
...@@ -182,6 +182,19 @@ LRESULT CALLBACK PluginWrapperWindowProc(HWND window, unsigned int message, ...@@ -182,6 +182,19 @@ LRESULT CALLBACK PluginWrapperWindowProc(HWND window, unsigned int message,
return ::DefWindowProc(window, message, wparam, lparam); return ::DefWindowProc(window, message, wparam, lparam);
} }
void SendToGpuProcessHost(int gpu_host_id, scoped_ptr<IPC::Message> message) {
GpuProcessHost* gpu_process_host = GpuProcessHost::FromID(gpu_host_id);
if (!gpu_process_host)
return;
gpu_process_host->Send(message.release());
}
void PostTaskOnIOThread(const tracked_objects::Location& from_here,
base::Closure task) {
BrowserThread::PostTask(BrowserThread::IO, from_here, task);
}
bool DecodeZoomGesture(HWND hwnd, const GESTUREINFO& gi, bool DecodeZoomGesture(HWND hwnd, const GESTUREINFO& gi,
content::PageZoom* zoom, content::PageZoom* zoom,
POINT* zoom_center) { POINT* zoom_center) {
...@@ -2035,12 +2048,19 @@ void RenderWidgetHostViewWin::AcceleratedSurfaceBuffersSwapped( ...@@ -2035,12 +2048,19 @@ void RenderWidgetHostViewWin::AcceleratedSurfaceBuffersSwapped(
accelerated_surface_->Initialize(); accelerated_surface_->Initialize();
} }
scoped_ptr<IPC::Message> message(
new AcceleratedSurfaceMsg_BuffersSwappedACK(params.route_id));
base::Closure acknowledge_task = base::Bind(
SendToGpuProcessHost,
gpu_host_id,
base::Passed(&message));
accelerated_surface_->AsyncPresentAndAcknowledge( accelerated_surface_->AsyncPresentAndAcknowledge(
params.size, params.size,
params.surface_id, params.surface_id,
base::Bind(&RenderWidgetHost::AcknowledgeSwapBuffers, base::Bind(PostTaskOnIOThread,
gpu_host_id, FROM_HERE,
params.route_id)); acknowledge_task));
} else { } else {
RenderWidgetHost::AcknowledgeSwapBuffers(params.route_id, gpu_host_id); RenderWidgetHost::AcknowledgeSwapBuffers(params.route_id, gpu_host_id);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment