tree fb4743b24a6b4dbf720a54f1a4fd4a5b502394d3
parent 0ee149894a8d24e7b409502d3efa879e6cb2e3c7
author Michael Ludwig <michaelludwig@google.com> 1716303290 -0400
committer SkCQ <skcq-be@skia-corp.google.com.iam.gserviceaccount.com> 1716410944 +0000

[graphite] Use scratch textures for async readback

The original motivation for this CL was to be able to connect the
copy tasks with the drawing tasks so that they could participate in
texture reuse (eventually), and to update the surface creation/flow
to use scratch resources.

It snowballed to a little broader of change:
1. Added an AsyncParams<> struct that holds the image, subset,
   dst image info, and callback parameters so that it's less
   verbose to pass around between the different function calls.
   - It's templated to work on SkImage or TextureProxy
   - It defines the validation logic and has a utility for invoking
     the callbacks when things fail.
2. Split the single-plane asyncReadPixels into an Image and Texture
   variant, where the Image case can perform a CopyAsDraw fallback,
   but the Texture one is used for unsampleable surfaces.
   - This flow avoids unwrapping an image to a texture and then
     rewrapping it as an image, which would break any task linkage
     for a dynamic/scratch source image.
   - This allows a YUVA multiplanar image to be readback as RGBA now
     by going through the generic Image function and copying it.
   - Surfaces that can't be images can now be readback as long as
     there's no rescaling that has to be performed.
3. Replaces the inlined copy-as-draw logic with calling the CopyAsDraw
   utility function.
4. Updates the YUVA rescale+readback logic to apply the color space
   transformation automatically as part of the dst image info, instead
   of rendering src->dst colorspace before doing the planar split.
5. Updates the planar rendering logic in the YUVA readback to
   interleave the draws to a plane and the copies.
   - This will allow the planar rendering to use the same texture with
     reuse once the copy and draw tasks can be scoped together.
   - It makes it easier for the surface to be a scratch surface that
     goes away before the recording is snapped.
6. The high-level rescale+readback function is defined as a template
   that takes a bound member function as an argument so that it can
   be used for either single-plane readback or yuva readback.
7. A Recorder is plumbed through all of these functions and starts
   out null. If any step along the way requires a recorder it creates
   it and then forwards it on so that there's at clearly at most one
   recorder used during readback (before it probably couldn't happen
   because a RescaleImage() call should return a readable texture
   that wouldn't then go through CopyAsDraw).
   - The recorder is sent all the way to finalize(), which is now
     responsible for snapping a Recording and inserting it before
     it adds the finish info to the queue manager.
8. Maybe(?) fixed a bug where the CPU color conversion would always
   go from the original src color type to dst type and not from the
   supported readback type to dst color type.


Bug: b/336779772
Change-Id: I3f400a53bff1ee7efd283982178955e0bb07cf41
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/850516
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
