Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: content/common/gpu/gpu_command_buffer_stub.h

Issue 6883179: Rework FlushSync to return early if commands have been processed since the last update (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: style Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | content/common/gpu/gpu_command_buffer_stub.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_COMMON_GPU_GPU_COMMAND_BUFFER_STUB_H_ 5 #ifndef CONTENT_COMMON_GPU_GPU_COMMAND_BUFFER_STUB_H_
6 #define CONTENT_COMMON_GPU_GPU_COMMAND_BUFFER_STUB_H_ 6 #define CONTENT_COMMON_GPU_GPU_COMMAND_BUFFER_STUB_H_
7 #pragma once 7 #pragma once
8 8
9 #if defined(ENABLE_GPU) 9 #if defined(ENABLE_GPU)
10 10
11 #include <vector> 11 #include <vector>
12 #include <string> 12 #include <string>
13 13
14 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
15 #include "base/process.h" 15 #include "base/process.h"
16 #include "base/task.h"
16 #include "gpu/command_buffer/service/command_buffer_service.h" 17 #include "gpu/command_buffer/service/command_buffer_service.h"
17 #include "gpu/command_buffer/service/gpu_scheduler.h" 18 #include "gpu/command_buffer/service/gpu_scheduler.h"
18 #include "ipc/ipc_channel.h" 19 #include "ipc/ipc_channel.h"
19 #include "ipc/ipc_message.h" 20 #include "ipc/ipc_message.h"
20 #include "ui/gfx/native_widget_types.h" 21 #include "ui/gfx/native_widget_types.h"
21 #include "ui/gfx/size.h" 22 #include "ui/gfx/size.h"
22 23
23 class GpuChannel; 24 class GpuChannel;
24 class GpuWatchdog; 25 class GpuWatchdog;
25 26
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 // Called only by the GpuChannel. 75 // Called only by the GpuChannel.
75 void AcceleratedSurfaceBuffersSwapped(uint64 swap_buffers_count); 76 void AcceleratedSurfaceBuffersSwapped(uint64 swap_buffers_count);
76 #endif // defined(OS_MACOSX) 77 #endif // defined(OS_MACOSX)
77 78
78 private: 79 private:
79 // Message handlers: 80 // Message handlers:
80 void OnInitialize(base::SharedMemoryHandle ring_buffer, 81 void OnInitialize(base::SharedMemoryHandle ring_buffer,
81 int32 size, 82 int32 size,
82 bool* result); 83 bool* result);
83 void OnGetState(gpu::CommandBuffer::State* state); 84 void OnGetState(gpu::CommandBuffer::State* state);
84 void OnAsyncGetState(); 85 void OnFlush(int32 put_offset,
85 void OnFlush(int32 put_offset, gpu::CommandBuffer::State* state); 86 int32 last_known_get,
87 gpu::CommandBuffer::State* state);
86 void OnAsyncFlush(int32 put_offset); 88 void OnAsyncFlush(int32 put_offset);
87 void OnCreateTransferBuffer(int32 size, int32 id_request, int32* id); 89 void OnCreateTransferBuffer(int32 size, int32 id_request, int32* id);
88 void OnRegisterTransferBuffer(base::SharedMemoryHandle transfer_buffer, 90 void OnRegisterTransferBuffer(base::SharedMemoryHandle transfer_buffer,
89 size_t size, 91 size_t size,
90 int32 id_request, 92 int32 id_request,
91 int32* id); 93 int32* id);
92 void OnDestroyTransferBuffer(int32 id); 94 void OnDestroyTransferBuffer(int32 id);
93 void OnGetTransferBuffer(int32 id, 95 void OnGetTransferBuffer(int32 id,
94 base::SharedMemoryHandle* transfer_buffer, 96 base::SharedMemoryHandle* transfer_buffer,
95 uint32* size); 97 uint32* size);
96 void OnResizeOffscreenFrameBuffer(const gfx::Size& size); 98 void OnResizeOffscreenFrameBuffer(const gfx::Size& size);
97 99
98 void OnSwapBuffers(); 100 void OnSwapBuffers();
99 void OnCommandProcessed(); 101 void OnCommandProcessed();
100 102
101 #if defined(OS_MACOSX) 103 #if defined(OS_MACOSX)
102 void OnSetWindowSize(const gfx::Size& size); 104 void OnSetWindowSize(const gfx::Size& size);
103 void SwapBuffersCallback(); 105 void SwapBuffersCallback();
104 #endif // defined(OS_MACOSX) 106 #endif // defined(OS_MACOSX)
105 107
106 void ResizeCallback(gfx::Size size); 108 void ResizeCallback(gfx::Size size);
109 void ReportState();
107 110
108 // The lifetime of objects of this class is managed by a GpuChannel. The 111 // The lifetime of objects of this class is managed by a GpuChannel. The
109 // GpuChannels destroy all the GpuCommandBufferStubs that they own when they 112 // GpuChannels destroy all the GpuCommandBufferStubs that they own when they
110 // are destroyed. So a raw pointer is safe. 113 // are destroyed. So a raw pointer is safe.
111 GpuChannel* channel_; 114 GpuChannel* channel_;
112 115
113 gfx::PluginWindowHandle handle_; 116 gfx::PluginWindowHandle handle_;
114 base::WeakPtr<GpuCommandBufferStub> parent_; 117 base::WeakPtr<GpuCommandBufferStub> parent_;
115 gfx::Size initial_size_; 118 gfx::Size initial_size_;
116 gpu::gles2::DisallowedExtensions disallowed_extensions_; 119 gpu::gles2::DisallowedExtensions disallowed_extensions_;
117 std::string allowed_extensions_; 120 std::string allowed_extensions_;
118 std::vector<int32> requested_attribs_; 121 std::vector<int32> requested_attribs_;
119 uint32 parent_texture_id_; 122 uint32 parent_texture_id_;
120 int32 route_id_; 123 int32 route_id_;
121 124
122 // The following two fields are used on Mac OS X to identify the window 125 // The following two fields are used on Mac OS X to identify the window
123 // for the rendering results on the browser side. 126 // for the rendering results on the browser side.
124 int32 renderer_id_; 127 int32 renderer_id_;
125 int32 render_view_id_; 128 int32 render_view_id_;
126 129
127 scoped_ptr<gpu::CommandBufferService> command_buffer_; 130 scoped_ptr<gpu::CommandBufferService> command_buffer_;
128 scoped_ptr<gpu::GpuScheduler> scheduler_; 131 scoped_ptr<gpu::GpuScheduler> scheduler_;
129 GpuWatchdog* watchdog_; 132 GpuWatchdog* watchdog_;
133 ScopedRunnableMethodFactory<GpuCommandBufferStub> task_factory_;
130 134
131 DISALLOW_COPY_AND_ASSIGN(GpuCommandBufferStub); 135 DISALLOW_COPY_AND_ASSIGN(GpuCommandBufferStub);
132 }; 136 };
133 137
134 #endif // defined(ENABLE_GPU) 138 #endif // defined(ENABLE_GPU)
135 139
136 #endif // CONTENT_COMMON_GPU_GPU_COMMAND_BUFFER_STUB_H_ 140 #endif // CONTENT_COMMON_GPU_GPU_COMMAND_BUFFER_STUB_H_
OLDNEW
« no previous file with comments | « no previous file | content/common/gpu/gpu_command_buffer_stub.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698