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

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

Issue 1879153003: cc: Use ResourceUtil::UncheckedWidthInBytes() in CopyOnWorkerThread(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@raster_provider
Patch Set: Created 4 years, 8 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/one_copy_tile_task_worker_pool.h" 5 #include "cc/raster/one_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 #include <limits> 10 #include <limits>
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 staging_buffer->query_id); 318 staging_buffer->query_id);
319 #endif 319 #endif
320 } 320 }
321 321
322 // Since compressed texture's cannot be pre-allocated we might have an 322 // Since compressed texture's cannot be pre-allocated we might have an
323 // unallocated resource in which case we need to perform a full size copy. 323 // unallocated resource in which case we need to perform a full size copy.
324 if (IsResourceFormatCompressed(resource->format())) { 324 if (IsResourceFormatCompressed(resource->format())) {
325 gl->CompressedCopyTextureCHROMIUM(staging_buffer->texture_id, 325 gl->CompressedCopyTextureCHROMIUM(staging_buffer->texture_id,
326 resource_lock->texture_id()); 326 resource_lock->texture_id());
327 } else { 327 } else {
328 int bytes_per_row = 328 int bytes_per_row = ResourceUtil::UncheckedWidthInBytes<int>(
danakj 2016/04/13 18:38:59 If it can overflow/underflow then you want to use
reveman 2016/04/17 20:22:59 I don't think we want unnecessary conditionals to
danakj 2016/04/18 19:47:53 ok sg thanks, just wanted to be sure. LGTM then
329 (BitsPerPixel(resource->format()) * resource->size().width()) / 8; 329 resource->size().width(), resource->format());
330 int chunk_size_in_rows = 330 int chunk_size_in_rows =
331 std::max(1, max_bytes_per_copy_operation_ / bytes_per_row); 331 std::max(1, max_bytes_per_copy_operation_ / bytes_per_row);
332 // Align chunk size to 4. Required to support compressed texture formats. 332 // Align chunk size to 4. Required to support compressed texture formats.
333 chunk_size_in_rows = MathUtil::UncheckedRoundUp(chunk_size_in_rows, 4); 333 chunk_size_in_rows = MathUtil::UncheckedRoundUp(chunk_size_in_rows, 4);
334 int y = 0; 334 int y = 0;
335 int height = resource->size().height(); 335 int height = resource->size().height();
336 while (y < height) { 336 while (y < height) {
337 // Copy at most |chunk_size_in_rows|. 337 // Copy at most |chunk_size_in_rows|.
338 int rows_to_copy = std::min(chunk_size_in_rows, height - y); 338 int rows_to_copy = std::min(chunk_size_in_rows, height - y);
339 DCHECK_GT(rows_to_copy, 0); 339 DCHECK_GT(rows_to_copy, 0);
(...skipping 29 matching lines...) Expand all
369 gl->OrderingBarrierCHROMIUM(); 369 gl->OrderingBarrierCHROMIUM();
370 370
371 // Generate sync token after the barrier for cross context synchronization. 371 // Generate sync token after the barrier for cross context synchronization.
372 gpu::SyncToken sync_token; 372 gpu::SyncToken sync_token;
373 gl->GenUnverifiedSyncTokenCHROMIUM(fence_sync, sync_token.GetData()); 373 gl->GenUnverifiedSyncTokenCHROMIUM(fence_sync, sync_token.GetData());
374 resource_lock->UpdateResourceSyncToken(sync_token); 374 resource_lock->UpdateResourceSyncToken(sync_token);
375 } 375 }
376 } 376 }
377 377
378 } // namespace cc 378 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698