summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorRiley Andrews <riandrews@google.com>2014-10-24 18:30:07 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-10-24 18:30:07 +0000
commit131866e1a4cb3c592f923e95a8c1a66291e2057a (patch)
treeb28608d1059a82754ce64feaa71216c6090c5c05 /services
parent8ad8c0a775a1d4592479731973238b82480f76b2 (diff)
parent9707f4df640c3369f873a934bb05ffa5a68a5640 (diff)
downloadframeworks_native-131866e1a4cb3c592f923e95a8c1a66291e2057a.zip
frameworks_native-131866e1a4cb3c592f923e95a8c1a66291e2057a.tar.gz
frameworks_native-131866e1a4cb3c592f923e95a8c1a66291e2057a.tar.bz2
Merge "Add glFlush in surfaceflinger screenshot code." into lmp-mr1-dev
Diffstat (limited to 'services')
-rw-r--r--services/surfaceflinger/RenderEngine/RenderEngine.cpp4
-rw-r--r--services/surfaceflinger/RenderEngine/RenderEngine.h1
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp2
3 files changed, 7 insertions, 0 deletions
diff --git a/services/surfaceflinger/RenderEngine/RenderEngine.cpp b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
index d5d5da8..a77e0e9 100644
--- a/services/surfaceflinger/RenderEngine/RenderEngine.cpp
+++ b/services/surfaceflinger/RenderEngine/RenderEngine.cpp
@@ -219,6 +219,10 @@ void RenderEngine::fillRegionWithColor(const Region& region, uint32_t height,
drawMesh(mesh);
}
+void RenderEngine::flush() {
+ glFlush();
+}
+
void RenderEngine::clearWithColor(float red, float green, float blue, float alpha) {
glClearColor(red, green, blue, alpha);
glClear(GL_COLOR_BUFFER_BIT);
diff --git a/services/surfaceflinger/RenderEngine/RenderEngine.h b/services/surfaceflinger/RenderEngine/RenderEngine.h
index acbff9b..8d7529c 100644
--- a/services/surfaceflinger/RenderEngine/RenderEngine.h
+++ b/services/surfaceflinger/RenderEngine/RenderEngine.h
@@ -67,6 +67,7 @@ public:
virtual void dump(String8& result);
// helpers
+ void flush();
void clearWithColor(float red, float green, float blue, float alpha);
void fillRegionWithColor(const Region& region, uint32_t height,
float red, float green, float blue, float alpha);
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 96a8adb..50968e7 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -3201,6 +3201,8 @@ status_t SurfaceFlinger::captureScreenImplLocked(
EGLSyncKHR sync;
if (!DEBUG_SCREENSHOTS) {
sync = eglCreateSyncKHR(mEGLDisplay, EGL_SYNC_NATIVE_FENCE_ANDROID, NULL);
+ // native fence fd will not be populated until flush() is done.
+ getRenderEngine().flush();
} else {
sync = EGL_NO_SYNC_KHR;
}