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

Issue 1197423003: Remaining code for basic tile compression functionality. (Closed)

Created:
5 years, 6 months ago by christiank
Modified:
5 years ago
Reviewers:
reveman
CC:
cc-bugs_chromium.org, chromium-reviews
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Remaining code for basic tile compression functionality. BUG= CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Patch Set 1 : Allow task pools to reason about transparency and compression #

Patch Set 2 : Prepare resource provider for tile compression #

Patch Set 3 : Add support for ETC1 as a memory efficient format #

Patch Set 4 : Enable tile compression for one copy #

Total comments: 8
Unified diffs Side-by-side diffs Delta from patch set Stats (+209 lines, -93 lines) Patch
M cc/base/switches.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M cc/base/switches.cc View 1 1 chunk +3 lines, -0 lines 0 comments Download
M cc/layers/picture_layer_impl.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M cc/output/renderer_settings.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M cc/output/renderer_settings.cc View 1 1 chunk +2 lines, -1 line 0 comments Download
M cc/raster/bitmap_tile_task_worker_pool.h View 1 chunk +4 lines, -2 lines 0 comments Download
M cc/raster/bitmap_tile_task_worker_pool.cc View 1 chunk +8 lines, -3 lines 0 comments Download
M cc/raster/gpu_tile_task_worker_pool.h View 1 chunk +4 lines, -2 lines 0 comments Download
M cc/raster/gpu_tile_task_worker_pool.cc View 1 chunk +6 lines, -2 lines 0 comments Download
M cc/raster/one_copy_tile_task_worker_pool.h View 1 chunk +4 lines, -2 lines 0 comments Download
M cc/raster/one_copy_tile_task_worker_pool.cc View 1 2 3 2 chunks +11 lines, -7 lines 0 comments Download
M cc/raster/pixel_buffer_tile_task_worker_pool.h View 1 chunk +4 lines, -2 lines 0 comments Download
M cc/raster/pixel_buffer_tile_task_worker_pool.cc View 1 chunk +10 lines, -4 lines 0 comments Download
M cc/raster/tile_task_runner.h View 1 chunk +4 lines, -2 lines 0 comments Download
M cc/raster/tile_task_worker_pool.cc View 1 2 4 chunks +28 lines, -13 lines 3 comments Download
M cc/raster/zero_copy_tile_task_worker_pool.h View 1 chunk +4 lines, -2 lines 0 comments Download
M cc/raster/zero_copy_tile_task_worker_pool.cc View 1 chunk +8 lines, -3 lines 0 comments Download
M cc/resources/resource_format.h View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M cc/resources/resource_format.cc View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M cc/resources/resource_provider.h View 1 4 chunks +5 lines, -3 lines 3 comments Download
M cc/resources/resource_provider.cc View 1 2 6 chunks +25 lines, -6 lines 1 comment Download
M cc/resources/resource_provider_unittest.cc View 1 25 chunks +26 lines, -26 lines 0 comments Download
M cc/surfaces/display.cc View 1 1 chunk +1 line, -0 lines 0 comments Download
M cc/test/fake_tile_manager.cc View 1 chunk +8 lines, -3 lines 0 comments Download
M cc/test/pixel_test.cc View 1 2 chunks +2 lines, -2 lines 0 comments Download
M cc/tiles/tile.h View 2 chunks +3 lines, -1 line 0 comments Download
M cc/tiles/tile_manager.h View 2 chunks +4 lines, -1 line 0 comments Download
M cc/tiles/tile_manager.cc View 4 chunks +19 lines, -6 lines 1 comment Download
M cc/trees/layer_tree_host_impl.cc View 1 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/renderer_host/render_process_host_impl.cc View 1 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/gpu/render_widget_compositor.cc View 1 1 chunk +3 lines, -0 lines 0 comments Download

Messages

Total messages: 3 (2 generated)
reveman
5 years, 5 months ago (2015-07-21 04:26:33 UTC) #2
Mostly nits. Maybe split into multiple patches if possible.

https://codereview.chromium.org/1197423003/diff/60001/cc/raster/tile_task_wor...
File cc/raster/tile_task_worker_pool.cc (right):

https://codereview.chromium.org/1197423003/diff/60001/cc/raster/tile_task_wor...
cc/raster/tile_task_worker_pool.cc:171: bool needs_copy =
IsResourceFormatCompressed(format) ||
nit: s/needs_copy/needs_conversion/

The only format that doesn't need conversion is info.colorType(). Instead of
adding a special case for IsResourceFormatCompressed, can we simply get the
matching resource format for info.colorType() and set needs_conversion to true
if it doesn't match |format|?

https://codereview.chromium.org/1197423003/diff/60001/cc/raster/tile_task_wor...
cc/raster/tile_task_worker_pool.cc:204:
TextureCompressor::Create(TextureCompressor::kFormatETC1);
hm, I think we should assume that creating a texture compressor instance is
expensive. can we use a process wide instance?

https://codereview.chromium.org/1197423003/diff/60001/cc/raster/tile_task_wor...
cc/raster/tile_task_worker_pool.cc:206: default:
Please explicitly list all formats here and add a NOTREACHED below instead of a
default case. Makes it easy to see that this code needs to be updated when
adding a new format.

https://codereview.chromium.org/1197423003/diff/60001/cc/resources/resource_p...
File cc/resources/resource_provider.cc (right):

https://codereview.chromium.org/1197423003/diff/60001/cc/resources/resource_p...
cc/resources/resource_provider.cc:1894: // TODO(christiank): Should use
CompressedCopySubTextureCHROMIUM.
Let's fix this TODO before landing this patch.

https://codereview.chromium.org/1197423003/diff/60001/cc/resources/resource_p...
File cc/resources/resource_provider.h (right):

https://codereview.chromium.org/1197423003/diff/60001/cc/resources/resource_p...
cc/resources/resource_provider.h:87: bool use_tile_compression,
s/use_tile_compression/use_compressed_texture_formats/

ResourceProvider doesn't know what a 'tile' is..

https://codereview.chromium.org/1197423003/diff/60001/cc/resources/resource_p...
cc/resources/resource_provider.h:95: ResourceFormat
memory_efficient_texture_format(bool must_be_noncompressed,
Can we avoid must_be_noncompressed param for now and add that later if needed?

https://codereview.chromium.org/1197423003/diff/60001/cc/resources/resource_p...
cc/resources/resource_provider.h:96: bool must_support_alpha) const;
I think this change that adds a "bool alpha" param to this function can land
separately.

https://codereview.chromium.org/1197423003/diff/60001/cc/tiles/tile_manager.cc
File cc/tiles/tile_manager.cc (right):

https://codereview.chromium.org/1197423003/diff/60001/cc/tiles/tile_manager.c...
cc/tiles/tile_manager.cc:972: tile->desired_texture_size().height() % 4 != 0;
Can we instead clamp tile size to multiple of 4 if that's not already done so
that we never have to worry about not being able to use compression because of
tile size?

Powered by Google App Engine
This is Rietveld 408576698