Fix build.
Revert "Add support for sending VSYNC events to the framework" This reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382. Change-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f
This commit is contained in:
parent
4a0994e4ab
commit
439cf8576d
@ -33,9 +33,8 @@
|
||||
namespace android {
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class ComposerState;
|
||||
class IDisplayEventConnection;
|
||||
class IMemoryHeap;
|
||||
class ComposerState;
|
||||
|
||||
class ISurfaceComposer : public IInterface
|
||||
{
|
||||
@ -125,19 +124,13 @@ public:
|
||||
uint32_t reqWidth, uint32_t reqHeight,
|
||||
uint32_t minLayerZ, uint32_t maxLayerZ) = 0;
|
||||
|
||||
/* triggers screen off animation */
|
||||
virtual status_t turnElectronBeamOff(int32_t mode) = 0;
|
||||
|
||||
/* triggers screen on animation */
|
||||
virtual status_t turnElectronBeamOn(int32_t mode) = 0;
|
||||
|
||||
/* verify that an ISurfaceTexture was created by SurfaceFlinger.
|
||||
*/
|
||||
virtual bool authenticateSurfaceTexture(
|
||||
const sp<ISurfaceTexture>& surface) const = 0;
|
||||
|
||||
/* return an IDisplayEventConnection */
|
||||
virtual sp<IDisplayEventConnection> createDisplayEventConnection() = 0;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -158,7 +151,6 @@ public:
|
||||
TURN_ELECTRON_BEAM_OFF,
|
||||
TURN_ELECTRON_BEAM_ON,
|
||||
AUTHENTICATE_SURFACE,
|
||||
CREATE_DISPLAY_EVENT_CONNECTION,
|
||||
};
|
||||
|
||||
virtual status_t onTransact( uint32_t code,
|
||||
|
@ -3,8 +3,6 @@ include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES:= \
|
||||
BitTube.cpp \
|
||||
DisplayEventReceiver.cpp \
|
||||
IDisplayEventConnection.cpp \
|
||||
ISensorEventConnection.cpp \
|
||||
ISensorServer.cpp \
|
||||
ISurfaceTexture.cpp \
|
||||
|
@ -29,9 +29,6 @@
|
||||
|
||||
#include <surfaceflinger/ISurfaceComposer.h>
|
||||
|
||||
#include <gui/BitTube.h>
|
||||
#include <gui/IDisplayEventConnection.h>
|
||||
|
||||
#include <ui/DisplayInfo.h>
|
||||
|
||||
#include <gui/ISurfaceTexture.h>
|
||||
@ -47,8 +44,6 @@
|
||||
|
||||
namespace android {
|
||||
|
||||
class IDisplayEventConnection;
|
||||
|
||||
class BpSurfaceComposer : public BpInterface<ISurfaceComposer>
|
||||
{
|
||||
public:
|
||||
@ -179,27 +174,6 @@ public:
|
||||
}
|
||||
return result != 0;
|
||||
}
|
||||
|
||||
virtual sp<IDisplayEventConnection> createDisplayEventConnection()
|
||||
{
|
||||
Parcel data, reply;
|
||||
sp<IDisplayEventConnection> result;
|
||||
int err = data.writeInterfaceToken(
|
||||
ISurfaceComposer::getInterfaceDescriptor());
|
||||
if (err != NO_ERROR) {
|
||||
return result;
|
||||
}
|
||||
err = remote()->transact(
|
||||
BnSurfaceComposer::CREATE_DISPLAY_EVENT_CONNECTION,
|
||||
data, &reply);
|
||||
if (err != NO_ERROR) {
|
||||
LOGE("ISurfaceComposer::createDisplayEventConnection: error performing "
|
||||
"transaction: %s (%d)", strerror(-err), -err);
|
||||
return result;
|
||||
}
|
||||
result = interface_cast<IDisplayEventConnection>(reply.readStrongBinder());
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
IMPLEMENT_META_INTERFACE(SurfaceComposer, "android.ui.ISurfaceComposer");
|
||||
@ -280,12 +254,6 @@ status_t BnSurfaceComposer::onTransact(
|
||||
int32_t result = authenticateSurfaceTexture(surfaceTexture) ? 1 : 0;
|
||||
reply->writeInt32(result);
|
||||
} break;
|
||||
case CREATE_DISPLAY_EVENT_CONNECTION: {
|
||||
CHECK_INTERFACE(ISurfaceComposer, data, reply);
|
||||
sp<IDisplayEventConnection> connection(createDisplayEventConnection());
|
||||
reply->writeStrongBinder(connection->asBinder());
|
||||
return NO_ERROR;
|
||||
} break;
|
||||
default:
|
||||
return BBinder::onTransact(code, data, reply, flags);
|
||||
}
|
||||
|
@ -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\"
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
@ -1592,17 +1571,10 @@ status_t SurfaceFlinger::dump(int fd, const Vector<String16>& args)
|
||||
result.append(buffer);
|
||||
}
|
||||
|
||||
/*
|
||||
* 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");
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user