skia /
skia /
aec11ae18bb61ab845858ff97969c1800bf6c848 [graphite] Store dst copy texture and bounds on RenderPassTask
The end goal of handling dst copies as intrinsic uniforms will look
roughly like:
1. The RenderPassTask holds the dst copy and offset.
2. CommandBuffer::onAddRenderPass will take in the copy texture and
offset, and hold on to as needed.
3. Dst copy and dst copy bounds are added to sksl intrinsic generation
a. Either for every pipeline if the backend doesn't support
framebuffer fetch.
b. Or just pipelines that actually need it (intrinsic uniforms
will likely always include the values to keep it simple; it is
easier to conditionally declare the dst copy sampler object).
4. CommandBuffer backends set the dst copy texture and offset
a. Either as part of the initial intrinsic uniform binding, but use
a null texture if there are no needed copies; assume that the
overhead for binding but not using the texture on pipelines
that don't require the dst read will be minimal.
b. Or track when a pipeline is bound that requires the dst read,
and then fold in the stored dst copy texture into
the texture bindings automatically.
5. Switch from using the PaintParams dst read system and remove
Coverage from the precompile generation.
Bug: b/280802448
Bug: b/364632638
Change-Id: Ib823fa75486e3f2f6a86cc9ba6c665335342699d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/891561
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: James Godfrey-Kittle <jamesgk@google.com>
3 files changed