Loading services/surfaceflinger/SurfaceFlinger.cpp +31 −20 Original line number Diff line number Diff line Loading @@ -196,6 +196,10 @@ SurfaceFlinger::SurfaceFlinger() property_get("debug.sf.disable_backpressure", value, "0"); mPropagateBackpressure = !atoi(value); ALOGI_IF(!mPropagateBackpressure, "Disabling backpressure propagation"); property_get("debug.sf.disable_hwc_vds", value, "0"); mUseHwcVirtualDisplays = !atoi(value); ALOGI_IF(!mUseHwcVirtualDisplays, "Disabling HWC virtual displays"); } void SurfaceFlinger::onFirstRef() Loading Loading @@ -1595,6 +1599,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) // etc.) but no internal state (i.e. a DisplayDevice). if (state.surface != NULL) { if (mUseHwcVirtualDisplays) { int width = 0; int status = state.surface->query( NATIVE_WINDOW_WIDTH, &width); Loading @@ -1615,6 +1620,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) mHwc->allocateVirtualDisplay(width, height, &format, &hwcId); } // TODO: Plumb requested format back up to consumer Loading Loading @@ -3289,6 +3295,11 @@ status_t SurfaceFlinger::onTransact( mSFEventThread->setPhaseOffset(static_cast<nsecs_t>(n)); return NO_ERROR; } case 1021: { // Disable HWC virtual displays n = data.readInt32(); mUseHwcVirtualDisplays = !n; return NO_ERROR; } } } return err; Loading services/surfaceflinger/SurfaceFlinger.h +1 −0 Original line number Diff line number Diff line Loading @@ -529,6 +529,7 @@ private: #ifdef USE_HWC2 bool mPropagateBackpressure = true; #endif bool mUseHwcVirtualDisplays = true; // these are thread safe mutable MessageQueue mEventQueue; Loading services/surfaceflinger/SurfaceFlinger_hwc1.cpp +12 −2 Original line number Diff line number Diff line Loading @@ -181,6 +181,10 @@ SurfaceFlinger::SurfaceFlinger() } ALOGI_IF(mDebugRegion, "showupdates enabled"); ALOGI_IF(mDebugDDMS, "DDMS debugging enabled"); property_get("debug.sf.disable_hwc_vds", value, "0"); mUseHwcVirtualDisplays = !atoi(value); ALOGI_IF(!mUseHwcVirtualDisplays, "Disabling HWC virtual displays"); } void SurfaceFlinger::onFirstRef() Loading Loading @@ -1508,9 +1512,10 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) NATIVE_WINDOW_HEIGHT, &height); ALOGE_IF(status != NO_ERROR, "Unable to query height (%d)", status); if (MAX_VIRTUAL_DISPLAY_DIMENSION == 0 || if (mUseHwcVirtualDisplays && (MAX_VIRTUAL_DISPLAY_DIMENSION == 0 || (width <= MAX_VIRTUAL_DISPLAY_DIMENSION && height <= MAX_VIRTUAL_DISPLAY_DIMENSION)) { height <= MAX_VIRTUAL_DISPLAY_DIMENSION))) { hwcDisplayId = allocateHwcDisplayId(state.type); } Loading Loading @@ -3190,6 +3195,11 @@ status_t SurfaceFlinger::onTransact( mSFEventThread->setPhaseOffset(static_cast<nsecs_t>(n)); return NO_ERROR; } case 1021: { // Disable HWC virtual displays n = data.readInt32(); mUseHwcVirtualDisplays = !n; return NO_ERROR; } } } return err; Loading Loading
services/surfaceflinger/SurfaceFlinger.cpp +31 −20 Original line number Diff line number Diff line Loading @@ -196,6 +196,10 @@ SurfaceFlinger::SurfaceFlinger() property_get("debug.sf.disable_backpressure", value, "0"); mPropagateBackpressure = !atoi(value); ALOGI_IF(!mPropagateBackpressure, "Disabling backpressure propagation"); property_get("debug.sf.disable_hwc_vds", value, "0"); mUseHwcVirtualDisplays = !atoi(value); ALOGI_IF(!mUseHwcVirtualDisplays, "Disabling HWC virtual displays"); } void SurfaceFlinger::onFirstRef() Loading Loading @@ -1595,6 +1599,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) // etc.) but no internal state (i.e. a DisplayDevice). if (state.surface != NULL) { if (mUseHwcVirtualDisplays) { int width = 0; int status = state.surface->query( NATIVE_WINDOW_WIDTH, &width); Loading @@ -1615,6 +1620,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) mHwc->allocateVirtualDisplay(width, height, &format, &hwcId); } // TODO: Plumb requested format back up to consumer Loading Loading @@ -3289,6 +3295,11 @@ status_t SurfaceFlinger::onTransact( mSFEventThread->setPhaseOffset(static_cast<nsecs_t>(n)); return NO_ERROR; } case 1021: { // Disable HWC virtual displays n = data.readInt32(); mUseHwcVirtualDisplays = !n; return NO_ERROR; } } } return err; Loading
services/surfaceflinger/SurfaceFlinger.h +1 −0 Original line number Diff line number Diff line Loading @@ -529,6 +529,7 @@ private: #ifdef USE_HWC2 bool mPropagateBackpressure = true; #endif bool mUseHwcVirtualDisplays = true; // these are thread safe mutable MessageQueue mEventQueue; Loading
services/surfaceflinger/SurfaceFlinger_hwc1.cpp +12 −2 Original line number Diff line number Diff line Loading @@ -181,6 +181,10 @@ SurfaceFlinger::SurfaceFlinger() } ALOGI_IF(mDebugRegion, "showupdates enabled"); ALOGI_IF(mDebugDDMS, "DDMS debugging enabled"); property_get("debug.sf.disable_hwc_vds", value, "0"); mUseHwcVirtualDisplays = !atoi(value); ALOGI_IF(!mUseHwcVirtualDisplays, "Disabling HWC virtual displays"); } void SurfaceFlinger::onFirstRef() Loading Loading @@ -1508,9 +1512,10 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) NATIVE_WINDOW_HEIGHT, &height); ALOGE_IF(status != NO_ERROR, "Unable to query height (%d)", status); if (MAX_VIRTUAL_DISPLAY_DIMENSION == 0 || if (mUseHwcVirtualDisplays && (MAX_VIRTUAL_DISPLAY_DIMENSION == 0 || (width <= MAX_VIRTUAL_DISPLAY_DIMENSION && height <= MAX_VIRTUAL_DISPLAY_DIMENSION)) { height <= MAX_VIRTUAL_DISPLAY_DIMENSION))) { hwcDisplayId = allocateHwcDisplayId(state.type); } Loading Loading @@ -3190,6 +3195,11 @@ status_t SurfaceFlinger::onTransact( mSFEventThread->setPhaseOffset(static_cast<nsecs_t>(n)); return NO_ERROR; } case 1021: { // Disable HWC virtual displays n = data.readInt32(); mUseHwcVirtualDisplays = !n; return NO_ERROR; } } } return err; Loading