Bug 1506576 - Update webrender to commit 45498e55dbb918f82e9583d03912b73b5a301a30 (WR PR #3299). r=kats
authorWR Updater Bot <graphics-team@mozilla.staktrace.com>
Mon, 12 Nov 2018 12:58:02 +0000
changeset 445878 ef29af431afb61f2f775a3271d2d170d86a36d84
parent 445877 ea56fcfdbf72dd653c2a9f63acece63c3b822a4d
child 445879 46dabf9308d8b7ae555f7f416fd744ff0d22d240
push id35028
push usercsabou@mozilla.com
push dateMon, 12 Nov 2018 21:54:15 +0000
treeherdermozilla-central@05331fb8f533 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerskats
bugs1506576
milestone65.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
Bug 1506576 - Update webrender to commit 45498e55dbb918f82e9583d03912b73b5a301a30 (WR PR #3299). r=kats Differential Revision: https://phabricator.services.mozilla.com/D11635
gfx/webrender/src/image.rs
gfx/webrender/src/resource_cache.rs
gfx/webrender_bindings/revision.txt
--- a/gfx/webrender/src/image.rs
+++ b/gfx/webrender/src/image.rs
@@ -318,42 +318,42 @@ pub fn tiles(
         } else {
             0
         },
     );
 
     // Since we're working in layer space, we can end up computing leftover tiles with an empty
     // size due to floating point precision issues. Detect this case so that we don't return
     // tiles with an empty size.
-    let x_count = {
-        let result = f32::ceil((visible_rect.max_x() - prim_rect.origin.x) / layer_tile_size.width) as u32 - t0.x;
+    let x_max = {
+        let result = f32::ceil((visible_rect.max_x() - prim_rect.origin.x) / layer_tile_size.width) as u32;
         if result == leftover_offset.x + 1 && leftover_layer_size.width == 0.0f32 {
             leftover_offset.x
         } else {
             result
         }
     };
-    let y_count = {
-        let result = f32::ceil((visible_rect.max_y() - prim_rect.origin.y) / layer_tile_size.height) as u32 - t0.y;
+    let y_max = {
+        let result = f32::ceil((visible_rect.max_y() - prim_rect.origin.y) / layer_tile_size.height) as u32;
         if result == leftover_offset.y + 1 && leftover_layer_size.height == 0.0f32 {
             leftover_offset.y
         } else {
             result
         }
     };
 
     let mut row_flags = EdgeAaSegmentMask::TOP;
-    if y_count == 1 {
+    if y_max - t0.y == 1 {
         row_flags |= EdgeAaSegmentMask::BOTTOM;
     }
     TileIterator {
         current_x: 0,
         current_y: 0,
-        x_count,
-        y_count,
+        x_count: x_max - t0.x,
+        y_count: y_max - t0.y,
         row_flags,
         origin: t0,
         tile_size: layer_tile_size,
         leftover_offset,
         leftover_size: leftover_layer_size,
         local_origin: prim_rect.origin,
     }
 }
--- a/gfx/webrender/src/resource_cache.rs
+++ b/gfx/webrender/src/resource_cache.rs
@@ -1013,16 +1013,18 @@ impl ResourceCache {
                         BlobImageDescriptor {
                             offset: DevicePoint::origin(),
                             size: template.descriptor.size,
                             format: template.descriptor.format,
                         }
                     }
                 };
 
+                assert!(descriptor.size.width != 0 && descriptor.size.height != 0);
+
                 self.missing_blob_images.push(
                     BlobImageParams {
                         request,
                         descriptor,
                         dirty_rect: None,
                     }
                 );
             }
--- a/gfx/webrender_bindings/revision.txt
+++ b/gfx/webrender_bindings/revision.txt
@@ -1,1 +1,1 @@
-d9bddae3796e782548b9f3dfffdbcb26cf719232
+45498e55dbb918f82e9583d03912b73b5a301a30