diff --git a/gfx/wr/webrender/src/picture.rs b/gfx/wr/webrender/src/picture.rs
index 78b52342f8335eb5c47bb4446021e201da490a92..fd8a491c4d60d69f63e68a71d22dd2c435cbb71d 100644
--- a/gfx/wr/webrender/src/picture.rs
+++ b/gfx/wr/webrender/src/picture.rs
@@ -3996,6 +3996,7 @@ struct SurfaceAllocInfo {
     task_size: DeviceIntSize,
     needs_scissor_rect: bool,
     clipped: DeviceRect,
+    unclipped: DeviceRect,
     clipped_local: PictureRect,
     uv_rect_kind: UvRectKind,
 }
@@ -5363,6 +5364,13 @@ impl PicturePrimitive {
 
                         let cmd_buffer_index = frame_state.cmd_buffers.create_cmd_buffer();
 
+                        // Since we (may have) adjusted the render task size for downscaling accuracy
+                        // above, recalculate the uv rect for tasks that may sample from this blur output
+                        let uv_rect_kind = calculate_uv_rect_kind(
+                            DeviceRect::from_origin_and_size(surface_rects.clipped.min, adjusted_size.to_f32()),
+                            surface_rects.unclipped,
+                        );
+
                         let picture_task_id = frame_state.rg_builder.add().init(
                             RenderTask::new_dynamic(
                                 adjusted_size,
@@ -5379,7 +5387,7 @@ impl PicturePrimitive {
                                     cmd_buffer_index,
                                     can_use_shared_surface,
                                 )
-                            ).with_uv_rect_kind(surface_rects.uv_rect_kind)
+                            ).with_uv_rect_kind(uv_rect_kind)
                         );
 
                         let blur_render_task_id = RenderTask::new_blur(
@@ -7269,6 +7277,7 @@ fn get_surface_rects(
         task_size,
         needs_scissor_rect,
         clipped,
+        unclipped,
         clipped_local,
         uv_rect_kind,
     })
diff --git a/gfx/wr/wrench/reftests/filters/filter-blur-downscale-fractional.png b/gfx/wr/wrench/reftests/filters/filter-blur-downscale-fractional.png
index e6717b5ecc9f074e70dcff2335d3391f09c01041..36da2d2620f1d68c884012d7dab6ec0805e86d04 100644
Binary files a/gfx/wr/wrench/reftests/filters/filter-blur-downscale-fractional.png and b/gfx/wr/wrench/reftests/filters/filter-blur-downscale-fractional.png differ
diff --git a/gfx/wr/wrench/reftests/filters/filter-large-blur-radius.png b/gfx/wr/wrench/reftests/filters/filter-large-blur-radius.png
index e2027f080afb5d973e03d94cf94a3ffdff86a44f..e48a567c381ed44a089bd56ad81bb0271667889a 100644
Binary files a/gfx/wr/wrench/reftests/filters/filter-large-blur-radius.png and b/gfx/wr/wrench/reftests/filters/filter-large-blur-radius.png differ