am 620685c2: Fix emulator vsync

* commit '620685c2e684082c82657732d1e35cefd0c79006':
  Fix emulator vsync
This commit is contained in:
Andy McFadden 2012-10-19 16:14:34 -07:00 committed by Android Git Automerger
commit 44c985ef7d
1 changed files with 12 additions and 5 deletions

View File

@ -128,6 +128,11 @@ HWComposer::HWComposer(
abort();
}
// these display IDs are always reserved
for (size_t i=0 ; i<HWC_NUM_DISPLAY_TYPES ; i++) {
mAllocatedDisplayIDs.markBit(i);
}
if (mHwc) {
ALOGI("Using %s version %u.%u", HWC_HARDWARE_COMPOSER,
(hwcApiVersion(mHwc) >> 24) & 0xff,
@ -149,11 +154,6 @@ HWComposer::HWComposer(
// always turn vsync off when we start
eventControl(HWC_DISPLAY_PRIMARY, HWC_EVENT_VSYNC, 0);
// these IDs are always reserved
for (size_t i=0 ; i<HWC_NUM_DISPLAY_TYPES ; i++) {
mAllocatedDisplayIDs.markBit(i);
}
// the number of displays we actually have depends on the
// hw composer version
if (hwcHasApiVersion(mHwc, HWC_DEVICE_API_VERSION_1_2)) {
@ -445,6 +445,13 @@ bool HWComposer::isConnected(int disp) const {
void HWComposer::eventControl(int disp, int event, int enabled) {
if (uint32_t(disp)>31 || !mAllocatedDisplayIDs.hasBit(disp)) {
ALOGD("eventControl ignoring event %d on unallocated disp %d (en=%d)",
event, disp, enabled);
return;
}
if (event != EVENT_VSYNC) {
ALOGW("eventControl got unexpected event %d (disp=%d en=%d)",
event, disp, enabled);
return;
}
status_t err = NO_ERROR;