author | Jeff Muizelaar <jmuizelaar@mozilla.com> |
Wed, 11 Apr 2018 13:06:04 -0400 | |
changeset 412913 | 6f973e2cc44db9ff26a3c7754e4d54c2cfef7012 |
parent 412912 | c4e17dd680658e18f7f9260503676d74dc94e300 |
child 412914 | b4dcb47b854282d4e439f678c79fc2527a215c0d |
push id | 33824 |
push user | ebalazs@mozilla.com |
push date | Thu, 12 Apr 2018 09:39:57 +0000 |
treeherder | mozilla-central@246c614e1605 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | mstange |
bugs | 1451458 |
milestone | 61.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/gfx/layers/wr/WebRenderCommandBuilder.cpp +++ b/gfx/layers/wr/WebRenderCommandBuilder.cpp @@ -915,31 +915,30 @@ Grouper::ConstructGroups(WebRenderComman RefPtr<WebRenderGroupData> groupData = aCommandBuilder->CreateOrRecycleWebRenderUserData<WebRenderGroupData>(item); // Initialize groupData->mFollowingGroup // TODO: compute the group bounds post-grouping, so that they can be // tighter for just the sublist that made it into this group. // We want to ensure the tight bounds are still clipped by area // that we're building the display list for. - if (groupData->mFollowingGroup.mKey) { - if (!groupData->mFollowingGroup.mGroupBounds.IsEqualEdges(currentGroup->mGroupBounds) || - groupData->mFollowingGroup.mScale != currentGroup->mScale || - groupData->mFollowingGroup.mAppUnitsPerDevPixel != currentGroup->mAppUnitsPerDevPixel) { - if (groupData->mFollowingGroup.mAppUnitsPerDevPixel != currentGroup->mAppUnitsPerDevPixel) { - printf("app unit change following: %d %d\n", groupData->mFollowingGroup.mAppUnitsPerDevPixel, currentGroup->mAppUnitsPerDevPixel); - } - // The group changed size - GP("Inner group size change\n"); + if (!groupData->mFollowingGroup.mGroupBounds.IsEqualEdges(currentGroup->mGroupBounds) || + groupData->mFollowingGroup.mScale != currentGroup->mScale || + groupData->mFollowingGroup.mAppUnitsPerDevPixel != currentGroup->mAppUnitsPerDevPixel) { + if (groupData->mFollowingGroup.mAppUnitsPerDevPixel != currentGroup->mAppUnitsPerDevPixel) { + GP("app unit change following: %d %d\n", groupData->mFollowingGroup.mAppUnitsPerDevPixel, currentGroup->mAppUnitsPerDevPixel); + } + // The group changed size + GP("Inner group size change\n"); + groupData->mFollowingGroup.ClearItems(); + if (groupData->mFollowingGroup.mKey) { + IntSize size = currentGroup->mGroupBounds.Size().ScaleToNearestPixels(currentGroup->mScale.width, currentGroup->mScale.height, mAppUnitsPerDevPixel); + groupData->mFollowingGroup.mInvalidRect = IntRect(IntPoint(0, 0), size); aCommandBuilder->mManager->AddImageKeyForDiscard(groupData->mFollowingGroup.mKey.value()); groupData->mFollowingGroup.mKey = Nothing(); - groupData->mFollowingGroup.ClearItems(); - - IntSize size = currentGroup->mGroupBounds.Size().ScaleToNearestPixels(currentGroup->mScale.width, currentGroup->mScale.height, mAppUnitsPerDevPixel); - groupData->mFollowingGroup.mInvalidRect = IntRect(IntPoint(0, 0), size); } } groupData->mFollowingGroup.mGroupBounds = currentGroup->mGroupBounds; groupData->mFollowingGroup.mAppUnitsPerDevPixel = currentGroup->mAppUnitsPerDevPixel; groupData->mFollowingGroup.mGroupOffset = currentGroup->mGroupOffset; groupData->mFollowingGroup.mScale = currentGroup->mScale; currentGroup = &groupData->mFollowingGroup;