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

Side by Side Diff: content/browser/gpu/gpu_data_manager_impl_private.cc

Issue 126993002: Switch from CommandLine switch to WebPreferences to control Pepper 3D. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix a bug jamesr pointed out Created 6 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | content/browser/renderer_host/render_process_host_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/gpu/gpu_data_manager_impl_private.h" 5 #include "content/browser/gpu/gpu_data_manager_impl_private.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 const GPUVideoMemoryUsageStats& video_memory_usage_stats) { 614 const GPUVideoMemoryUsageStats& video_memory_usage_stats) {
615 GpuDataManagerImpl::UnlockedSession session(owner_); 615 GpuDataManagerImpl::UnlockedSession session(owner_);
616 observer_list_->Notify(&GpuDataManagerObserver::OnVideoMemoryUsageStatsUpdate, 616 observer_list_->Notify(&GpuDataManagerObserver::OnVideoMemoryUsageStatsUpdate,
617 video_memory_usage_stats); 617 video_memory_usage_stats);
618 } 618 }
619 619
620 void GpuDataManagerImplPrivate::AppendRendererCommandLine( 620 void GpuDataManagerImplPrivate::AppendRendererCommandLine(
621 CommandLine* command_line) const { 621 CommandLine* command_line) const {
622 DCHECK(command_line); 622 DCHECK(command_line);
623 623
624 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL)) {
625 if (!command_line->HasSwitch(switches::kDisablePepper3d))
626 command_line->AppendSwitch(switches::kDisablePepper3d);
627 }
628 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING) && 624 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING) &&
629 !command_line->HasSwitch(switches::kDisableAcceleratedCompositing)) 625 !command_line->HasSwitch(switches::kDisableAcceleratedCompositing))
630 command_line->AppendSwitch(switches::kDisableAcceleratedCompositing); 626 command_line->AppendSwitch(switches::kDisableAcceleratedCompositing);
631 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE) && 627 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE) &&
632 !command_line->HasSwitch(switches::kDisableAcceleratedVideoDecode)) 628 !command_line->HasSwitch(switches::kDisableAcceleratedVideoDecode))
633 command_line->AppendSwitch(switches::kDisableAcceleratedVideoDecode); 629 command_line->AppendSwitch(switches::kDisableAcceleratedVideoDecode);
634 #if defined(ENABLE_WEBRTC) 630 #if defined(ENABLE_WEBRTC)
635 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE) && 631 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE) &&
636 !command_line->HasSwitch(switches::kDisableWebRtcHWEncoding)) 632 !command_line->HasSwitch(switches::kDisableWebRtcHWEncoding))
637 command_line->AppendSwitch(switches::kDisableWebRtcHWEncoding); 633 command_line->AppendSwitch(switches::kDisableWebRtcHWEncoding);
638 #endif 634 #endif
639 635
640 if (use_software_compositor_ && 636 if (use_software_compositor_ &&
641 !command_line->HasSwitch(switches::kEnableSoftwareCompositing)) 637 !command_line->HasSwitch(switches::kEnableSoftwareCompositing))
642 command_line->AppendSwitch(switches::kEnableSoftwareCompositing); 638 command_line->AppendSwitch(switches::kEnableSoftwareCompositing);
643 639
644 #if defined(USE_AURA) 640 #if defined(USE_AURA)
645 if (!CanUseGpuBrowserCompositor()) { 641 if (!CanUseGpuBrowserCompositor())
646 command_line->AppendSwitch(switches::kDisableGpuCompositing); 642 command_line->AppendSwitch(switches::kDisableGpuCompositing);
647 command_line->AppendSwitch(switches::kDisablePepper3d);
648 }
649 #endif 643 #endif
650 } 644 }
651 645
652 void GpuDataManagerImplPrivate::AppendGpuCommandLine( 646 void GpuDataManagerImplPrivate::AppendGpuCommandLine(
653 CommandLine* command_line) const { 647 CommandLine* command_line) const {
654 DCHECK(command_line); 648 DCHECK(command_line);
655 649
656 std::string use_gl = 650 std::string use_gl =
657 CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switches::kUseGL); 651 CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switches::kUseGL);
658 base::FilePath swiftshader_path = 652 base::FilePath swiftshader_path =
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 } 734 }
741 #endif 735 #endif
742 } 736 }
743 737
744 void GpuDataManagerImplPrivate::UpdateRendererWebPrefs( 738 void GpuDataManagerImplPrivate::UpdateRendererWebPrefs(
745 WebPreferences* prefs) const { 739 WebPreferences* prefs) const {
746 DCHECK(prefs); 740 DCHECK(prefs);
747 741
748 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING)) 742 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_COMPOSITING))
749 prefs->accelerated_compositing_enabled = false; 743 prefs->accelerated_compositing_enabled = false;
750 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL)) 744 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_WEBGL)) {
751 prefs->experimental_webgl_enabled = false; 745 prefs->experimental_webgl_enabled = false;
746 prefs->pepper_3d_enabled = false;
747 }
752 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_FLASH3D)) 748 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_FLASH3D))
753 prefs->flash_3d_enabled = false; 749 prefs->flash_3d_enabled = false;
754 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_FLASH_STAGE3D)) { 750 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_FLASH_STAGE3D)) {
755 prefs->flash_stage3d_enabled = false; 751 prefs->flash_stage3d_enabled = false;
756 prefs->flash_stage3d_baseline_enabled = false; 752 prefs->flash_stage3d_baseline_enabled = false;
757 } 753 }
758 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE)) 754 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_FLASH_STAGE3D_BASELINE))
759 prefs->flash_stage3d_baseline_enabled = false; 755 prefs->flash_stage3d_baseline_enabled = false;
760 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS)) 756 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS))
761 prefs->accelerated_2d_canvas_enabled = false; 757 prefs->accelerated_2d_canvas_enabled = false;
762 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_MULTISAMPLING) || 758 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_MULTISAMPLING) ||
763 (IsDriverBugWorkaroundActive(gpu::DISABLE_MULTIMONITOR_MULTISAMPLING) && 759 (IsDriverBugWorkaroundActive(gpu::DISABLE_MULTIMONITOR_MULTISAMPLING) &&
764 display_count_ > 1)) 760 display_count_ > 1))
765 prefs->gl_multisampling_enabled = false; 761 prefs->gl_multisampling_enabled = false;
766 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_3D_CSS)) { 762 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_3D_CSS)) {
767 prefs->accelerated_compositing_for_3d_transforms_enabled = false; 763 prefs->accelerated_compositing_for_3d_transforms_enabled = false;
768 prefs->accelerated_compositing_for_animation_enabled = false; 764 prefs->accelerated_compositing_for_animation_enabled = false;
769 } 765 }
770 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO)) 766 if (IsFeatureBlacklisted(gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO))
771 prefs->accelerated_compositing_for_video_enabled = false; 767 prefs->accelerated_compositing_for_video_enabled = false;
772 768
773 // Accelerated video and animation are slower than regular when using 769 // Accelerated video and animation are slower than regular when using
774 // SwiftShader. 3D CSS may also be too slow to be worthwhile. 770 // SwiftShader. 3D CSS or Pepper 3D may also be too slow to be worthwhile.
775 if (ShouldUseSwiftShader()) { 771 if (ShouldUseSwiftShader()) {
776 prefs->accelerated_compositing_for_video_enabled = false; 772 prefs->accelerated_compositing_for_video_enabled = false;
777 prefs->accelerated_compositing_for_animation_enabled = false; 773 prefs->accelerated_compositing_for_animation_enabled = false;
778 prefs->accelerated_compositing_for_3d_transforms_enabled = false; 774 prefs->accelerated_compositing_for_3d_transforms_enabled = false;
779 prefs->accelerated_compositing_for_plugins_enabled = false; 775 prefs->accelerated_compositing_for_plugins_enabled = false;
776 prefs->pepper_3d_enabled = false;
780 } 777 }
781 778
782 if (use_software_compositor_) { 779 if (use_software_compositor_) {
783 prefs->force_compositing_mode = true; 780 prefs->force_compositing_mode = true;
784 prefs->accelerated_compositing_enabled = true; 781 prefs->accelerated_compositing_enabled = true;
785 prefs->accelerated_compositing_for_3d_transforms_enabled = true; 782 prefs->accelerated_compositing_for_3d_transforms_enabled = true;
786 prefs->accelerated_compositing_for_plugins_enabled = true; 783 prefs->accelerated_compositing_for_plugins_enabled = true;
787 prefs->accelerated_compositing_for_video_enabled = true; 784 prefs->accelerated_compositing_for_video_enabled = true;
788 } 785 }
789 786
790 #if defined(USE_AURA) 787 #if defined(USE_AURA)
791 if (!CanUseGpuBrowserCompositor()) 788 if (!CanUseGpuBrowserCompositor()) {
792 prefs->accelerated_2d_canvas_enabled = false; 789 prefs->accelerated_2d_canvas_enabled = false;
790 prefs->pepper_3d_enabled = false;
791 }
793 #endif 792 #endif
794 } 793 }
795 794
796 void GpuDataManagerImplPrivate::DisableHardwareAcceleration() { 795 void GpuDataManagerImplPrivate::DisableHardwareAcceleration() {
797 card_blacklisted_ = true; 796 card_blacklisted_ = true;
798 797
799 for (int i = 0; i < gpu::NUMBER_OF_GPU_FEATURE_TYPES; ++i) 798 for (int i = 0; i < gpu::NUMBER_OF_GPU_FEATURE_TYPES; ++i)
800 blacklisted_features_.insert(i); 799 blacklisted_features_.insert(i);
801 800
802 EnableSwiftShaderIfNecessary(); 801 EnableSwiftShaderIfNecessary();
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
1177 1176
1178 void GpuDataManagerImplPrivate::OnGpuProcessInitFailure() { 1177 void GpuDataManagerImplPrivate::OnGpuProcessInitFailure() {
1179 gpu_process_accessible_ = false; 1178 gpu_process_accessible_ = false;
1180 gpu_info_.finalized = true; 1179 gpu_info_.finalized = true;
1181 complete_gpu_info_already_requested_ = true; 1180 complete_gpu_info_already_requested_ = true;
1182 // Some observers might be waiting. 1181 // Some observers might be waiting.
1183 NotifyGpuInfoUpdate(); 1182 NotifyGpuInfoUpdate();
1184 } 1183 }
1185 1184
1186 } // namespace content 1185 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/browser/renderer_host/render_process_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698