diff options
| author | 2009-09-16 20:15:42 -0700 | |
|---|---|---|
| committer | 2009-09-16 20:15:42 -0700 | |
| commit | 0928bee979c8fa157e13e37e52ba9ad94e935237 (patch) | |
| tree | ad2dd7b6efea2685749ca63919fb01a31446553f | |
| parent | e8d23a23ee25069dd16a3aeb087ad6ea0f0f2fe9 (diff) | |
disable backbuffer preservation when possible, which may improve performance a bit
| -rw-r--r-- | libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp b/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp index d893f0ac45..cc913cbdf9 100644 --- a/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp +++ b/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp @@ -174,6 +174,13 @@ void DisplayHardware::init(uint32_t dpy) surface = eglCreateWindowSurface(display, config, mNativeWindow.get(), NULL); + if (mFlags & UPDATE_ON_DEMAND) { + // if we have update on demand, we definitely don't need to + // preserve the backbuffer, which is usually costly. + eglSurfaceAttrib(display, surface, + EGL_SWAP_BEHAVIOR, EGL_BUFFER_DESTROYED); + } + if (eglQuerySurface(display, surface, EGL_SWAP_BEHAVIOR, &dummy) == EGL_TRUE) { if (dummy == EGL_BUFFER_PRESERVED) { mFlags |= BUFFER_PRESERVED; |