Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b8abeba authored by Stan Iliev's avatar Stan Iliev
Browse files

Fix TextureView calling eglCreateImage with a destructed buffer

Fix an issue with hardware buffer passed from the SurfaceTexture
being destroyed before an SkImage is created. This CL is matched
by a change in frameworks/native
I2e025e683052168546f2e271a20a857b1e556b64.

Test: Ran TextureView CTS tests and a few apps that use TextureView.
Test: Fix verified by partner Mediatek
Bug: 160930384
Bug: 152781833
Bug: 153045874
Bug: 156047948
Bug: 160514803
Bug: 155545635
Bug: 155171712
Change-Id: I4d121f087fc842ce317745e7b7e2656f80a52b7d
(cherry picked from commit d125b447)
parent 274ce444
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -149,6 +149,9 @@ void DeferredLayerUpdater::apply() {
                sk_sp<SkImage> layerImage = mImageSlots[slot].createIfNeeded(
                        hardwareBuffer, dataspace, newContent,
                        mRenderState.getRenderThread().getGrContext());
                // unref to match the ref added by ASurfaceTexture_dequeueBuffer. eglCreateImageKHR
                // (invoked by createIfNeeded) will add a ref to the AHardwareBuffer.
                AHardwareBuffer_release(hardwareBuffer);
                if (layerImage.get()) {
                    SkMatrix textureTransform;
                    mat4(transformMatrix).copyTo(textureTransform);