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

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: feedback 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 23 matching lines...) Expand all
34 #include "base/threading/thread_local.h" 34 #include "base/threading/thread_local.h"
35 #include "base/threading/thread_restrictions.h" 35 #include "base/threading/thread_restrictions.h"
36 #include "base/threading/thread_task_runner_handle.h" 36 #include "base/threading/thread_task_runner_handle.h"
37 #include "base/trace_event/trace_event.h" 37 #include "base/trace_event/trace_event.h"
38 #include "base/values.h" 38 #include "base/values.h"
39 #include "build/build_config.h" 39 #include "build/build_config.h"
40 #include "cc/base/histograms.h" 40 #include "cc/base/histograms.h"
41 #include "cc/base/switches.h" 41 #include "cc/base/switches.h"
42 #include "cc/blink/web_external_bitmap_impl.h" 42 #include "cc/blink/web_external_bitmap_impl.h"
43 #include "cc/blink/web_layer_impl.h" 43 #include "cc/blink/web_layer_impl.h"
44 #include "cc/output/buffer_to_texture_target_map.h"
44 #include "cc/output/output_surface.h" 45 #include "cc/output/output_surface.h"
45 #include "cc/output/vulkan_in_process_context_provider.h" 46 #include "cc/output/vulkan_in_process_context_provider.h"
46 #include "cc/raster/task_graph_runner.h" 47 #include "cc/raster/task_graph_runner.h"
47 #include "cc/trees/layer_tree_host_common.h" 48 #include "cc/trees/layer_tree_host_common.h"
48 #include "cc/trees/layer_tree_settings.h" 49 #include "cc/trees/layer_tree_settings.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"
53 #include "content/child/appcache/appcache_dispatcher.h" 54 #include "content/child/appcache/appcache_dispatcher.h"
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 406
406 private: 407 private:
407 mojo::StrongBinding<mojom::EmbeddedWorkerSetup> binding_; 408 mojo::StrongBinding<mojom::EmbeddedWorkerSetup> binding_;
408 }; 409 };
409 410
410 void CreateEmbeddedWorkerSetup( 411 void CreateEmbeddedWorkerSetup(
411 mojo::InterfaceRequest<mojom::EmbeddedWorkerSetup> request) { 412 mojo::InterfaceRequest<mojom::EmbeddedWorkerSetup> request) {
412 new EmbeddedWorkerSetupImpl(std::move(request)); 413 new EmbeddedWorkerSetupImpl(std::move(request));
413 } 414 }
414 415
415 void StringToUintVector(const std::string& str, std::vector<unsigned>* vector) {
416 DCHECK(vector->empty());
417 std::vector<std::string> pieces = base::SplitString(
418 str, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
419 DCHECK_EQ(pieces.size(), static_cast<size_t>(gfx::BufferFormat::LAST) + 1);
420 for (size_t i = 0; i < pieces.size(); ++i) {
421 unsigned number = 0;
422 bool succeed = base::StringToUint(pieces[i], &number);
423 DCHECK(succeed);
424 vector->push_back(number);
425 }
426 }
427
428 scoped_refptr<ContextProviderCommandBuffer> CreateOffscreenContext( 416 scoped_refptr<ContextProviderCommandBuffer> CreateOffscreenContext(
429 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host, 417 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host,
430 const gpu::SharedMemoryLimits& limits, 418 const gpu::SharedMemoryLimits& limits,
431 bool support_locking, 419 bool support_locking,
432 command_buffer_metrics::ContextType type, 420 command_buffer_metrics::ContextType type,
433 int32_t stream_id, 421 int32_t stream_id,
434 gpu::GpuStreamPriority stream_priority) { 422 gpu::GpuStreamPriority stream_priority) {
435 DCHECK(gpu_channel_host); 423 DCHECK(gpu_channel_host);
436 // This is used to create a few different offscreen contexts: 424 // This is used to create a few different offscreen contexts:
437 // - The shared main thread context (offscreen) used by blink for canvas. 425 // - The shared main thread context (offscreen) used by blink for canvas.
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 Boolean key_exists = false; 738 Boolean key_exists = false;
751 Boolean value = CFPreferencesGetAppBooleanValue( 739 Boolean value = CFPreferencesGetAppBooleanValue(
752 key, kCFPreferencesCurrentApplication, &key_exists); 740 key, kCFPreferencesCurrentApplication, &key_exists);
753 is_elastic_overscroll_enabled_ = !key_exists || value; 741 is_elastic_overscroll_enabled_ = !key_exists || value;
754 #else 742 #else
755 is_elastic_overscroll_enabled_ = false; 743 is_elastic_overscroll_enabled_ = false;
756 #endif 744 #endif
757 745
758 std::string image_texture_target_string = 746 std::string image_texture_target_string =
759 command_line.GetSwitchValueASCII(switches::kContentImageTextureTarget); 747 command_line.GetSwitchValueASCII(switches::kContentImageTextureTarget);
760 StringToUintVector(image_texture_target_string, &use_image_texture_targets_); 748 buffer_to_texture_target_map_ =
749 cc::StringToBufferToTextureTargetMap(image_texture_target_string);
761 750
762 if (command_line.HasSwitch(switches::kDisableLCDText)) { 751 if (command_line.HasSwitch(switches::kDisableLCDText)) {
763 is_lcd_text_enabled_ = false; 752 is_lcd_text_enabled_ = false;
764 } else if (command_line.HasSwitch(switches::kEnableLCDText)) { 753 } else if (command_line.HasSwitch(switches::kEnableLCDText)) {
765 is_lcd_text_enabled_ = true; 754 is_lcd_text_enabled_ = true;
766 } else { 755 } else {
767 #if defined(OS_ANDROID) 756 #if defined(OS_ANDROID)
768 is_lcd_text_enabled_ = false; 757 is_lcd_text_enabled_ = false;
769 #else 758 #else
770 is_lcd_text_enabled_ = true; 759 is_lcd_text_enabled_ = true;
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after
1448 const bool enable_video_accelerator = 1437 const bool enable_video_accelerator =
1449 !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); 1438 !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode);
1450 const bool enable_gpu_memory_buffer_video_frames = 1439 const bool enable_gpu_memory_buffer_video_frames =
1451 #if defined(OS_MACOSX) || defined(OS_LINUX) 1440 #if defined(OS_MACOSX) || defined(OS_LINUX)
1452 !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) && 1441 !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) &&
1453 !cmd_line->HasSwitch(switches::kDisableGpuCompositing) && 1442 !cmd_line->HasSwitch(switches::kDisableGpuCompositing) &&
1454 !gpu_channel_host->gpu_info().software_rendering; 1443 !gpu_channel_host->gpu_info().software_rendering;
1455 #else 1444 #else
1456 cmd_line->HasSwitch(switches::kEnableGpuMemoryBufferVideoFrames); 1445 cmd_line->HasSwitch(switches::kEnableGpuMemoryBufferVideoFrames);
1457 #endif 1446 #endif
1458 std::vector<unsigned> image_texture_targets;
1459 std::string video_frame_image_texture_target_string =
1460 cmd_line->GetSwitchValueASCII(switches::kVideoImageTextureTarget);
1461 StringToUintVector(video_frame_image_texture_target_string,
1462 &image_texture_targets);
1463 1447
1464 gpu_factories_.push_back(RendererGpuVideoAcceleratorFactories::Create( 1448 gpu_factories_.push_back(RendererGpuVideoAcceleratorFactories::Create(
1465 std::move(gpu_channel_host), base::ThreadTaskRunnerHandle::Get(), 1449 std::move(gpu_channel_host), base::ThreadTaskRunnerHandle::Get(),
1466 media_task_runner, std::move(media_context_provider), 1450 media_task_runner, std::move(media_context_provider),
1467 enable_gpu_memory_buffer_video_frames, image_texture_targets, 1451 enable_gpu_memory_buffer_video_frames, buffer_to_texture_target_map_,
1468 enable_video_accelerator)); 1452 enable_video_accelerator));
1469 return gpu_factories_.back(); 1453 return gpu_factories_.back();
1470 } 1454 }
1471 1455
1472 scoped_refptr<ContextProviderCommandBuffer> 1456 scoped_refptr<ContextProviderCommandBuffer>
1473 RenderThreadImpl::SharedMainThreadContextProvider() { 1457 RenderThreadImpl::SharedMainThreadContextProvider() {
1474 DCHECK(IsMainThread()); 1458 DCHECK(IsMainThread());
1475 if (shared_main_thread_contexts_ && 1459 if (shared_main_thread_contexts_ &&
1476 shared_main_thread_contexts_->ContextGL()->GetGraphicsResetStatusKHR() == 1460 shared_main_thread_contexts_->ContextGL()->GetGraphicsResetStatusKHR() ==
1477 GL_NO_ERROR) 1461 GL_NO_ERROR)
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1588 } 1572 }
1589 1573
1590 bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() { 1574 bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() {
1591 return is_gpu_memory_buffer_compositor_resources_enabled_; 1575 return is_gpu_memory_buffer_compositor_resources_enabled_;
1592 } 1576 }
1593 1577
1594 bool RenderThreadImpl::IsElasticOverscrollEnabled() { 1578 bool RenderThreadImpl::IsElasticOverscrollEnabled() {
1595 return is_elastic_overscroll_enabled_; 1579 return is_elastic_overscroll_enabled_;
1596 } 1580 }
1597 1581
1598 std::vector<unsigned> RenderThreadImpl::GetImageTextureTargets() { 1582 const cc::BufferToTextureTargetMap&
1599 return use_image_texture_targets_; 1583 RenderThreadImpl::GetBufferToTextureTargetMap() {
1584 return buffer_to_texture_target_map_;
1600 } 1585 }
1601 1586
1602 scoped_refptr<base::SingleThreadTaskRunner> 1587 scoped_refptr<base::SingleThreadTaskRunner>
1603 RenderThreadImpl::GetCompositorMainThreadTaskRunner() { 1588 RenderThreadImpl::GetCompositorMainThreadTaskRunner() {
1604 return main_thread_compositor_task_runner_; 1589 return main_thread_compositor_task_runner_;
1605 } 1590 }
1606 1591
1607 scoped_refptr<base::SingleThreadTaskRunner> 1592 scoped_refptr<base::SingleThreadTaskRunner>
1608 RenderThreadImpl::GetCompositorImplThreadTaskRunner() { 1593 RenderThreadImpl::GetCompositorImplThreadTaskRunner() {
1609 return compositor_task_runner_; 1594 return compositor_task_runner_;
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
2222 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical) 2207 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical)
2223 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate; 2208 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate;
2224 2209
2225 blink::mainThreadIsolate()->MemoryPressureNotification( 2210 blink::mainThreadIsolate()->MemoryPressureNotification(
2226 v8_memory_pressure_level); 2211 v8_memory_pressure_level);
2227 blink::MemoryPressureNotificationToWorkerThreadIsolates( 2212 blink::MemoryPressureNotificationToWorkerThreadIsolates(
2228 v8_memory_pressure_level); 2213 v8_memory_pressure_level);
2229 } 2214 }
2230 2215
2231 } // namespace content 2216 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698