Merge "Workaround for add_tid_to_cgroup failed to write" into jb-dev
diff --git a/libs/gui/BufferQueue.cpp b/libs/gui/BufferQueue.cpp
index e53162b..2d7c89b 100644
--- a/libs/gui/BufferQueue.cpp
+++ b/libs/gui/BufferQueue.cpp
@@ -72,6 +72,15 @@
return android_atomic_inc(&globalCounter);
}
+static const char* scalingModeName(int scalingMode) {
+ switch (scalingMode) {
+ case NATIVE_WINDOW_SCALING_MODE_FREEZE: return "FREEZE";
+ case NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW: return "SCALE_TO_WINDOW";
+ case NATIVE_WINDOW_SCALING_MODE_SCALE_CROP: return "SCALE_CROP";
+ default: return "Unknown";
+ }
+}
+
BufferQueue::BufferQueue( bool allowSynchronousMode, int bufferCount ) :
mDefaultWidth(1),
mDefaultHeight(1),
@@ -543,8 +552,10 @@
input.deflate(×tamp, &crop, &scalingMode, &transform);
- ST_LOGV("queueBuffer: slot=%d time=%lld crop=[%d,%d,%d,%d]",
- buf, timestamp, crop.left, crop.top, crop.right, crop.bottom);
+ ST_LOGV("queueBuffer: slot=%d time=%#llx crop=[%d,%d,%d,%d] tr=%#x "
+ "scale=%s",
+ buf, timestamp, crop.left, crop.top, crop.right, crop.bottom,
+ transform, scalingModeName(scalingMode));
sp<ConsumerListener> listener;
@@ -611,7 +622,6 @@
case NATIVE_WINDOW_SCALING_MODE_FREEZE:
case NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW:
case NATIVE_WINDOW_SCALING_MODE_SCALE_CROP:
- case NATIVE_WINDOW_SCALING_MODE_NO_SCALE_CROP:
break;
default:
ST_LOGE("unknown scaling mode: %d (ignoring)", scalingMode);
@@ -796,11 +806,12 @@
snprintf(buffer, SIZE,
"%s%s[%02d] "
"state=%-8s, crop=[%d,%d,%d,%d], "
- "transform=0x%02x, timestamp=%lld",
+ "xform=0x%02x, time=%#llx, scale=%s",
prefix, (slot.mBufferState == BufferSlot::ACQUIRED)?">":" ", i,
stateName(slot.mBufferState),
slot.mCrop.left, slot.mCrop.top, slot.mCrop.right,
- slot.mCrop.bottom, slot.mTransform, slot.mTimestamp
+ slot.mCrop.bottom, slot.mTransform, slot.mTimestamp,
+ scalingModeName(slot.mScalingMode)
);
result.append(buffer);
diff --git a/libs/gui/SurfaceTextureClient.cpp b/libs/gui/SurfaceTextureClient.cpp
index 9c3e28d..5d3bd1a 100644
--- a/libs/gui/SurfaceTextureClient.cpp
+++ b/libs/gui/SurfaceTextureClient.cpp
@@ -522,7 +522,6 @@
int SurfaceTextureClient::setCrop(Rect const* rect)
{
ATRACE_CALL();
- ALOGV("SurfaceTextureClient::setCrop");
Rect realRect;
if (rect == NULL || rect->isEmpty()) {
@@ -531,6 +530,9 @@
realRect = *rect;
}
+ ALOGV("SurfaceTextureClient::setCrop rect=[%d %d %d %d]",
+ realRect.left, realRect.top, realRect.right, realRect.bottom);
+
Mutex::Autolock lock(mMutex);
mCrop = realRect;
mCropNeedsTransform = false;
@@ -540,7 +542,6 @@
int SurfaceTextureClient::setPostTransformCrop(Rect const* rect)
{
ATRACE_CALL();
- ALOGV("SurfaceTextureClient::setPostTransformCrop");
Rect realRect;
if (rect == NULL || rect->isEmpty()) {
@@ -549,6 +550,9 @@
realRect = *rect;
}
+ ALOGV("SurfaceTextureClient::setPostTransformCrop rect=[%d %d %d %d]",
+ realRect.left, realRect.top, realRect.right, realRect.bottom);
+
Mutex::Autolock lock(mMutex);
mCrop = realRect;
mCropNeedsTransform = true;
@@ -627,7 +631,6 @@
case NATIVE_WINDOW_SCALING_MODE_FREEZE:
case NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW:
case NATIVE_WINDOW_SCALING_MODE_SCALE_CROP:
- case NATIVE_WINDOW_SCALING_MODE_NO_SCALE_CROP:
break;
default:
ALOGE("unknown scaling mode: %d", mode);
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index e936188..6bc80ee 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -541,6 +541,7 @@
mCurrentTransform = transform;
mCurrentScalingMode = scalingMode;
mFlinger->invalidateHwcGeometry();
+ recomputeVisibleRegions = true;
}
uint32_t bufWidth = mActiveBuffer->getWidth();
@@ -549,6 +550,7 @@
if (bufWidth != uint32_t(oldActiveBuffer->width) ||
bufHeight != uint32_t(oldActiveBuffer->height)) {
mFlinger->invalidateHwcGeometry();
+ recomputeVisibleRegions = true;
}
}