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

Side by Side Diff: cc/raster/zero_copy_tile_task_worker_pool.cc

Issue 1713503002: Reland Allow one-copy and zero-copy task tile worker pools to use compressed textures. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 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/raster/zero_copy_tile_task_worker_pool.h ('k') | cc/resources/platform_color.h » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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 "cc/raster/zero_copy_tile_task_worker_pool.h" 5 #include "cc/raster/zero_copy_tile_task_worker_pool.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 DISALLOW_COPY_AND_ASSIGN(RasterBufferImpl); 61 DISALLOW_COPY_AND_ASSIGN(RasterBufferImpl);
62 }; 62 };
63 63
64 } // namespace 64 } // namespace
65 65
66 // static 66 // static
67 scoped_ptr<TileTaskWorkerPool> ZeroCopyTileTaskWorkerPool::Create( 67 scoped_ptr<TileTaskWorkerPool> ZeroCopyTileTaskWorkerPool::Create(
68 base::SequencedTaskRunner* task_runner, 68 base::SequencedTaskRunner* task_runner,
69 TaskGraphRunner* task_graph_runner, 69 TaskGraphRunner* task_graph_runner,
70 ResourceProvider* resource_provider, 70 ResourceProvider* resource_provider,
71 bool use_rgba_4444_texture_format) { 71 ResourceFormat preferred_tile_format) {
72 return make_scoped_ptr<TileTaskWorkerPool>(new ZeroCopyTileTaskWorkerPool( 72 return make_scoped_ptr<TileTaskWorkerPool>(
73 task_runner, task_graph_runner, resource_provider, 73 new ZeroCopyTileTaskWorkerPool(task_runner, task_graph_runner,
74 use_rgba_4444_texture_format)); 74 resource_provider, preferred_tile_format));
75 } 75 }
76 76
77 ZeroCopyTileTaskWorkerPool::ZeroCopyTileTaskWorkerPool( 77 ZeroCopyTileTaskWorkerPool::ZeroCopyTileTaskWorkerPool(
78 base::SequencedTaskRunner* task_runner, 78 base::SequencedTaskRunner* task_runner,
79 TaskGraphRunner* task_graph_runner, 79 TaskGraphRunner* task_graph_runner,
80 ResourceProvider* resource_provider, 80 ResourceProvider* resource_provider,
81 bool use_rgba_4444_texture_format) 81 ResourceFormat preferred_tile_format)
82 : task_runner_(task_runner), 82 : task_runner_(task_runner),
83 task_graph_runner_(task_graph_runner), 83 task_graph_runner_(task_graph_runner),
84 namespace_token_(task_graph_runner->GetNamespaceToken()), 84 namespace_token_(task_graph_runner->GetNamespaceToken()),
85 resource_provider_(resource_provider), 85 resource_provider_(resource_provider),
86 use_rgba_4444_texture_format_(use_rgba_4444_texture_format) {} 86 preferred_tile_format_(preferred_tile_format) {}
87 87
88 ZeroCopyTileTaskWorkerPool::~ZeroCopyTileTaskWorkerPool() { 88 ZeroCopyTileTaskWorkerPool::~ZeroCopyTileTaskWorkerPool() {
89 } 89 }
90 90
91 TileTaskRunner* ZeroCopyTileTaskWorkerPool::AsTileTaskRunner() { 91 TileTaskRunner* ZeroCopyTileTaskWorkerPool::AsTileTaskRunner() {
92 return this; 92 return this;
93 } 93 }
94 94
95 void ZeroCopyTileTaskWorkerPool::Shutdown() { 95 void ZeroCopyTileTaskWorkerPool::Shutdown() {
96 TRACE_EVENT0("cc", "ZeroCopyTileTaskWorkerPool::Shutdown"); 96 TRACE_EVENT0("cc", "ZeroCopyTileTaskWorkerPool::Shutdown");
(...skipping 21 matching lines...) Expand all
118 118
119 task->WillComplete(); 119 task->WillComplete();
120 task->CompleteOnOriginThread(this); 120 task->CompleteOnOriginThread(this);
121 task->DidComplete(); 121 task->DidComplete();
122 } 122 }
123 completed_tasks_.clear(); 123 completed_tasks_.clear();
124 } 124 }
125 125
126 ResourceFormat ZeroCopyTileTaskWorkerPool::GetResourceFormat( 126 ResourceFormat ZeroCopyTileTaskWorkerPool::GetResourceFormat(
127 bool must_support_alpha) const { 127 bool must_support_alpha) const {
128 return use_rgba_4444_texture_format_ 128 if (resource_provider_->IsResourceFormatSupported(preferred_tile_format_) &&
129 ? RGBA_4444 129 (DoesResourceFormatSupportAlpha(preferred_tile_format_) ||
130 : resource_provider_->best_texture_format(); 130 !must_support_alpha)) {
131 return preferred_tile_format_;
132 }
133
134 return resource_provider_->best_texture_format();
131 } 135 }
132 136
133 bool ZeroCopyTileTaskWorkerPool::GetResourceRequiresSwizzle( 137 bool ZeroCopyTileTaskWorkerPool::GetResourceRequiresSwizzle(
134 bool must_support_alpha) const { 138 bool must_support_alpha) const {
135 return !PlatformColor::SameComponentOrder( 139 return !PlatformColor::SameComponentOrder(
136 GetResourceFormat(must_support_alpha)); 140 GetResourceFormat(must_support_alpha));
137 } 141 }
138 142
139 scoped_ptr<RasterBuffer> ZeroCopyTileTaskWorkerPool::AcquireBufferForRaster( 143 scoped_ptr<RasterBuffer> ZeroCopyTileTaskWorkerPool::AcquireBufferForRaster(
140 const Resource* resource, 144 const Resource* resource,
141 uint64_t resource_content_id, 145 uint64_t resource_content_id,
142 uint64_t previous_content_id) { 146 uint64_t previous_content_id) {
143 return make_scoped_ptr<RasterBuffer>( 147 return make_scoped_ptr<RasterBuffer>(
144 new RasterBufferImpl(resource_provider_, resource)); 148 new RasterBufferImpl(resource_provider_, resource));
145 } 149 }
146 150
147 void ZeroCopyTileTaskWorkerPool::ReleaseBufferForRaster( 151 void ZeroCopyTileTaskWorkerPool::ReleaseBufferForRaster(
148 scoped_ptr<RasterBuffer> buffer) { 152 scoped_ptr<RasterBuffer> buffer) {
149 // Nothing to do here. RasterBufferImpl destructor cleans up after itself. 153 // Nothing to do here. RasterBufferImpl destructor cleans up after itself.
150 } 154 }
151 155
152 } // namespace cc 156 } // namespace cc
OLDNEW
« no previous file with comments | « cc/raster/zero_copy_tile_task_worker_pool.h ('k') | cc/resources/platform_color.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698