Bug 1572197 - Fix world clip region for preserve-3d items with picture caching. r=emilio

When adding planes to the plane splitter, we supply a world clip
rect to the polygon clipper. Generally this is used to help with
float accuracy issues, but it also clips polygons to the visible
region.

The previous code supplied the visible world rect, but this is
not always correct. When drawing picture cache tiles, we may
be rendering to a tile that is partially off-screen. In this case
we need to pass the combined world dirty rect, which is inflated
to include the off-screen tile parts that are being drawn. This
ensures that preserve-3d items are correctly clipped to the tile
boundaries rather than the currently visible screen rect.

Differential Revision: https://phabricator.services.mozilla.com/D41111

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Glenn Watson 2019-08-08 04:49:09 +00:00
parent d74716c7d8
commit be3904b49e

View File

@ -3258,7 +3258,7 @@ impl PrimitiveStore {
prim_instance.spatial_node_index, prim_instance.spatial_node_index,
pic.snapped_local_rect, pic.snapped_local_rect,
&prim_info.combined_local_clip_rect, &prim_info.combined_local_clip_rect,
frame_context.global_screen_world_rect, frame_state.current_dirty_region().combined,
plane_split_anchor, plane_split_anchor,
); );
} }