1) In picture.rs, the wrong GPU cache handle was being invalidated. This was causing visual glitches when scrolling pages with drop-shadows present. 2) Fix an edge case that was occurring when the visual content of a drop-shadow was scrolled off-screen, but the bounding rect of the drop-shadow itself was still partially visible. In this case the picture would not get prepare_prim_for_render() called, but the drop-shadow brush image would still attempt to draw, which would reference an invalid render task in the render task tree. Correctly drawing enough of the off-screen visual contents to allow correct drawing of the partial shadow will be done as a follow up - for now, we will just stop drawing the shadow if the main visual contents becomes invisible, which can result in a noticeable pop of the shadow in some cases, but is still a big improvement on current drop-shadow support. To do this, the logic in batch.rs is inverted. Instead of checking for an intermediate surface, and then the filter mode, the code now checks the filter mode first, followed by the surface. This means that in the case above, we can detect that the visual contents of the drop shadow were off-screen, and skip trying to draw the alpha mask of that as a shadow.