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

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

Issue 2075343003: Use a cc::Display for layout tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mailbox-test
Patch Set: layouttests-display: self-nits Created 4 years, 6 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
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 1805 matching lines...) Expand 10 before | Expand all | Expand 10 after
1816 #endif 1816 #endif
1817 1817
1818 uint32_t output_surface_id = g_next_output_surface_id++; 1818 uint32_t output_surface_id = g_next_output_surface_id++;
1819 1819
1820 if (command_line.HasSwitch(switches::kEnableVulkan)) { 1820 if (command_line.HasSwitch(switches::kEnableVulkan)) {
1821 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider = 1821 scoped_refptr<cc::VulkanContextProvider> vulkan_context_provider =
1822 cc::VulkanInProcessContextProvider::Create(); 1822 cc::VulkanInProcessContextProvider::Create();
1823 if (vulkan_context_provider) { 1823 if (vulkan_context_provider) {
1824 DCHECK(!layout_test_mode()); 1824 DCHECK(!layout_test_mode());
1825 return base::WrapUnique(new CompositorOutputSurface( 1825 return base::WrapUnique(new CompositorOutputSurface(
1826 routing_id, output_surface_id, vulkan_context_provider, 1826 routing_id, output_surface_id, std::move(vulkan_context_provider),
1827 frame_swap_message_queue)); 1827 std::move(frame_swap_message_queue)));
1828 } 1828 }
1829 } 1829 }
1830 1830
1831 // Create a gpu process channel and verify we want to use GPU compositing 1831 // Create a gpu process channel and verify we want to use GPU compositing
1832 // before creating any context providers. 1832 // before creating any context providers.
1833 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host; 1833 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host;
1834 if (!use_software) { 1834 if (!use_software) {
1835 gpu_channel_host = EstablishGpuChannelSync( 1835 gpu_channel_host = EstablishGpuChannelSync(
1836 CAUSE_FOR_GPU_LAUNCH_RENDERER_VERIFY_GPU_COMPOSITING); 1836 CAUSE_FOR_GPU_LAUNCH_RENDERER_VERIFY_GPU_COMPOSITING);
1837 if (!gpu_channel_host) { 1837 if (!gpu_channel_host) {
1838 // Cause the compositor to wait and try again. 1838 // Cause the compositor to wait and try again.
1839 return nullptr; 1839 return nullptr;
1840 } 1840 }
1841 // We may get a valid channel, but with a software renderer. In that case, 1841 // We may get a valid channel, but with a software renderer. In that case,
1842 // disable GPU compositing. 1842 // disable GPU compositing.
1843 if (gpu_channel_host->gpu_info().software_rendering) 1843 if (gpu_channel_host->gpu_info().software_rendering)
1844 use_software = true; 1844 use_software = true;
1845 } 1845 }
1846 1846
1847 if (use_software) { 1847 if (use_software) {
1848 DCHECK(!layout_test_mode()); 1848 DCHECK(!layout_test_mode());
1849 return base::WrapUnique( 1849 return base::WrapUnique(new CompositorOutputSurface(
1850 new CompositorOutputSurface(routing_id, output_surface_id, nullptr, 1850 routing_id, output_surface_id, nullptr, nullptr,
1851 nullptr, frame_swap_message_queue)); 1851 std::move(frame_swap_message_queue)));
1852 } 1852 }
1853 1853
1854 scoped_refptr<ContextProviderCommandBuffer> worker_context_provider = 1854 scoped_refptr<ContextProviderCommandBuffer> worker_context_provider =
1855 SharedCompositorWorkerContextProvider(); 1855 SharedCompositorWorkerContextProvider();
1856 if (!worker_context_provider) { 1856 if (!worker_context_provider) {
1857 // Cause the compositor to wait and try again. 1857 // Cause the compositor to wait and try again.
1858 return nullptr; 1858 return nullptr;
1859 } 1859 }
1860 1860
1861 // The renderer compositor context doesn't do a lot of stuff, so we don't 1861 // The renderer compositor context doesn't do a lot of stuff, so we don't
(...skipping 16 matching lines...) Expand all
1878 constexpr bool support_locking = false; 1878 constexpr bool support_locking = false;
1879 1879
1880 // The compositor context shares resources with the worker context unless 1880 // The compositor context shares resources with the worker context unless
1881 // the worker is async. 1881 // the worker is async.
1882 ContextProviderCommandBuffer* share_context = worker_context_provider.get(); 1882 ContextProviderCommandBuffer* share_context = worker_context_provider.get();
1883 if (IsAsyncWorkerContextEnabled()) 1883 if (IsAsyncWorkerContextEnabled())
1884 share_context = nullptr; 1884 share_context = nullptr;
1885 1885
1886 scoped_refptr<ContextProviderCommandBuffer> context_provider( 1886 scoped_refptr<ContextProviderCommandBuffer> context_provider(
1887 new ContextProviderCommandBuffer( 1887 new ContextProviderCommandBuffer(
1888 std::move(gpu_channel_host), gpu::GPU_STREAM_DEFAULT, 1888 gpu_channel_host, gpu::GPU_STREAM_DEFAULT,
1889 gpu::GpuStreamPriority::NORMAL, gpu::kNullSurfaceHandle, url, 1889 gpu::GpuStreamPriority::NORMAL, gpu::kNullSurfaceHandle, url,
1890 gl::PreferIntegratedGpu, automatic_flushes, support_locking, limits, 1890 gl::PreferIntegratedGpu, automatic_flushes, support_locking, limits,
1891 attributes, share_context, 1891 attributes, share_context,
1892 command_buffer_metrics::RENDER_COMPOSITOR_CONTEXT)); 1892 command_buffer_metrics::RENDER_COMPOSITOR_CONTEXT));
1893 1893
1894 // Composite-to-mailbox is currently used for layout tests in order to cause
1895 // them to draw inside in the renderer to do the readback there. This should
1896 // no longer be the case when crbug.com/311404 is fixed.
1897 if (layout_test_deps_) { 1894 if (layout_test_deps_) {
1898 return layout_test_deps_->CreateOutputSurface( 1895 return layout_test_deps_->CreateOutputSurface(
1899 output_surface_id, std::move(context_provider), 1896 std::move(gpu_channel_host), std::move(context_provider),
1900 std::move(worker_context_provider)); 1897 std::move(worker_context_provider), this);
1901 } 1898 }
1902 1899
1903 #if defined(OS_ANDROID) 1900 #if defined(OS_ANDROID)
1904 if (sync_compositor_message_filter_) { 1901 if (sync_compositor_message_filter_) {
1905 return base::WrapUnique(new SynchronousCompositorOutputSurface( 1902 return base::WrapUnique(new SynchronousCompositorOutputSurface(
1906 context_provider, worker_context_provider, routing_id, 1903 std::move(context_provider), std::move(worker_context_provider),
1907 output_surface_id, sync_compositor_message_filter_.get(), 1904 routing_id, output_surface_id, sync_compositor_message_filter_.get(),
1908 frame_swap_message_queue)); 1905 std::move(frame_swap_message_queue)));
1909 } 1906 }
1910 #endif 1907 #endif
1911 1908
1912 return base::WrapUnique(new CompositorOutputSurface( 1909 return base::WrapUnique(new CompositorOutputSurface(
1913 routing_id, output_surface_id, std::move(context_provider), 1910 routing_id, output_surface_id, std::move(context_provider),
1914 std::move(worker_context_provider), frame_swap_message_queue)); 1911 std::move(worker_context_provider), std::move(frame_swap_message_queue)));
1915 } 1912 }
1916 1913
1917 blink::WebMediaStreamCenter* RenderThreadImpl::CreateMediaStreamCenter( 1914 blink::WebMediaStreamCenter* RenderThreadImpl::CreateMediaStreamCenter(
1918 blink::WebMediaStreamCenterClient* client) { 1915 blink::WebMediaStreamCenterClient* client) {
1919 #if defined(ENABLE_WEBRTC) 1916 #if defined(ENABLE_WEBRTC)
1920 if (!media_stream_center_) { 1917 if (!media_stream_center_) {
1921 media_stream_center_ = GetContentClient()->renderer() 1918 media_stream_center_ = GetContentClient()->renderer()
1922 ->OverrideCreateWebMediaStreamCenter(client); 1919 ->OverrideCreateWebMediaStreamCenter(client);
1923 if (!media_stream_center_) { 1920 if (!media_stream_center_) {
1924 std::unique_ptr<MediaStreamCenter> media_stream_center( 1921 std::unique_ptr<MediaStreamCenter> media_stream_center(
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
2212 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical) 2209 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical)
2213 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate; 2210 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate;
2214 2211
2215 blink::mainThreadIsolate()->MemoryPressureNotification( 2212 blink::mainThreadIsolate()->MemoryPressureNotification(
2216 v8_memory_pressure_level); 2213 v8_memory_pressure_level);
2217 blink::MemoryPressureNotificationToWorkerThreadIsolates( 2214 blink::MemoryPressureNotificationToWorkerThreadIsolates(
2218 v8_memory_pressure_level); 2215 v8_memory_pressure_level);
2219 } 2216 }
2220 2217
2221 } // namespace content 2218 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698