There was some confusing code in the existing text shadow implementation that was making it difficult to optimize the box shadows to use sub-parts of a picture image. Specifically, in the cs_text_run and ps_line shader, we were fetching the owning Picture primitive. Instead, now the following conventions are observed: * When drawing *on* a picture, fetch the picture render task and the specific primitive only. This should have all information to draw on to a picture task. * When *compositing* a picture into the scene, fetch the picture render task for sampling information (e.g. UV rect, color mask), and the picture primitive for geometry information. In the second case, we don't currently need to fetch the picture primitive, since it's always just the entire primitive local rect. However, with the upcoming box shadow optimizations, this will typically be sub-parts or a 9-patch of the picture image. Importantly, this also decouples the geometry of the picture to be drawn from the geometry of the picture render task. This will allow box shadow optimizations such as rendering just a corner of the box shadow when uniform radii are present, and mirroring the blur task using brush segments.