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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 2654993004: Move GPU blacklist calculation to GPU proc (Closed)
Patch Set: fix win clang build Created 3 years, 10 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
« no previous file with comments | « cc/trees/layer_tree_host.cc ('k') | cc/trees/layer_tree_host_impl_unittest.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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 1742 matching lines...) Expand 10 before | Expand all | Expand 10 after
1753 // CompositorFrameSink? 1753 // CompositorFrameSink?
1754 // For now just early out and leave things unchanged, we'll come back here 1754 // For now just early out and leave things unchanged, we'll come back here
1755 // when we get an CompositorFrameSink. 1755 // when we get an CompositorFrameSink.
1756 if (!compositor_frame_sink_) 1756 if (!compositor_frame_sink_)
1757 return false; 1757 return false;
1758 1758
1759 int requested_msaa_samples = RequestedMSAASampleCount(); 1759 int requested_msaa_samples = RequestedMSAASampleCount();
1760 int max_msaa_samples = 0; 1760 int max_msaa_samples = 0;
1761 ContextProvider* compositor_context_provider = 1761 ContextProvider* compositor_context_provider =
1762 compositor_frame_sink_->context_provider(); 1762 compositor_frame_sink_->context_provider();
1763 bool gpu_rasterization_enabled = false;
1763 if (compositor_context_provider) { 1764 if (compositor_context_provider) {
1764 const auto& caps = compositor_context_provider->ContextCapabilities(); 1765 const auto& caps = compositor_context_provider->ContextCapabilities();
1766 gpu_rasterization_enabled = caps.gpu_rasterization;
1765 if (!caps.msaa_is_slow) 1767 if (!caps.msaa_is_slow)
1766 max_msaa_samples = caps.max_samples; 1768 max_msaa_samples = caps.max_samples;
1767 } 1769 }
1768 1770
1769 bool use_gpu = false; 1771 bool use_gpu = false;
1770 bool use_msaa = false; 1772 bool use_msaa = false;
1771 bool using_msaa_for_complex_content = 1773 bool using_msaa_for_complex_content =
1772 requested_msaa_samples > 0 && max_msaa_samples >= requested_msaa_samples; 1774 requested_msaa_samples > 0 && max_msaa_samples >= requested_msaa_samples;
1773 if (settings_.gpu_rasterization_forced) { 1775 if (settings_.gpu_rasterization_forced) {
1774 use_gpu = true; 1776 use_gpu = true;
1775 gpu_rasterization_status_ = GpuRasterizationStatus::ON_FORCED; 1777 gpu_rasterization_status_ = GpuRasterizationStatus::ON_FORCED;
1776 use_msaa = !content_is_suitable_for_gpu_rasterization_ && 1778 use_msaa = !content_is_suitable_for_gpu_rasterization_ &&
1777 using_msaa_for_complex_content; 1779 using_msaa_for_complex_content;
1778 if (use_msaa) { 1780 if (use_msaa) {
1779 gpu_rasterization_status_ = GpuRasterizationStatus::MSAA_CONTENT; 1781 gpu_rasterization_status_ = GpuRasterizationStatus::MSAA_CONTENT;
1780 } 1782 }
1781 } else if (!settings_.gpu_rasterization_enabled) { 1783 } else if (!gpu_rasterization_enabled) {
1782 gpu_rasterization_status_ = GpuRasterizationStatus::OFF_DEVICE; 1784 gpu_rasterization_status_ = GpuRasterizationStatus::OFF_DEVICE;
1783 } else if (!has_gpu_rasterization_trigger_) { 1785 } else if (!has_gpu_rasterization_trigger_) {
1784 gpu_rasterization_status_ = GpuRasterizationStatus::OFF_VIEWPORT; 1786 gpu_rasterization_status_ = GpuRasterizationStatus::OFF_VIEWPORT;
1785 } else if (content_is_suitable_for_gpu_rasterization_) { 1787 } else if (content_is_suitable_for_gpu_rasterization_) {
1786 use_gpu = true; 1788 use_gpu = true;
1787 gpu_rasterization_status_ = GpuRasterizationStatus::ON; 1789 gpu_rasterization_status_ = GpuRasterizationStatus::ON;
1788 } else if (using_msaa_for_complex_content) { 1790 } else if (using_msaa_for_complex_content) {
1789 use_gpu = use_msaa = true; 1791 use_gpu = use_msaa = true;
1790 gpu_rasterization_status_ = GpuRasterizationStatus::MSAA_CONTENT; 1792 gpu_rasterization_status_ = GpuRasterizationStatus::MSAA_CONTENT;
1791 } else { 1793 } else {
(...skipping 2293 matching lines...) Expand 10 before | Expand all | Expand 10 after
4085 worker_context_visibility_ = 4087 worker_context_visibility_ =
4086 worker_context->CacheController()->ClientBecameVisible(); 4088 worker_context->CacheController()->ClientBecameVisible();
4087 } else { 4089 } else {
4088 worker_context->CacheController()->ClientBecameNotVisible( 4090 worker_context->CacheController()->ClientBecameNotVisible(
4089 std::move(worker_context_visibility_)); 4091 std::move(worker_context_visibility_));
4090 } 4092 }
4091 } 4093 }
4092 } 4094 }
4093 4095
4094 } // namespace cc 4096 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698