Home | History | Annotate | Download | only in DisplayHardware

Lines Matching refs:disp

171         DisplayData& disp(mDisplayData[HWC_DISPLAY_PRIMARY]);
172 disp.connected = true;
173 disp.format = mFbDev->format;
180 disp.configs.push_back(config);
181 disp.currentConfig = 0;
263 void HWComposer::hook_vsync(const struct hwc_procs* procs, int disp,
267 ctx->hwc->vsync(disp, timestamp);
270 void HWComposer::hook_hotplug(const struct hwc_procs* procs, int disp,
274 ctx->hwc->hotplug(disp, connected);
281 void HWComposer::vsync(int disp, int64_t timestamp) {
282 if (uint32_t(disp) < HWC_NUM_PHYSICAL_DISPLAY_TYPES) {
290 if (timestamp == mLastHwVSync[disp]) {
296 mLastHwVSync[disp] = timestamp;
300 snprintf(tag, sizeof(tag), "HW_VSYNC_%1u", disp);
301 ATRACE_INT(tag, ++mVSyncCounts[disp] & 1);
303 mEventHandler.onVSyncReceived(disp, timestamp);
307 void HWComposer::hotplug(int disp, int connected) {
308 if (disp == HWC_DISPLAY_PRIMARY || disp >= VIRTUAL_DISPLAY_ID_BASE) {
309 ALOGE("hotplug event received for invalid display: disp=%d connected=%d",
310 disp, connected);
313 queryDisplayProperties(disp);
314 mEventHandler.onHotplugReceived(disp, bool(connected));
340 status_t HWComposer::queryDisplayProperties(int disp) {
351 status_t err = mHwc->getDisplayConfigs(mHwc, disp, configs, &numConfigs);
354 mDisplayData[disp].connected = false;
358 mDisplayData[disp].currentConfig = 0;
360 err = mHwc->getDisplayAttributes(mHwc, disp, configs[c],
364 mDisplayData[disp].connected = false;
399 mDisplayData[disp].configs.push_back(config);
403 mDisplayData[disp].format = HAL_PIXEL_FORMAT_RGBA_8888;
404 mDisplayData[disp].connected = true;
448 nsecs_t HWComposer::getRefreshTimestamp(int disp) const {
454 size_t configId = mDisplayData[disp].currentConfig;
455 return now - ((now - mLastHwVSync[disp]) %
456 mDisplayData[disp].configs[configId].refresh);
459 sp<Fence> HWComposer::getDisplayFence(int disp) const {
460 return mDisplayData[disp].lastDisplayFence;
463 uint32_t HWComposer::getFormat(int disp) const {
464 if (uint32_t(disp)>31 || !mAllocatedDisplayIDs.hasBit(disp)) {
467 return mDisplayData[disp].format;
471 bool HWComposer::isConnected(int disp) const {
472 return mDisplayData[disp].connected;
475 uint32_t HWComposer::getWidth(int disp) const {
476 size_t currentConfig = mDisplayData[disp].currentConfig;
477 return mDisplayData[disp].configs[currentConfig].width;
480 uint32_t HWComposer::getHeight(int disp) const {
481 size_t currentConfig = mDisplayData[disp].currentConfig;
482 return mDisplayData[disp].configs[currentConfig].height;
485 float HWComposer::getDpiX(int disp) const {
486 size_t currentConfig = mDisplayData[disp].currentConfig;
487 return mDisplayData[disp].configs[currentConfig].xdpi;
490 float HWComposer::getDpiY(int disp) const {
491 size_t currentConfig = mDisplayData[disp].currentConfig;
492 return mDisplayData[disp].configs[currentConfig].ydpi;
495 nsecs_t HWComposer::getRefreshPeriod(int disp) const {
496 size_t currentConfig = mDisplayData[disp].currentConfig;
497 return mDisplayData[disp].configs[currentConfig].refresh;
500 disp) const {
501 return mDisplayData[disp].configs;
504 size_t HWComposer::getCurrentConfig(int disp) const {
505 return mDisplayData[disp].currentConfig;
508 void HWComposer::eventControl(int disp, int event, int enabled) {
509 if (uint32_t(disp)>31 || !mAllocatedDisplayIDs.hasBit(disp)) {
510 ALOGD("eventControl ignoring event %d on unallocated disp %d (en=%d)",
511 event, disp, enabled);
515 ALOGW("eventControl got unexpected event %d (disp=%d en=%d)",
516 event, disp, enabled);
528 const int32_t oldValue = mDisplayData[disp].events & eventBit;
531 err = mHwc->eventControl(mHwc, disp, event, enabled);
533 int32_t& events(mDisplayData[disp].events);
537 snprintf(tag, sizeof(tag), "HW_VSYNC_ON_%1u", disp);
558 DisplayData& disp(mDisplayData[id]);
563 if (disp.capacity < numLayers || disp.list == NULL) {
566 free(disp.list);
567 disp.list = (hwc_display_contents_1_t*)malloc(size);
568 disp.capacity = numLayers;
571 disp.framebufferTarget = &disp.list->hwLayers[numLayers - 1];
572 memset(disp.framebufferTarget, 0, sizeof(hwc_layer_1_t));
574 disp.configs[disp.currentConfig];
577 disp.framebufferTarget->compositionType = HWC_FRAMEBUFFER_TARGET;
578 disp.framebufferTarget->hints = 0;
579 disp.framebufferTarget->flags = 0;
580 disp.framebufferTarget->handle = disp.fbTargetHandle;
581 disp.framebufferTarget->transform = 0;
582 disp.framebufferTarget->blending = HWC_BLENDING_PREMULT;
584 disp.framebufferTarget->sourceCropf.left = 0;
585 disp.framebufferTarget->sourceCropf.top = 0;
586 disp.framebufferTarget->sourceCropf.right =
588 disp.framebufferTarget->sourceCropf.bottom =
591 disp.framebufferTarget->sourceCrop = r;
593 disp.framebufferTarget->displayFrame = r;
594 disp.framebufferTarget->visibleRegionScreen.numRects = 1;
595 disp.framebufferTarget->visibleRegionScreen.rects =
596 &disp.framebufferTarget->displayFrame;
597 disp.framebufferTarget->acquireFenceFd = -1;
598 disp.framebufferTarget->releaseFenceFd = -1;
599 disp.framebufferTarget->planeAlpha = 0xFF;
601 disp.list->retireFenceFd = -1;
602 disp.list->flags = HWC_GEOMETRY_CHANGED;
603 disp.list->numHwLayers = numLayers;
613 DisplayData& disp(mDisplayData[id]);
614 if (!disp.framebufferTarget) {
628 disp.fbTargetHandle = buf->handle;
629 disp.framebufferTarget->handle = disp.fbTargetHandle;
630 disp.framebufferTarget->acquireFenceFd = acquireFenceFd;
636 DisplayData& disp(mDisplayData[i]);
637 if (disp.framebufferTarget) {
642 LOG_FATAL_IF(disp.list == NULL);
643 disp.framebufferTarget->compositionType = HWC_FRAMEBUFFER_TARGET;
645 if (!disp.connected && disp.list != NULL) {
646 ALOGW("WARNING: disp %zu: connected, non-null list, layers=%zu",
647 i, disp.list->numHwLayers);
649 mLists[i] = disp.list;
652 mLists[i]->outbuf = disp.outbufHandle;
677 DisplayData& disp(mDisplayData[i]);
678 disp.hasFbComp = false;
679 disp.hasOvComp = false;
680 if (disp.list) {
681 for (size_t i=0 ; i<disp.list->numHwLayers ; i++) {
682 hwc_layer_1_t& l = disp.list->hwLayers[i];
691 disp.hasFbComp = true;
694 disp.hasOvComp = true;
697 disp.hasOvComp = true;
700 if (disp.list->numHwLayers == (disp.framebufferTarget ? 1 : 0)) {
701 disp.hasFbComp = true;
704 disp.hasFbComp = true;
729 const DisplayData& disp(mDisplayData[id]);
730 if (disp.framebufferTarget) {
731 fd = disp.framebufferTarget->releaseFenceFd;
732 disp.framebufferTarget->acquireFenceFd = -1;
733 disp.framebufferTarget->releaseFenceFd = -1;
751 DisplayData& disp(mDisplayData[i]);
752 if (disp.outbufHandle) {
753 mLists[i]->outbuf = disp.outbufHandle;
755 disp.outbufAcquireFence->dup();
762 DisplayData& disp(mDisplayData[i]);
763 disp.lastDisplayFence = disp.lastRetireFence;
764 disp.lastRetireFence = Fence::NO_FENCE;
765 if (disp.list) {
766 if (disp.list->retireFenceFd != -1) {
767 disp.lastRetireFence = new Fence(disp.list->retireFenceFd);
768 disp.list->retireFenceFd = -1;
770 disp.list->flags &= ~HWC_GEOMETRY_CHANGED;
777 status_t HWComposer::setPowerMode(int disp, int mode) {
778 LOG_FATAL_IF(disp >= VIRTUAL_DISPLAY_ID_BASE);
781 eventControl(disp, HWC_EVENT_VSYNC, 0);
784 return (status_t)mHwc->setPowerMode(mHwc, disp, mode);
786 return (status_t)mHwc->blank(mHwc, disp,
793 status_t HWComposer::setActiveConfig(int disp, int mode) {
794 LOG_FATAL_IF(disp >= VIRTUAL_DISPLAY_ID_BASE);
795 DisplayData& dd(mDisplayData[disp]);
798 return (status_t)mHwc->setActiveConfig(mHwc, disp, mode);
805 void HWComposer::disconnectDisplay(int disp) {
806 LOG_ALWAYS_FATAL_IF(disp < 0 || disp == HWC_DISPLAY_PRIMARY);
807 DisplayData& dd(mDisplayData[disp]);
874 DisplayData& disp(mDisplayData[id]);
875 disp.outbufHandle = buf->handle;
876 disp.outbufAcquireFence = acquireFence;
1063 const DisplayData& disp(mDisplayData[id]);
1064 if (!mHwc || !disp.list || index > disp.list->numHwLayers) {
1067 return LayerListIterator(new HWCLayerVersion1(mHwc, disp.list->hwLayers), index);
1083 const DisplayData& disp(mDisplayData[id]);
1084 if (mHwc && disp.list) {
1085 numLayers = disp.list->numHwLayers;
1124 const DisplayData& disp(mDisplayData[i]);
1125 if (!disp.connected)
1133 for (size_t c = 0; c < disp.configs.size(); ++c) {
1134 const DisplayConfig& config(disp.configs[c]);
1136 c == disp.currentConfig ? "* " : "", c, config.width, config.height,
1140 if (disp.list) {
1143 disp.list->numHwLayers, disp.list->flags);
1149 for (size_t i=0 ; i<disp.list->numHwLayers ; i++) {
1150 const hwc_layer_1_t&l = disp.list->hwLayers[i];
1167 format = disp.format;