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

Commit 199b8ca1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Cache SkImage in SurfaceTexture only if buffer content is same"

parents 281103e6 26679ce6
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -46,8 +46,8 @@ void ImageConsumer::onReleaseBufferLocked(int buf) {
}

void ImageConsumer::ImageSlot::createIfNeeded(sp<GraphicBuffer> graphicBuffer,
                                              android_dataspace dataspace) {
    if (!mImage.get() || dataspace != mDataspace) {
                                              android_dataspace dataspace, bool forceCreate) {
    if (!mImage.get() || dataspace != mDataspace || forceCreate) {
        mImage = graphicBuffer.get()
                         ? SkImage::MakeFromAHardwareBuffer(
                                   reinterpret_cast<AHardwareBuffer*>(graphicBuffer.get()),
@@ -71,7 +71,7 @@ sk_sp<SkImage> ImageConsumer::dequeueImage(bool* queueEmpty, SurfaceTexture& st,
            if (slot != BufferItem::INVALID_BUFFER_SLOT) {
                *queueEmpty = true;
                mImageSlots[slot].createIfNeeded(st.mSlots[slot].mGraphicBuffer,
                        st.mCurrentDataSpace);
                        st.mCurrentDataSpace, false);
                return mImageSlots[slot].mImage;
            }
        }
@@ -150,7 +150,7 @@ sk_sp<SkImage> ImageConsumer::dequeueImage(bool* queueEmpty, SurfaceTexture& st,
    st.computeCurrentTransformMatrixLocked();

    *queueEmpty = false;
    mImageSlots[slot].createIfNeeded(st.mSlots[slot].mGraphicBuffer, item.mDataSpace);
    mImageSlots[slot].createIfNeeded(st.mSlots[slot].mGraphicBuffer, item.mDataSpace, true);
    return mImageSlots[slot].mImage;
}

+2 −1
Original line number Diff line number Diff line
@@ -82,7 +82,8 @@ private:
         */
        EGLSyncKHR mEglFence;

        void createIfNeeded(sp<GraphicBuffer> graphicBuffer, android_dataspace dataspace);
        void createIfNeeded(sp<GraphicBuffer> graphicBuffer, android_dataspace dataspace,
                            bool forceCreate);
    };

    /**