diff options
author | Mathias Agopian <mathias@google.com> | 2011-11-29 13:07:24 -0800 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2011-11-29 13:07:40 -0800 |
commit | 439cf8576d3b846c0aa0944d84372259bf075d51 (patch) | |
tree | f4834e0bd737764b7e155563a6cacc5398da42d1 /services | |
parent | 4a0994e4ab4ecffe063511acf70d4cfaaed6c2cc (diff) | |
download | frameworks_native-439cf8576d3b846c0aa0944d84372259bf075d51.zip frameworks_native-439cf8576d3b846c0aa0944d84372259bf075d51.tar.gz frameworks_native-439cf8576d3b846c0aa0944d84372259bf075d51.tar.bz2 |
Fix build.
Revert "Add support for sending VSYNC events to the framework"
This reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382.
Change-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f
Diffstat (limited to 'services')
-rw-r--r-- | services/surfaceflinger/Android.mk | 27 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/DisplayHardware.cpp | 34 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/DisplayHardware.h | 12 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 56 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.h | 8 |
5 files changed, 27 insertions, 110 deletions
diff --git a/services/surfaceflinger/Android.mk b/services/surfaceflinger/Android.mk index 95d651a..f63c0c1 100644 --- a/services/surfaceflinger/Android.mk +++ b/services/surfaceflinger/Android.mk @@ -2,22 +2,19 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:= \ - EventThread.cpp \ - Layer.cpp \ - LayerBase.cpp \ - LayerDim.cpp \ - LayerScreenshot.cpp \ - DdmConnection.cpp \ - DisplayHardware/DisplayHardware.cpp \ + Layer.cpp \ + LayerBase.cpp \ + LayerDim.cpp \ + LayerScreenshot.cpp \ + DdmConnection.cpp \ + DisplayHardware/DisplayHardware.cpp \ DisplayHardware/DisplayHardwareBase.cpp \ - DisplayHardware/HWComposer.cpp \ - DisplayHardware/VSyncBarrier.cpp \ - DisplayEventConnection.cpp \ - GLExtensions.cpp \ - MessageQueue.cpp \ - SurfaceFlinger.cpp \ - SurfaceTextureLayer.cpp \ - Transform.cpp \ + DisplayHardware/HWComposer.cpp \ + GLExtensions.cpp \ + MessageQueue.cpp \ + SurfaceFlinger.cpp \ + SurfaceTextureLayer.cpp \ + Transform.cpp \ LOCAL_CFLAGS:= -DLOG_TAG=\"SurfaceFlinger\" diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp b/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp index 3bbc75e..f94d321 100644 --- a/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp +++ b/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp @@ -140,7 +140,6 @@ void DisplayHardware::init(uint32_t dpy) mDpiX = mNativeWindow->xdpi; mDpiY = mNativeWindow->ydpi; mRefreshRate = fbDev->fps; - mNextFakeVSync = 0; /* FIXME: this is a temporary HACK until we are able to report the refresh rate @@ -153,8 +152,6 @@ void DisplayHardware::init(uint32_t dpy) #warning "refresh rate set via makefile to REFRESH_RATE" #endif - mRefreshPeriod = nsecs_t(1e9 / mRefreshRate); - EGLint w, h, dummy; EGLint numConfigs=0; EGLSurface surface; @@ -349,37 +346,6 @@ uint32_t DisplayHardware::getPageFlipCount() const { return mPageFlipCount; } -// this needs to be thread safe -nsecs_t DisplayHardware::waitForVSync() const { - nsecs_t timestamp; - if (mVSync.wait(×tamp) < 0) { - // vsync not supported! - usleep( getDelayToNextVSyncUs(×tamp) ); - } - return timestamp; -} - -int32_t DisplayHardware::getDelayToNextVSyncUs(nsecs_t* timestamp) const { - Mutex::Autolock _l(mFakeVSyncMutex); - const nsecs_t period = mRefreshPeriod; - const nsecs_t now = systemTime(CLOCK_MONOTONIC); - nsecs_t next_vsync = mNextFakeVSync; - nsecs_t sleep = next_vsync - now; - if (sleep < 0) { - // we missed, find where the next vsync should be - sleep = (period - ((now - next_vsync) % period)); - next_vsync = now + sleep; - } - mNextFakeVSync = next_vsync + period; - timestamp[0] = next_vsync; - - // round to next microsecond - int32_t sleep_us = (sleep + 999LL) / 1000LL; - - // guaranteed to be > 0 - return sleep_us; -} - status_t DisplayHardware::compositionComplete() const { return mNativeWindow->compositionComplete(); } diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardware.h b/services/surfaceflinger/DisplayHardware/DisplayHardware.h index 45d4b45..f02c954 100644 --- a/services/surfaceflinger/DisplayHardware/DisplayHardware.h +++ b/services/surfaceflinger/DisplayHardware/DisplayHardware.h @@ -32,7 +32,6 @@ #include "GLExtensions.h" #include "DisplayHardware/DisplayHardwareBase.h" -#include "DisplayHardware/VSyncBarrier.h" namespace android { @@ -75,9 +74,6 @@ public: uint32_t getMaxTextureSize() const; uint32_t getMaxViewportDims() const; - // waits for the next vsync and returns the timestamp of when it happened - nsecs_t waitForVSync() const; - uint32_t getPageFlipCount() const; EGLDisplay getEGLDisplay() const { return mDisplay; } @@ -99,7 +95,6 @@ public: private: void init(uint32_t displayIndex) __attribute__((noinline)); void fini() __attribute__((noinline)); - int32_t getDelayToNextVSyncUs(nsecs_t* timestamp) const; sp<SurfaceFlinger> mFlinger; EGLDisplay mDisplay; @@ -117,12 +112,7 @@ private: mutable uint32_t mPageFlipCount; GLint mMaxViewportDims[2]; GLint mMaxTextureSize; - VSyncBarrier mVSync; - - mutable Mutex mFakeVSyncMutex; - mutable nsecs_t mNextFakeVSync; - nsecs_t mRefreshPeriod; - + HWComposer* mHwc; sp<FramebufferNativeWindow> mNativeWindow; diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index d5a8d08..39f0f40 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -34,8 +34,6 @@ #include <binder/MemoryHeapBase.h> #include <binder/PermissionCache.h> -#include <gui/IDisplayEventConnection.h> - #include <utils/String8.h> #include <utils/String16.h> #include <utils/StopWatch.h> @@ -48,8 +46,6 @@ #include <GLES/gl.h> #include "clz.h" -#include "DisplayEventConnection.h" -#include "EventThread.h" #include "GLExtensions.h" #include "DdmConnection.h" #include "Layer.h" @@ -297,16 +293,12 @@ status_t SurfaceFlinger::readyToRun() // put the origin in the left-bottom corner glOrthof(0, w, 0, h, 0, 1); // l=0, r=w ; b=0, t=h - - // start the EventThread - mEventThread = new EventThread(this); + mReadyToRunBarrier.open(); /* * We're now ready to accept clients... */ - mReadyToRunBarrier.open(); - // start boot animation property_set("ctl.start", "bootanim"); @@ -327,22 +319,6 @@ void SurfaceFlinger::signalEvent() { mEventQueue.invalidate(); } -status_t SurfaceFlinger::postMessageAsync(const sp<MessageBase>& msg, - nsecs_t reltime, uint32_t flags) { - return mEventQueue.postMessage(msg, reltime); -} - -status_t SurfaceFlinger::postMessageSync(const sp<MessageBase>& msg, - nsecs_t reltime, uint32_t flags) { - status_t res = mEventQueue.postMessage(msg, reltime); - if (res == NO_ERROR) { - msg->wait(); - } - return res; -} - -// ---------------------------------------------------------------------------- - bool SurfaceFlinger::authenticateSurfaceTexture( const sp<ISurfaceTexture>& surfaceTexture) const { Mutex::Autolock _l(mStateLock); @@ -384,17 +360,20 @@ bool SurfaceFlinger::authenticateSurfaceTexture( return false; } -// ---------------------------------------------------------------------------- - -sp<IDisplayEventConnection> SurfaceFlinger::createDisplayEventConnection() { - sp<DisplayEventConnection> result(new DisplayEventConnection(this)); - mEventThread->registerDisplayEventConnection(result); - return result; +status_t SurfaceFlinger::postMessageAsync(const sp<MessageBase>& msg, + nsecs_t reltime, uint32_t flags) +{ + return mEventQueue.postMessage(msg, reltime, flags); } -void SurfaceFlinger::cleanupDisplayEventConnection( - const wp<DisplayEventConnection>& connection) { - mEventThread->unregisterDisplayEventConnection(connection); +status_t SurfaceFlinger::postMessageSync(const sp<MessageBase>& msg, + nsecs_t reltime, uint32_t flags) +{ + status_t res = mEventQueue.postMessage(msg, reltime, flags); + if (res == NO_ERROR) { + msg->wait(); + } + return res; } // ---------------------------------------------------------------------------- @@ -453,7 +432,7 @@ bool SurfaceFlinger::threadLoop() } else { // pretend we did the post hw.compositionComplete(); - hw.waitForVSync(); + usleep(16667); // 60 fps period } return true; } @@ -1593,16 +1572,9 @@ status_t SurfaceFlinger::dump(int fd, const Vector<String16>& args) } /* - * VSYNC state - */ - mEventThread->dump(result, buffer, SIZE); - - /* * Dump HWComposer state */ HWComposer& hwc(hw.getHwComposer()); - snprintf(buffer, SIZE, "h/w composer state:\n"); - result.append(buffer); snprintf(buffer, SIZE, " h/w composer %s and %s\n", hwc.initCheck()==NO_ERROR ? "present" : "not present", (mDebugDisableHWC || mDebugRegion) ? "disabled" : "enabled"); diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h index 1039f47..17028db 100644 --- a/services/surfaceflinger/SurfaceFlinger.h +++ b/services/surfaceflinger/SurfaceFlinger.h @@ -46,8 +46,6 @@ namespace android { class Client; class DisplayHardware; -class DisplayEventConnection; -class EventThread; class Layer; class LayerDim; class LayerScreenshot; @@ -173,7 +171,6 @@ public: int orientation, uint32_t flags); virtual int setOrientation(DisplayID dpy, int orientation, uint32_t flags); virtual bool authenticateSurfaceTexture(const sp<ISurfaceTexture>& surface) const; - virtual sp<IDisplayEventConnection> createDisplayEventConnection(); virtual status_t captureScreen(DisplayID dpy, sp<IMemoryHeap>* heap, @@ -225,7 +222,6 @@ private: private: friend class Client; - friend class DisplayEventConnection; friend class LayerBase; friend class LayerBaseClient; friend class Layer; @@ -335,9 +331,6 @@ private: status_t electronBeamOffAnimationImplLocked(); status_t electronBeamOnAnimationImplLocked(); - void cleanupDisplayEventConnection( - const wp<DisplayEventConnection>& connection); - void debugFlashRegions(); void debugShowFPS() const; void drawWormhole() const; @@ -368,7 +361,6 @@ private: GLuint mWormholeTexName; GLuint mProtectedTexName; nsecs_t mBootTime; - sp<EventThread> mEventThread; // Can only accessed from the main thread, these members // don't need synchronization |