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

Commit 0188eeff authored by Mathias Agopian's avatar Mathias Agopian Committed by Android (Google) Code Review
Browse files

Merge "only use glReadPixels() when needed when taking screenshots" into jb-mr2-dev

parents 504e1f26 b4b1730a
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -109,6 +109,9 @@ SurfaceFlinger::SurfaceFlinger()
    // debugging stuff...
    char value[PROPERTY_VALUE_MAX];

    property_get("ro.bq.gpu_to_cpu_unsupported", value, "0");
    mGpuToCpuSupported = !!atoi(value);

    property_get("debug.sf.showupdates", value, "0");
    mDebugRegion = atoi(value);

@@ -2546,15 +2549,16 @@ status_t SurfaceFlinger::captureScreen(const sp<IBinder>& display,
        virtual bool handler() {
            Mutex::Autolock _l(flinger->mStateLock);
            sp<const DisplayDevice> hw(flinger->getDisplayDevice(display));
            // TODO: if we know the GL->CPU path works, we can call
            // When we know the GL->CPU path works, we can call
            // captureScreenImplLocked() directly, instead of using the
            // "CpuConsumer" version, which is much less efficient -- it is
            // however needed by some older drivers.
            if (isCpuConsumer) {
                result = flinger->captureScreenImplCpuConsumerLocked(hw,

            if (flinger->mGpuToCpuSupported || !isCpuConsumer) {
                result = flinger->captureScreenImplLocked(hw,
                        producer, reqWidth, reqHeight, minLayerZ, maxLayerZ);
            } else {
                result = flinger->captureScreenImplLocked(hw,
                result = flinger->captureScreenImplCpuConsumerLocked(hw,
                        producer, reqWidth, reqHeight, minLayerZ, maxLayerZ);
            }
            return true;
+1 −0
Original line number Diff line number Diff line
@@ -412,6 +412,7 @@ private:
    HWComposer* mHwc;
    GLuint mProtectedTexName;
    nsecs_t mBootTime;
    bool mGpuToCpuSupported;
    sp<EventThread> mEventThread;
    GLint mMaxViewportDims[2];
    GLint mMaxTextureSize;