| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "content/browser/renderer_host/render_widget_host_view_android.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_android.h" |
| 6 | 6 |
| 7 #include <android/bitmap.h> | 7 #include <android/bitmap.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 #include "content/browser/renderer_host/dip_util.h" | 53 #include "content/browser/renderer_host/dip_util.h" |
| 54 #include "content/browser/renderer_host/frame_metadata_util.h" | 54 #include "content/browser/renderer_host/frame_metadata_util.h" |
| 55 #include "content/browser/renderer_host/input/input_router_impl.h" | 55 #include "content/browser/renderer_host/input/input_router_impl.h" |
| 56 #include "content/browser/renderer_host/input/synthetic_gesture_target_android.h
" | 56 #include "content/browser/renderer_host/input/synthetic_gesture_target_android.h
" |
| 57 #include "content/browser/renderer_host/input/web_input_event_builders_android.h
" | 57 #include "content/browser/renderer_host/input/web_input_event_builders_android.h
" |
| 58 #include "content/browser/renderer_host/render_process_host_impl.h" | 58 #include "content/browser/renderer_host/render_process_host_impl.h" |
| 59 #include "content/browser/renderer_host/render_view_host_delegate_view.h" | 59 #include "content/browser/renderer_host/render_view_host_delegate_view.h" |
| 60 #include "content/browser/renderer_host/render_view_host_impl.h" | 60 #include "content/browser/renderer_host/render_view_host_impl.h" |
| 61 #include "content/browser/renderer_host/render_widget_host_impl.h" | 61 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 62 #include "content/browser/renderer_host/render_widget_host_input_event_router.h" | 62 #include "content/browser/renderer_host/render_widget_host_input_event_router.h" |
| 63 #include "content/common/gpu_stream_constants.h" |
| 63 #include "content/common/input_messages.h" | 64 #include "content/common/input_messages.h" |
| 64 #include "content/common/site_isolation_policy.h" | 65 #include "content/common/site_isolation_policy.h" |
| 65 #include "content/common/view_messages.h" | 66 #include "content/common/view_messages.h" |
| 66 #include "content/public/browser/android/compositor.h" | 67 #include "content/public/browser/android/compositor.h" |
| 67 #include "content/public/browser/android/synchronous_compositor_client.h" | 68 #include "content/public/browser/android/synchronous_compositor_client.h" |
| 68 #include "content/public/browser/browser_thread.h" | 69 #include "content/public/browser/browser_thread.h" |
| 69 #include "content/public/browser/devtools_agent_host.h" | 70 #include "content/public/browser/devtools_agent_host.h" |
| 70 #include "content/public/browser/render_view_host.h" | 71 #include "content/public/browser/render_view_host.h" |
| 71 #include "content/public/browser/render_widget_host_iterator.h" | 72 #include "content/public/browser/render_widget_host_iterator.h" |
| 72 #include "content/public/common/content_switches.h" | 73 #include "content/public/common/content_switches.h" |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 | 169 |
| 169 void GLHelperHolder::Initialize() { | 170 void GLHelperHolder::Initialize() { |
| 170 auto* factory = BrowserGpuChannelHostFactory::instance(); | 171 auto* factory = BrowserGpuChannelHostFactory::instance(); |
| 171 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host(factory->GetGpuChannel()); | 172 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host(factory->GetGpuChannel()); |
| 172 | 173 |
| 173 // The Browser Compositor is in charge of reestablishing the channel if its | 174 // The Browser Compositor is in charge of reestablishing the channel if its |
| 174 // missing. | 175 // missing. |
| 175 if (!gpu_channel_host) | 176 if (!gpu_channel_host) |
| 176 return; | 177 return; |
| 177 | 178 |
| 179 int32_t stream_id = kGpuStreamIdDefault; |
| 180 gpu::SchedulingPriority stream_priority = kGpuStreamPriorityUI; |
| 181 |
| 178 // This is for an offscreen context, so we don't need the default framebuffer | 182 // This is for an offscreen context, so we don't need the default framebuffer |
| 179 // to have alpha, stencil, depth, antialiasing. | 183 // to have alpha, stencil, depth, antialiasing. |
| 180 gpu::gles2::ContextCreationAttribHelper attributes; | 184 gpu::gles2::ContextCreationAttribHelper attributes; |
| 181 attributes.alpha_size = -1; | 185 attributes.alpha_size = -1; |
| 182 attributes.stencil_size = 0; | 186 attributes.stencil_size = 0; |
| 183 attributes.depth_size = 0; | 187 attributes.depth_size = 0; |
| 184 attributes.samples = 0; | 188 attributes.samples = 0; |
| 185 attributes.sample_buffers = 0; | 189 attributes.sample_buffers = 0; |
| 186 attributes.bind_generates_resource = false; | 190 attributes.bind_generates_resource = false; |
| 187 | 191 |
| 188 gpu::SharedMemoryLimits limits; | 192 gpu::SharedMemoryLimits limits; |
| 189 // The GLHelper context doesn't do a lot of stuff, so we don't expect it to | 193 // The GLHelper context doesn't do a lot of stuff, so we don't expect it to |
| 190 // need a lot of space for commands. | 194 // need a lot of space for commands. |
| 191 limits.command_buffer_size = 1024; | 195 limits.command_buffer_size = 1024; |
| 192 // The transfer buffer is used for shaders among other things, so give some | 196 // The transfer buffer is used for shaders among other things, so give some |
| 193 // reasonable but small limit. | 197 // reasonable but small limit. |
| 194 limits.start_transfer_buffer_size = 4 * 1024; | 198 limits.start_transfer_buffer_size = 4 * 1024; |
| 195 limits.min_transfer_buffer_size = 4 * 1024; | 199 limits.min_transfer_buffer_size = 4 * 1024; |
| 196 limits.max_transfer_buffer_size = 128 * 1024; | 200 limits.max_transfer_buffer_size = 128 * 1024; |
| 197 // Very few allocations from mapped memory pool, so this can be really low. | 201 // Very few allocations from mapped memory pool, so this can be really low. |
| 198 limits.mapped_memory_reclaim_limit = 4 * 1024; | 202 limits.mapped_memory_reclaim_limit = 4 * 1024; |
| 199 | 203 |
| 200 constexpr bool automatic_flushes = false; | 204 constexpr bool automatic_flushes = false; |
| 201 constexpr bool support_locking = false; | 205 constexpr bool support_locking = false; |
| 202 const GURL url("chrome://gpu/RenderWidgetHostViewAndroid"); | 206 const GURL url("chrome://gpu/RenderWidgetHostViewAndroid"); |
| 203 | 207 |
| 204 provider_ = new ui::ContextProviderCommandBuffer( | 208 provider_ = new ui::ContextProviderCommandBuffer( |
| 205 std::move(gpu_channel_host), gpu::GPU_STREAM_DEFAULT, | 209 std::move(gpu_channel_host), stream_id, stream_priority, |
| 206 gpu::GpuStreamPriority::NORMAL, gpu::kNullSurfaceHandle, url, | 210 gpu::kNullSurfaceHandle, url, automatic_flushes, support_locking, limits, |
| 207 automatic_flushes, support_locking, limits, attributes, nullptr, | 211 attributes, nullptr, |
| 208 ui::command_buffer_metrics::BROWSER_OFFSCREEN_MAINTHREAD_CONTEXT); | 212 ui::command_buffer_metrics::BROWSER_OFFSCREEN_MAINTHREAD_CONTEXT); |
| 209 if (!provider_->BindToCurrentThread()) | 213 if (!provider_->BindToCurrentThread()) |
| 210 return; | 214 return; |
| 211 provider_->ContextGL()->TraceBeginCHROMIUM( | 215 provider_->ContextGL()->TraceBeginCHROMIUM( |
| 212 "gpu_toplevel", | 216 "gpu_toplevel", |
| 213 base::StringPrintf("CmdBufferImageTransportFactory-%p", provider_.get()) | 217 base::StringPrintf("CmdBufferImageTransportFactory-%p", provider_.get()) |
| 214 .c_str()); | 218 .c_str()); |
| 215 provider_->SetLostContextCallback( | 219 provider_->SetLostContextCallback( |
| 216 base::Bind(&GLHelperHolder::OnContextLost, base::Unretained(this))); | 220 base::Bind(&GLHelperHolder::OnContextLost, base::Unretained(this))); |
| 217 gl_helper_.reset(new display_compositor::GLHelper( | 221 gl_helper_.reset(new display_compositor::GLHelper( |
| (...skipping 1973 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2191 | 2195 |
| 2192 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); | 2196 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); |
| 2193 if (!compositor) | 2197 if (!compositor) |
| 2194 return; | 2198 return; |
| 2195 | 2199 |
| 2196 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( | 2200 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( |
| 2197 overscroll_refresh_handler, compositor, view_.GetDipScale()); | 2201 overscroll_refresh_handler, compositor, view_.GetDipScale()); |
| 2198 } | 2202 } |
| 2199 | 2203 |
| 2200 } // namespace content | 2204 } // namespace content |
| OLD | NEW |