There are two use cases for having a variant of View.uploadPixels that copies only a portion of the pixels in a Pixels buffer: The first one is necessary. The second would be a nice bonus.
1) In the case of dirtyopts we know that we only need to update the union of all of the dirty regions. Currently we are ignoring this clipping information, but there is a JIRA filed to optimize this case, RT-20356. Implementing that JIRA for the software pipeline or transparent windows case depends on this issue.
2) For the J2D and SW pipelines, we allocate a buffer of pixels to upload to HW whenever the window changes size. As a potential optimization we could avoid this allocation if the window was resized smaller, and only allocate a new buffer when it was resized larger.