diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-11-20 10:33:36 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-11-22 11:45:12 +0000 |
commit | be59a35641616a4cf23c4a13fa0632624b021c1b (patch) | |
tree | 9da183258bdf9cc413f7562079d25ace6955467f /chromium/cc/layers/picture_layer_impl.cc | |
parent | d702e4b6a64574e97fc7df8fe3238cde70242080 (diff) |
BASELINE: Update Chromium to 62.0.3202.101
Change-Id: I2d5eca8117600df6d331f6166ab24d943d9814ac
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/cc/layers/picture_layer_impl.cc')
-rw-r--r-- | chromium/cc/layers/picture_layer_impl.cc | 49 |
1 files changed, 23 insertions, 26 deletions
diff --git a/chromium/cc/layers/picture_layer_impl.cc b/chromium/cc/layers/picture_layer_impl.cc index 6c491970a0f..53f018770cc 100644 --- a/chromium/cc/layers/picture_layer_impl.cc +++ b/chromium/cc/layers/picture_layer_impl.cc @@ -18,10 +18,8 @@ #include "cc/base/math_util.h" #include "cc/benchmarks/micro_benchmark_impl.h" #include "cc/debug/debug_colors.h" -#include "cc/debug/traced_value.h" #include "cc/layers/append_quads_data.h" #include "cc/layers/solid_color_layer_impl.h" -#include "cc/output/begin_frame_args.h" #include "cc/quads/debug_border_draw_quad.h" #include "cc/quads/picture_draw_quad.h" #include "cc/quads/solid_color_draw_quad.h" @@ -30,6 +28,8 @@ #include "cc/tiles/tiling_set_raster_queue_all.h" #include "cc/trees/layer_tree_impl.h" #include "cc/trees/occlusion.h" +#include "components/viz/common/frame_sinks/begin_frame_args.h" +#include "components/viz/common/traced_value.h" #include "ui/gfx/geometry/quad_f.h" #include "ui/gfx/geometry/rect_conversions.h" #include "ui/gfx/geometry/size_conversions.h" @@ -203,7 +203,7 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass, << " bounds " << bounds().ToString() << " pile " << raster_source_->GetSize().ToString(); - SharedQuadState* shared_quad_state = + viz::SharedQuadState* shared_quad_state = render_pass->CreateAndAppendSharedQuadState(); if (raster_source_->IsSolidColor()) { @@ -240,16 +240,15 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass, DebugColors::DirectPictureBorderWidth(device_scale_factor)); gfx::Rect geometry_rect = shared_quad_state->visible_quad_layer_rect; - gfx::Rect opaque_rect = contents_opaque() ? geometry_rect : gfx::Rect(); gfx::Rect visible_geometry_rect = scaled_occlusion.GetUnoccludedContentRect(geometry_rect); + bool needs_blending = !contents_opaque(); // The raster source may not be valid over the entire visible rect, // and rastering outside of that may cause incorrect pixels. gfx::Rect scaled_recorded_viewport = gfx::ScaleToEnclosingRect( raster_source_->RecordedViewport(), max_contents_scale); geometry_rect.Intersect(scaled_recorded_viewport); - opaque_rect.Intersect(scaled_recorded_viewport); visible_geometry_rect.Intersect(scaled_recorded_viewport); if (visible_geometry_rect.IsEmpty()) @@ -262,10 +261,10 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass, PictureDrawQuad* quad = render_pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); - quad->SetNew(shared_quad_state, geometry_rect, opaque_rect, - visible_geometry_rect, texture_rect, texture_size, - nearest_neighbor_, viz::RGBA_8888, quad_content_rect, - max_contents_scale, raster_source_); + quad->SetNew(shared_quad_state, geometry_rect, visible_geometry_rect, + needs_blending, texture_rect, texture_size, nearest_neighbor_, + viz::RGBA_8888, quad_content_rect, max_contents_scale, + raster_source_); ValidateQuadResources(quad); return; } @@ -341,9 +340,9 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass, shared_quad_state->visible_quad_layer_rect, ideal_contents_scale_); iter; ++iter) { gfx::Rect geometry_rect = iter.geometry_rect(); - gfx::Rect opaque_rect = contents_opaque() ? geometry_rect : gfx::Rect(); gfx::Rect visible_geometry_rect = scaled_occlusion.GetUnoccludedContentRect(geometry_rect); + bool needs_blending = !contents_opaque(); if (visible_geometry_rect.IsEmpty()) continue; @@ -373,10 +372,10 @@ void PictureLayerImpl::AppendQuads(RenderPass* render_pass, TileDrawQuad* quad = render_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); - quad->SetNew(shared_quad_state, geometry_rect, opaque_rect, - visible_geometry_rect, draw_info.resource_id(), - texture_rect, draw_info.resource_size(), - draw_info.contents_swizzled(), nearest_neighbor_); + quad->SetNew(shared_quad_state, geometry_rect, visible_geometry_rect, + needs_blending, draw_info.resource_id(), texture_rect, + draw_info.resource_size(), draw_info.contents_swizzled(), + nearest_neighbor_); ValidateQuadResources(quad); has_draw_quad = true; break; @@ -605,12 +604,6 @@ void PictureLayerImpl::UpdateRasterSource( bool could_have_tilings = raster_source_.get() && CanHaveTilings(); raster_source_.swap(raster_source); - // Only set the image decode controller when we're committing. - if (!pending_set) { - raster_source_->set_image_decode_cache( - layer_tree_impl()->image_decode_cache()); - } - // The |new_invalidation| must be cleared before updating tilings since they // access the invalidation through the PictureLayerTilingClient interface. invalidation_.Clear(); @@ -691,10 +684,6 @@ void PictureLayerImpl::ReleaseTileResources() { void PictureLayerImpl::RecreateTileResources() { tilings_ = CreatePictureLayerTilingSet(); - if (raster_source_) { - raster_source_->set_image_decode_cache( - layer_tree_impl()->image_decode_cache()); - } } Region PictureLayerImpl::GetInvalidationRegionForDebugging() { @@ -795,6 +784,14 @@ gfx::Size PictureLayerImpl::CalculateTileSize( default_tile_width += 2 * PictureLayerTiling::kBorderTexels; default_tile_height += 2 * PictureLayerTiling::kBorderTexels; + // Use half-width GPU tiles on low-end devices when the content width is + // larger than the viewport width. + if (layer_tree_impl() + ->settings() + .use_half_width_tiles_for_gpu_rasterization && + content_bounds.width() > viewport_width) + default_tile_width /= 2; + // Round GPU default tile sizes to a multiple of kGpuDefaultTileAlignment. // This helps prevent rounding errors in our CA path. crbug.com/632274 default_tile_width = @@ -852,7 +849,7 @@ gfx::Size PictureLayerImpl::CalculateTileSize( } void PictureLayerImpl::GetContentsResourceId( - ResourceId* resource_id, + viz::ResourceId* resource_id, gfx::Size* resource_size, gfx::SizeF* resource_uv_size) const { // The bounds and the pile size may differ if the pile wasn't updated (ie. @@ -1422,7 +1419,7 @@ void PictureLayerImpl::AsValueInto( MathUtil::AddToTracedValue("geometry_rect", iter.geometry_rect(), state); if (*iter) - TracedValue::SetIDRef(*iter, state, "tile"); + viz::TracedValue::SetIDRef(*iter, state, "tile"); state->EndDictionary(); } |