Make AutoBackendTexture remember which context it was created with
... and use that stored context when creating an SkImage or SkSurface.
As per I52e1d831f2d195cddb21c2e7a1e820059fe2a137 we no longer share
buffers between contexts, and this aligns with Graphite's need to know
the context that a backend texture was created with to clean it up in
ABT's destructor.
Test: manually validated core CUJs + existing tests (refactor)
Bug: b/293371537
Bug: others listed in I52e1d831f2d195cddb21c2e7a1e820059fe2a137
Change-Id: I7d4b0b95216b0529be72cfb7c2788c592a77ed0e
diff --git a/libs/renderengine/skia/SkiaRenderEngine.cpp b/libs/renderengine/skia/SkiaRenderEngine.cpp
index 6e393f0..aeedb03 100644
--- a/libs/renderengine/skia/SkiaRenderEngine.cpp
+++ b/libs/renderengine/skia/SkiaRenderEngine.cpp
@@ -679,8 +679,7 @@
// wait on the buffer to be ready to use prior to using it
waitFence(grContext, bufferFence);
- sk_sp<SkSurface> dstSurface =
- surfaceTextureRef->getOrCreateSurface(display.outputDataspace, grContext);
+ sk_sp<SkSurface> dstSurface = surfaceTextureRef->getOrCreateSurface(display.outputDataspace);
SkCanvas* dstCanvas = mCapture->tryCapture(dstSurface.get());
if (dstCanvas == nullptr) {
@@ -972,7 +971,7 @@
: item.isOpaque ? kOpaque_SkAlphaType
: item.usePremultipliedAlpha ? kPremul_SkAlphaType
: kUnpremul_SkAlphaType;
- sk_sp<SkImage> image = imageTextureRef->makeImage(layerDataspace, alphaType, grContext);
+ sk_sp<SkImage> image = imageTextureRef->makeImage(layerDataspace, alphaType);
auto texMatrix = getSkM44(item.textureTransform).asM33();
// textureTansform was intended to be passed directly into a shader, so when