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

Side by Side Diff: content/renderer/render_thread_impl.cc

Issue 2452483002: Move GpuMemoryBufferManager and SharedBitmapManager to CompositorFrameSink (Closed)
Patch Set: compile fixes Created 4 years, 1 month 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
OLDNEW
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/renderer/render_thread_impl.h" 5 #include "content/renderer/render_thread_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <utility> 10 #include <utility>
(...skipping 1922 matching lines...) Expand 10 before | Expand all | Expand 10 after
1933 if (command_line.HasSwitch(switches::kDisableGpuCompositing)) 1933 if (command_line.HasSwitch(switches::kDisableGpuCompositing))
1934 use_software = true; 1934 use_software = true;
1935 1935
1936 #if defined(USE_AURA) 1936 #if defined(USE_AURA)
1937 if (GetServiceManagerConnection() && !use_software && 1937 if (GetServiceManagerConnection() && !use_software &&
1938 command_line.HasSwitch(switches::kUseMusInRenderer)) { 1938 command_line.HasSwitch(switches::kUseMusInRenderer)) {
1939 RenderWidgetMusConnection* connection = 1939 RenderWidgetMusConnection* connection =
1940 RenderWidgetMusConnection::GetOrCreate(routing_id); 1940 RenderWidgetMusConnection::GetOrCreate(routing_id);
1941 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host = 1941 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host =
1942 EstablishGpuChannelSync(); 1942 EstablishGpuChannelSync();
1943 return connection->CreateCompositorFrameSink(std::move(gpu_channel_host)); 1943 return connection->CreateCompositorFrameSink(std::move(gpu_channel_host),
1944 GetGpuMemoryBufferManager());
1944 } 1945 }
1945 #endif 1946 #endif
1946 1947
1947 uint32_t compositor_frame_sink_id = g_next_compositor_frame_sink_id++; 1948 uint32_t compositor_frame_sink_id = g_next_compositor_frame_sink_id++;
1948 1949
1949 if (command_line.HasSwitch(switches::kEnableVulkan)) { 1950 if (command_line.HasSwitch(switches::kEnableVulkan)) {
1950 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider = 1951 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider =
1951 cc::VulkanInProcessContextProvider::Create(); 1952 cc::VulkanInProcessContextProvider::Create();
1952 if (vulkan_context_provider) { 1953 if (vulkan_context_provider) {
1953 DCHECK(!layout_test_mode()); 1954 DCHECK(!layout_test_mode());
(...skipping 17 matching lines...) Expand all
1971 // We may get a valid channel, but with a software renderer. In that case, 1972 // We may get a valid channel, but with a software renderer. In that case,
1972 // disable GPU compositing. 1973 // disable GPU compositing.
1973 if (gpu_channel_host->gpu_info().software_rendering) 1974 if (gpu_channel_host->gpu_info().software_rendering)
1974 use_software = true; 1975 use_software = true;
1975 } 1976 }
1976 1977
1977 if (use_software) { 1978 if (use_software) {
1978 DCHECK(!layout_test_mode()); 1979 DCHECK(!layout_test_mode());
1979 return base::MakeUnique<RendererCompositorFrameSink>( 1980 return base::MakeUnique<RendererCompositorFrameSink>(
1980 routing_id, compositor_frame_sink_id, 1981 routing_id, compositor_frame_sink_id,
1981 CreateExternalBeginFrameSource(routing_id), nullptr, nullptr, 1982 CreateExternalBeginFrameSource(routing_id), nullptr, nullptr, nullptr,
1982 std::move(frame_swap_message_queue)); 1983 shared_bitmap_manager(), std::move(frame_swap_message_queue));
1983 } 1984 }
1984 1985
1985 scoped_refptr<ContextProviderCommandBuffer> worker_context_provider = 1986 scoped_refptr<ContextProviderCommandBuffer> worker_context_provider =
1986 SharedCompositorWorkerContextProvider(); 1987 SharedCompositorWorkerContextProvider();
1987 if (!worker_context_provider) { 1988 if (!worker_context_provider) {
1988 // Cause the compositor to wait and try again. 1989 // Cause the compositor to wait and try again.
1989 return nullptr; 1990 return nullptr;
1990 } 1991 }
1991 1992
1992 // The renderer compositor context doesn't do a lot of stuff, so we don't 1993 // The renderer compositor context doesn't do a lot of stuff, so we don't
(...skipping 24 matching lines...) Expand all
2017 scoped_refptr<ContextProviderCommandBuffer> context_provider( 2018 scoped_refptr<ContextProviderCommandBuffer> context_provider(
2018 new ContextProviderCommandBuffer( 2019 new ContextProviderCommandBuffer(
2019 gpu_channel_host, gpu::GPU_STREAM_DEFAULT, 2020 gpu_channel_host, gpu::GPU_STREAM_DEFAULT,
2020 gpu::GpuStreamPriority::NORMAL, gpu::kNullSurfaceHandle, url, 2021 gpu::GpuStreamPriority::NORMAL, gpu::kNullSurfaceHandle, url,
2021 automatic_flushes, support_locking, limits, attributes, share_context, 2022 automatic_flushes, support_locking, limits, attributes, share_context,
2022 command_buffer_metrics::RENDER_COMPOSITOR_CONTEXT)); 2023 command_buffer_metrics::RENDER_COMPOSITOR_CONTEXT));
2023 2024
2024 if (layout_test_deps_) { 2025 if (layout_test_deps_) {
2025 return layout_test_deps_->CreateCompositorFrameSink( 2026 return layout_test_deps_->CreateCompositorFrameSink(
2026 routing_id, std::move(gpu_channel_host), std::move(context_provider), 2027 routing_id, std::move(gpu_channel_host), std::move(context_provider),
2027 std::move(worker_context_provider), this); 2028 std::move(worker_context_provider), GetGpuMemoryBufferManager(),
2029 shared_bitmap_manager(), this);
danakj 2016/10/27 21:00:34 why not null shared bitmap manager for this and be
piman 2016/10/28 00:58:36 Fair enough, changed (or removed parameter altoget
2028 } 2030 }
2029 2031
2030 #if defined(OS_ANDROID) 2032 #if defined(OS_ANDROID)
2031 if (sync_compositor_message_filter_) { 2033 if (sync_compositor_message_filter_) {
2032 return base::MakeUnique<SynchronousCompositorFrameSink>( 2034 return base::MakeUnique<SynchronousCompositorFrameSink>(
2033 std::move(context_provider), std::move(worker_context_provider), 2035 std::move(context_provider), std::move(worker_context_provider),
2034 routing_id, compositor_frame_sink_id, 2036 GetGpuMemoryBufferManager(), shared_bitmap_manager(), routing_id,
2035 CreateExternalBeginFrameSource(routing_id), 2037 compositor_frame_sink_id, CreateExternalBeginFrameSource(routing_id),
2036 sync_compositor_message_filter_.get(), 2038 sync_compositor_message_filter_.get(),
2037 std::move(frame_swap_message_queue)); 2039 std::move(frame_swap_message_queue));
2038 } 2040 }
2039 #endif 2041 #endif
2040 return base::WrapUnique(new RendererCompositorFrameSink( 2042 return base::WrapUnique(new RendererCompositorFrameSink(
2041 routing_id, compositor_frame_sink_id, 2043 routing_id, compositor_frame_sink_id,
2042 CreateExternalBeginFrameSource(routing_id), std::move(context_provider), 2044 CreateExternalBeginFrameSource(routing_id), std::move(context_provider),
2043 std::move(worker_context_provider), std::move(frame_swap_message_queue))); 2045 std::move(worker_context_provider), GetGpuMemoryBufferManager(),
2046 shared_bitmap_manager(), std::move(frame_swap_message_queue)));
2044 } 2047 }
2045 2048
2046 AssociatedInterfaceRegistry* 2049 AssociatedInterfaceRegistry*
2047 RenderThreadImpl::GetAssociatedInterfaceRegistry() { 2050 RenderThreadImpl::GetAssociatedInterfaceRegistry() {
2048 return &associated_interfaces_; 2051 return &associated_interfaces_;
2049 } 2052 }
2050 2053
2051 std::unique_ptr<cc::SwapPromise> 2054 std::unique_ptr<cc::SwapPromise>
2052 RenderThreadImpl::RequestCopyOfOutputForLayoutTest( 2055 RenderThreadImpl::RequestCopyOfOutputForLayoutTest(
2053 int32_t routing_id, 2056 int32_t routing_id,
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
2471 } 2474 }
2472 } 2475 }
2473 2476
2474 void RenderThreadImpl::OnRendererInterfaceRequest( 2477 void RenderThreadImpl::OnRendererInterfaceRequest(
2475 mojom::RendererAssociatedRequest request) { 2478 mojom::RendererAssociatedRequest request) {
2476 DCHECK(!renderer_binding_.is_bound()); 2479 DCHECK(!renderer_binding_.is_bound());
2477 renderer_binding_.Bind(std::move(request)); 2480 renderer_binding_.Bind(std::move(request));
2478 } 2481 }
2479 2482
2480 } // namespace content 2483 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698