From af369f6280c9eec0caa3f53f8e27f3713e1a7d25 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Wed, 16 Sep 2009 20:15:42 -0700 Subject: disable backbuffer preservation when possible, which may improve performance a bit --- libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libs/surfaceflinger') diff --git a/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp b/libs/surfaceflinger/DisplayHardware/DisplayHardware.cpp index d893f0a..cc913cb 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; -- cgit v1.1