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

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

Issue 2120713002: Fix use_image_texture_target inconsistencies (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix content browsertests Created 4 years, 5 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 22 matching lines...) Expand all
33 #include "base/threading/thread_local.h" 33 #include "base/threading/thread_local.h"
34 #include "base/threading/thread_restrictions.h" 34 #include "base/threading/thread_restrictions.h"
35 #include "base/threading/thread_task_runner_handle.h" 35 #include "base/threading/thread_task_runner_handle.h"
36 #include "base/trace_event/trace_event.h" 36 #include "base/trace_event/trace_event.h"
37 #include "base/values.h" 37 #include "base/values.h"
38 #include "build/build_config.h" 38 #include "build/build_config.h"
39 #include "cc/base/histograms.h" 39 #include "cc/base/histograms.h"
40 #include "cc/base/switches.h" 40 #include "cc/base/switches.h"
41 #include "cc/blink/web_external_bitmap_impl.h" 41 #include "cc/blink/web_external_bitmap_impl.h"
42 #include "cc/blink/web_layer_impl.h" 42 #include "cc/blink/web_layer_impl.h"
43 #include "cc/output/buffer_to_texture_target_map.h"
43 #include "cc/output/output_surface.h" 44 #include "cc/output/output_surface.h"
44 #include "cc/output/vulkan_in_process_context_provider.h" 45 #include "cc/output/vulkan_in_process_context_provider.h"
45 #include "cc/raster/task_graph_runner.h" 46 #include "cc/raster/task_graph_runner.h"
46 #include "cc/trees/layer_tree_host_common.h" 47 #include "cc/trees/layer_tree_host_common.h"
47 #include "cc/trees/layer_tree_settings.h" 48 #include "cc/trees/layer_tree_settings.h"
48 #include "components/memory_coordinator/child/child_memory_coordinator_impl.h" 49 #include "components/memory_coordinator/child/child_memory_coordinator_impl.h"
49 #include "components/scheduler/child/compositor_worker_scheduler.h" 50 #include "components/scheduler/child/compositor_worker_scheduler.h"
50 #include "components/scheduler/child/webthread_base.h" 51 #include "components/scheduler/child/webthread_base.h"
51 #include "components/scheduler/child/webthread_impl_for_worker_scheduler.h" 52 #include "components/scheduler/child/webthread_impl_for_worker_scheduler.h"
52 #include "components/scheduler/renderer/renderer_scheduler.h" 53 #include "components/scheduler/renderer/renderer_scheduler.h"
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 408
408 private: 409 private:
409 mojo::StrongBinding<mojom::EmbeddedWorkerSetup> binding_; 410 mojo::StrongBinding<mojom::EmbeddedWorkerSetup> binding_;
410 }; 411 };
411 412
412 void CreateEmbeddedWorkerSetup( 413 void CreateEmbeddedWorkerSetup(
413 mojo::InterfaceRequest<mojom::EmbeddedWorkerSetup> request) { 414 mojo::InterfaceRequest<mojom::EmbeddedWorkerSetup> request) {
414 new EmbeddedWorkerSetupImpl(std::move(request)); 415 new EmbeddedWorkerSetupImpl(std::move(request));
415 } 416 }
416 417
417 void StringToUintVector(const std::string& str, std::vector<unsigned>* vector) {
418 DCHECK(vector->empty());
419 std::vector<std::string> pieces = base::SplitString(
420 str, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
421 DCHECK_EQ(pieces.size(), static_cast<size_t>(gfx::BufferFormat::LAST) + 1);
422 for (size_t i = 0; i < pieces.size(); ++i) {
423 unsigned number = 0;
424 bool succeed = base::StringToUint(pieces[i], &number);
425 DCHECK(succeed);
426 vector->push_back(number);
427 }
428 }
429
430 scoped_refptr<ContextProviderCommandBuffer> CreateOffscreenContext( 418 scoped_refptr<ContextProviderCommandBuffer> CreateOffscreenContext(
431 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host, 419 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host,
432 const gpu::SharedMemoryLimits& limits, 420 const gpu::SharedMemoryLimits& limits,
433 bool support_locking, 421 bool support_locking,
434 command_buffer_metrics::ContextType type, 422 command_buffer_metrics::ContextType type,
435 int32_t stream_id, 423 int32_t stream_id,
436 gpu::GpuStreamPriority stream_priority) { 424 gpu::GpuStreamPriority stream_priority) {
437 DCHECK(gpu_channel_host); 425 DCHECK(gpu_channel_host);
438 // This is used to create a few different offscreen contexts: 426 // This is used to create a few different offscreen contexts:
439 // - The shared main thread context (offscreen) used by blink for canvas. 427 // - The shared main thread context (offscreen) used by blink for canvas.
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 Boolean key_exists = false; 762 Boolean key_exists = false;
775 Boolean value = CFPreferencesGetAppBooleanValue( 763 Boolean value = CFPreferencesGetAppBooleanValue(
776 key, kCFPreferencesCurrentApplication, &key_exists); 764 key, kCFPreferencesCurrentApplication, &key_exists);
777 is_elastic_overscroll_enabled_ = !key_exists || value; 765 is_elastic_overscroll_enabled_ = !key_exists || value;
778 #else 766 #else
779 is_elastic_overscroll_enabled_ = false; 767 is_elastic_overscroll_enabled_ = false;
780 #endif 768 #endif
781 769
782 std::string image_texture_target_string = 770 std::string image_texture_target_string =
783 command_line.GetSwitchValueASCII(switches::kContentImageTextureTarget); 771 command_line.GetSwitchValueASCII(switches::kContentImageTextureTarget);
784 StringToUintVector(image_texture_target_string, &use_image_texture_targets_); 772 buffer_to_texture_target_map_ =
773 cc::StringToBufferToTextureTargetMap(image_texture_target_string);
785 774
786 if (command_line.HasSwitch(switches::kDisableLCDText)) { 775 if (command_line.HasSwitch(switches::kDisableLCDText)) {
787 is_lcd_text_enabled_ = false; 776 is_lcd_text_enabled_ = false;
788 } else if (command_line.HasSwitch(switches::kEnableLCDText)) { 777 } else if (command_line.HasSwitch(switches::kEnableLCDText)) {
789 is_lcd_text_enabled_ = true; 778 is_lcd_text_enabled_ = true;
790 } else { 779 } else {
791 #if defined(OS_ANDROID) 780 #if defined(OS_ANDROID)
792 is_lcd_text_enabled_ = false; 781 is_lcd_text_enabled_ = false;
793 #else 782 #else
794 is_lcd_text_enabled_ = true; 783 is_lcd_text_enabled_ = true;
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 const bool enable_video_accelerator = 1464 const bool enable_video_accelerator =
1476 !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); 1465 !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode);
1477 const bool enable_gpu_memory_buffer_video_frames = 1466 const bool enable_gpu_memory_buffer_video_frames =
1478 #if defined(OS_MACOSX) || defined(OS_LINUX) 1467 #if defined(OS_MACOSX) || defined(OS_LINUX)
1479 !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) && 1468 !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) &&
1480 !cmd_line->HasSwitch(switches::kDisableGpuCompositing) && 1469 !cmd_line->HasSwitch(switches::kDisableGpuCompositing) &&
1481 !gpu_channel_host->gpu_info().software_rendering; 1470 !gpu_channel_host->gpu_info().software_rendering;
1482 #else 1471 #else
1483 cmd_line->HasSwitch(switches::kEnableGpuMemoryBufferVideoFrames); 1472 cmd_line->HasSwitch(switches::kEnableGpuMemoryBufferVideoFrames);
1484 #endif 1473 #endif
1485 std::vector<unsigned> image_texture_targets;
1486 std::string video_frame_image_texture_target_string =
1487 cmd_line->GetSwitchValueASCII(switches::kVideoImageTextureTarget);
1488 StringToUintVector(video_frame_image_texture_target_string,
1489 &image_texture_targets);
1490 1474
1491 gpu_factories_.push_back(RendererGpuVideoAcceleratorFactories::Create( 1475 gpu_factories_.push_back(RendererGpuVideoAcceleratorFactories::Create(
1492 std::move(gpu_channel_host), base::ThreadTaskRunnerHandle::Get(), 1476 std::move(gpu_channel_host), base::ThreadTaskRunnerHandle::Get(),
1493 media_task_runner, std::move(media_context_provider), 1477 media_task_runner, std::move(media_context_provider),
1494 enable_gpu_memory_buffer_video_frames, image_texture_targets, 1478 enable_gpu_memory_buffer_video_frames, buffer_to_texture_target_map_,
1495 enable_video_accelerator)); 1479 enable_video_accelerator));
1496 return gpu_factories_.back(); 1480 return gpu_factories_.back();
1497 } 1481 }
1498 1482
1499 scoped_refptr<ContextProviderCommandBuffer> 1483 scoped_refptr<ContextProviderCommandBuffer>
1500 RenderThreadImpl::SharedMainThreadContextProvider() { 1484 RenderThreadImpl::SharedMainThreadContextProvider() {
1501 DCHECK(IsMainThread()); 1485 DCHECK(IsMainThread());
1502 if (shared_main_thread_contexts_ && 1486 if (shared_main_thread_contexts_ &&
1503 shared_main_thread_contexts_->ContextGL()->GetGraphicsResetStatusKHR() == 1487 shared_main_thread_contexts_->ContextGL()->GetGraphicsResetStatusKHR() ==
1504 GL_NO_ERROR) 1488 GL_NO_ERROR)
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1601 } 1585 }
1602 1586
1603 bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() { 1587 bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() {
1604 return is_gpu_memory_buffer_compositor_resources_enabled_; 1588 return is_gpu_memory_buffer_compositor_resources_enabled_;
1605 } 1589 }
1606 1590
1607 bool RenderThreadImpl::IsElasticOverscrollEnabled() { 1591 bool RenderThreadImpl::IsElasticOverscrollEnabled() {
1608 return is_elastic_overscroll_enabled_; 1592 return is_elastic_overscroll_enabled_;
1609 } 1593 }
1610 1594
1611 std::vector<unsigned> RenderThreadImpl::GetImageTextureTargets() { 1595 const cc::BufferToTextureTargetMap&
1612 return use_image_texture_targets_; 1596 RenderThreadImpl::GetBufferToTextureTargetMap() {
1597 return buffer_to_texture_target_map_;
1613 } 1598 }
1614 1599
1615 scoped_refptr<base::SingleThreadTaskRunner> 1600 scoped_refptr<base::SingleThreadTaskRunner>
1616 RenderThreadImpl::GetCompositorMainThreadTaskRunner() { 1601 RenderThreadImpl::GetCompositorMainThreadTaskRunner() {
1617 return main_thread_compositor_task_runner_; 1602 return main_thread_compositor_task_runner_;
1618 } 1603 }
1619 1604
1620 scoped_refptr<base::SingleThreadTaskRunner> 1605 scoped_refptr<base::SingleThreadTaskRunner>
1621 RenderThreadImpl::GetCompositorImplThreadTaskRunner() { 1606 RenderThreadImpl::GetCompositorImplThreadTaskRunner() {
1622 return compositor_task_runner_; 1607 return compositor_task_runner_;
(...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after
2241 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical) 2226 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical)
2242 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate; 2227 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate;
2243 2228
2244 blink::mainThreadIsolate()->MemoryPressureNotification( 2229 blink::mainThreadIsolate()->MemoryPressureNotification(
2245 v8_memory_pressure_level); 2230 v8_memory_pressure_level);
2246 blink::MemoryPressureNotificationToWorkerThreadIsolates( 2231 blink::MemoryPressureNotificationToWorkerThreadIsolates(
2247 v8_memory_pressure_level); 2232 v8_memory_pressure_level);
2248 } 2233 }
2249 2234
2250 } // namespace content 2235 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_thread_impl.h ('k') | content/renderer/render_thread_impl_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698