Loading core/java/android/view/HardwareRenderer.java +43 −12 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.os.Handler; import android.os.Looper; import android.os.SystemClock; import android.os.SystemProperties; import android.os.Trace; import android.util.Log; import com.google.android.gles_jni.EGLImpl; Loading @@ -40,6 +41,7 @@ import javax.microedition.khronos.opengles.GL; import java.io.File; import java.io.PrintWriter; import java.util.concurrent.locks.ReentrantLock; import static javax.microedition.khronos.egl.EGL10.*; Loading Loading @@ -623,6 +625,7 @@ public abstract class HardwareRenderer { final boolean mProfileEnabled; final float[] mProfileData; final ReentrantLock mProfileLock; int mProfileCurrentFrame = -PROFILE_FRAME_DATA_COUNT; final boolean mDebugDirtyRegions; Loading Loading @@ -663,8 +666,11 @@ public abstract class HardwareRenderer { for (int i = 0; i < mProfileData.length; i += PROFILE_FRAME_DATA_COUNT) { mProfileData[i] = mProfileData[i + 1] = mProfileData[i + 2] = -1; } mProfileLock = new ReentrantLock(); } else { mProfileData = null; mProfileLock = null; } property = SystemProperties.get(DEBUG_DIRTY_REGIONS_PROPERTY, "false"); Loading @@ -678,6 +684,9 @@ public abstract class HardwareRenderer { void dumpGfxInfo(PrintWriter pw) { if (mProfileEnabled) { pw.printf("\n\tDraw\tProcess\tExecute\n"); mProfileLock.lock(); try { for (int i = 0; i < mProfileData.length; i += PROFILE_FRAME_DATA_COUNT) { if (mProfileData[i] < 0) { break; Loading @@ -687,6 +696,9 @@ public abstract class HardwareRenderer { mProfileData[i] = mProfileData[i + 1] = mProfileData[i + 2] = -1; } mProfileCurrentFrame = mProfileData.length; } finally { mProfileLock.unlock(); } } } Loading Loading @@ -1084,6 +1096,10 @@ public abstract class HardwareRenderer { HardwareCanvas canvas = mCanvas; attachInfo.mHardwareCanvas = canvas; if (mProfileEnabled) { mProfileLock.lock(); } // We had to change the current surface and/or context, redraw everything if (surfaceState == SURFACE_STATE_UPDATED) { dirty = null; Loading Loading @@ -1121,7 +1137,14 @@ public abstract class HardwareRenderer { getDisplayListStartTime = System.nanoTime(); } DisplayList displayList = view.getDisplayList(); DisplayList displayList; Trace.traceBegin(Trace.TRACE_TAG_VIEW, "getDisplayList"); try { displayList = view.getDisplayList(); } finally { Trace.traceEnd(Trace.TRACE_TAG_VIEW); } if (mProfileEnabled) { long now = System.nanoTime(); Loading @@ -1136,8 +1159,13 @@ public abstract class HardwareRenderer { drawDisplayListStartTime = System.nanoTime(); } Trace.traceBegin(Trace.TRACE_TAG_VIEW, "drawDisplayList"); try { status |= canvas.drawDisplayList(displayList, mRedrawClip, DisplayList.FLAG_CLIP_CHILDREN); } finally { Trace.traceEnd(Trace.TRACE_TAG_VIEW); } if (mProfileEnabled) { long now = System.nanoTime(); Loading Loading @@ -1174,7 +1202,6 @@ public abstract class HardwareRenderer { attachInfo.mIgnoreDirtyState = false; if ((status & DisplayList.STATUS_DREW) == DisplayList.STATUS_DREW) { long eglSwapBuffersStartTime = 0; if (mProfileEnabled) { eglSwapBuffersStartTime = System.nanoTime(); Loading @@ -1191,6 +1218,10 @@ public abstract class HardwareRenderer { checkEglErrors(); } if (mProfileEnabled) { mProfileLock.unlock(); } return dirty == null; } } Loading Loading
core/java/android/view/HardwareRenderer.java +43 −12 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.os.Handler; import android.os.Looper; import android.os.SystemClock; import android.os.SystemProperties; import android.os.Trace; import android.util.Log; import com.google.android.gles_jni.EGLImpl; Loading @@ -40,6 +41,7 @@ import javax.microedition.khronos.opengles.GL; import java.io.File; import java.io.PrintWriter; import java.util.concurrent.locks.ReentrantLock; import static javax.microedition.khronos.egl.EGL10.*; Loading Loading @@ -623,6 +625,7 @@ public abstract class HardwareRenderer { final boolean mProfileEnabled; final float[] mProfileData; final ReentrantLock mProfileLock; int mProfileCurrentFrame = -PROFILE_FRAME_DATA_COUNT; final boolean mDebugDirtyRegions; Loading Loading @@ -663,8 +666,11 @@ public abstract class HardwareRenderer { for (int i = 0; i < mProfileData.length; i += PROFILE_FRAME_DATA_COUNT) { mProfileData[i] = mProfileData[i + 1] = mProfileData[i + 2] = -1; } mProfileLock = new ReentrantLock(); } else { mProfileData = null; mProfileLock = null; } property = SystemProperties.get(DEBUG_DIRTY_REGIONS_PROPERTY, "false"); Loading @@ -678,6 +684,9 @@ public abstract class HardwareRenderer { void dumpGfxInfo(PrintWriter pw) { if (mProfileEnabled) { pw.printf("\n\tDraw\tProcess\tExecute\n"); mProfileLock.lock(); try { for (int i = 0; i < mProfileData.length; i += PROFILE_FRAME_DATA_COUNT) { if (mProfileData[i] < 0) { break; Loading @@ -687,6 +696,9 @@ public abstract class HardwareRenderer { mProfileData[i] = mProfileData[i + 1] = mProfileData[i + 2] = -1; } mProfileCurrentFrame = mProfileData.length; } finally { mProfileLock.unlock(); } } } Loading Loading @@ -1084,6 +1096,10 @@ public abstract class HardwareRenderer { HardwareCanvas canvas = mCanvas; attachInfo.mHardwareCanvas = canvas; if (mProfileEnabled) { mProfileLock.lock(); } // We had to change the current surface and/or context, redraw everything if (surfaceState == SURFACE_STATE_UPDATED) { dirty = null; Loading Loading @@ -1121,7 +1137,14 @@ public abstract class HardwareRenderer { getDisplayListStartTime = System.nanoTime(); } DisplayList displayList = view.getDisplayList(); DisplayList displayList; Trace.traceBegin(Trace.TRACE_TAG_VIEW, "getDisplayList"); try { displayList = view.getDisplayList(); } finally { Trace.traceEnd(Trace.TRACE_TAG_VIEW); } if (mProfileEnabled) { long now = System.nanoTime(); Loading @@ -1136,8 +1159,13 @@ public abstract class HardwareRenderer { drawDisplayListStartTime = System.nanoTime(); } Trace.traceBegin(Trace.TRACE_TAG_VIEW, "drawDisplayList"); try { status |= canvas.drawDisplayList(displayList, mRedrawClip, DisplayList.FLAG_CLIP_CHILDREN); } finally { Trace.traceEnd(Trace.TRACE_TAG_VIEW); } if (mProfileEnabled) { long now = System.nanoTime(); Loading Loading @@ -1174,7 +1202,6 @@ public abstract class HardwareRenderer { attachInfo.mIgnoreDirtyState = false; if ((status & DisplayList.STATUS_DREW) == DisplayList.STATUS_DREW) { long eglSwapBuffersStartTime = 0; if (mProfileEnabled) { eglSwapBuffersStartTime = System.nanoTime(); Loading @@ -1191,6 +1218,10 @@ public abstract class HardwareRenderer { checkEglErrors(); } if (mProfileEnabled) { mProfileLock.unlock(); } return dirty == null; } } Loading