Home | History | Annotate | Download | only in DisplayHardware

Lines Matching refs:disp

173         DisplayData& disp(mDisplayData[HWC_DISPLAY_PRIMARY]);
174 disp.connected = true;
175 disp.format = mFbDev->format;
182 disp.configs.push_back(config);
183 disp.currentConfig = 0;
265 void HWComposer::hook_vsync(const struct hwc_procs* procs, int disp,
269 ctx->hwc->vsync(disp, timestamp);
272 void HWComposer::hook_hotplug(const struct hwc_procs* procs, int disp,
276 ctx->hwc->hotplug(disp, connected);
283 void HWComposer::vsync(int disp, int64_t timestamp) {
284 if (uint32_t(disp) < HWC_NUM_PHYSICAL_DISPLAY_TYPES) {
292 if (timestamp == mLastHwVSync[disp]) {
298 mLastHwVSync[disp] = timestamp;
302 snprintf(tag, sizeof(tag), "HW_VSYNC_%1u", disp);
303 ATRACE_INT(tag, ++mVSyncCounts[disp] & 1);
305 mEventHandler.onVSyncReceived(this, disp, timestamp);
309 void HWComposer::hotplug(int disp, int connected) {
310 if (disp >= VIRTUAL_DISPLAY_ID_BASE) {
311 ALOGE("hotplug event received for invalid display: disp=%d connected=%d",
312 disp, connected);
315 queryDisplayProperties(disp);
317 if (disp != HWC_DISPLAY_PRIMARY) {
318 mEventHandler.onHotplugReceived(this, disp, bool(connected));
355 status_t HWComposer::queryDisplayProperties(int disp) {
366 status_t err = mHwc->getDisplayConfigs(mHwc, disp, configs, &numConfigs);
369 mDisplayData[disp].connected = false;
373 mDisplayData[disp].currentConfig = 0;
375 err = mHwc->getDisplayAttributes(mHwc, disp, configs[c],
380 err = mHwc->getDisplayAttributes(mHwc, disp, configs[c],
385 mDisplayData[disp].connected = false;
423 mDisplayData[disp].configs.push_back(config);
427 mDisplayData[disp].format = HAL_PIXEL_FORMAT_RGBA_8888;
428 mDisplayData[disp].connected = true;
472 nsecs_t HWComposer::getRefreshTimestamp(int disp) const {
478 size_t configId = mDisplayData[disp].currentConfig;
479 return now - ((now - mLastHwVSync[disp]) %
480 mDisplayData[disp].configs[configId].refresh);
483 sp<Fence> HWComposer::getDisplayFence(int disp) const {
484 return mDisplayData[disp].lastDisplayFence;
487 uint32_t HWComposer::getFormat(int disp) const {
488 if (static_cast<uint32_t>(disp) >= MAX_HWC_DISPLAYS || !mAllocatedDisplayIDs.hasBit(disp)) {
491 return mDisplayData[disp].format;
495 bool HWComposer::isConnected(int disp) const {
496 return mDisplayData[disp].connected;
499 disp) const {
500 size_t currentConfig = mDisplayData[disp].currentConfig;
501 return mDisplayData[disp].configs[currentConfig].width;
504 uint32_t HWComposer::getHeight(int disp) const {
505 size_t currentConfig = mDisplayData[disp].currentConfig;
506 return mDisplayData[disp].configs[currentConfig].height;
509 float HWComposer::getDpiX(int disp) const {
510 size_t currentConfig = mDisplayData[disp].currentConfig;
511 return mDisplayData[disp].configs[currentConfig].xdpi;
514 float HWComposer::getDpiY(int disp) const {
515 size_t currentConfig = mDisplayData[disp].currentConfig;
516 return mDisplayData[disp].configs[currentConfig].ydpi;
519 nsecs_t HWComposer::getRefreshPeriod(int disp) const {
520 size_t currentConfig = mDisplayData[disp].currentConfig;
521 return mDisplayData[disp].configs[currentConfig].refresh;
524 android_color_mode_t HWComposer::getColorMode(int disp) const {
525 size_t currentConfig = mDisplayData[disp].currentConfig;
526 return mDisplayData[disp].configs[currentConfig].colorMode;
529 const Vector<HWComposer::DisplayConfig>& HWComposer::getConfigs(int disp) const {
530 return mDisplayData[disp].configs;
533 size_t HWComposer::getCurrentConfig(int disp) const {
534 return mDisplayData[disp].currentConfig;
537 void HWComposer::eventControl(int disp, int event, int enabled) {
538 if (uint32_t(disp)>31 || !mAllocatedDisplayIDs.hasBit(disp)) {
539 ALOGD("eventControl ignoring event %d on unallocated disp %d (en=%d)",
540 event, disp, enabled);
544 ALOGW("eventControl got unexpected event %d (disp=%d en=%d)",
545 event, disp, enabled);
557 const int32_t oldValue = mDisplayData[disp].events & eventBit;
560 err = mHwc->eventControl(mHwc, disp, event, enabled);
562 int32_t& events(mDisplayData[disp].events);
566 snprintf(tag, sizeof(tag), "HW_VSYNC_ON_%1u", disp);
587 DisplayData& disp(mDisplayData[id]);
592 if (disp.capacity < numLayers || disp.list == NULL) {
595 free(disp.list);
596 disp.list = (hwc_display_contents_1_t*)malloc(size);
597 disp.capacity = numLayers;
600 disp.framebufferTarget = &disp.list->hwLayers[numLayers - 1];
601 memset(disp.framebufferTarget, 0, sizeof(hwc_layer_1_t));
603 disp.configs[disp.currentConfig];
606 disp.framebufferTarget->compositionType = HWC_FRAMEBUFFER_TARGET;
607 disp.framebufferTarget->hints = 0;
608 disp.framebufferTarget->flags = 0;
609 disp.framebufferTarget->handle = disp.fbTargetHandle;
610 disp.framebufferTarget->transform = 0;
611 disp.framebufferTarget->blending = HWC_BLENDING_PREMULT;
613 disp.framebufferTarget->sourceCropf.left = 0;
614 disp.framebufferTarget->sourceCropf.top = 0;
615 disp.framebufferTarget->sourceCropf.right =
617 disp.framebufferTarget->sourceCropf.bottom =
620 disp.framebufferTarget->sourceCrop = r;
622 disp.framebufferTarget->displayFrame = r;
623 disp.framebufferTarget->visibleRegionScreen.numRects = 1;
624 disp.framebufferTarget->visibleRegionScreen.rects =
625 &disp.framebufferTarget->displayFrame;
626 disp.framebufferTarget->acquireFenceFd = -1;
627 disp.framebufferTarget->releaseFenceFd = -1;
628 disp.framebufferTarget->planeAlpha = 0xFF;
630 disp.list->retireFenceFd = -1;
631 disp.list->flags = HWC_GEOMETRY_CHANGED;
632 disp.list->numHwLayers = numLayers;
642 DisplayData& disp(mDisplayData[id]);
643 if (!disp.framebufferTarget) {
657 disp.fbTargetHandle = buf->handle;
658 disp.framebufferTarget->handle = disp.fbTargetHandle;
659 disp.framebufferTarget->acquireFenceFd = acquireFenceFd;
666 DisplayData& disp(mDisplayData[i]);
667 if (disp.framebufferTarget) {
672 LOG_FATAL_IF(disp.list == NULL);
673 disp.framebufferTarget->compositionType = HWC_FRAMEBUFFER_TARGET;
675 if (!disp.connected && disp.list != NULL) {
676 ALOGW("WARNING: disp %zu: connected, non-null list, layers=%zu",
677 i, disp.list->numHwLayers);
679 mLists[i] = disp.list;
682 mLists[i]->outbuf = disp.outbufHandle;
707 DisplayData& disp(mDisplayData[i]);
708 disp.hasFbComp = false;
709 disp.hasOvComp = false;
710 if (disp.list) {
711 for (size_t i=0 ; i<disp.list->numHwLayers ; i++) {
712 hwc_layer_1_t& l = disp.list->hwLayers[i];
721 disp.hasFbComp = true;
724 disp.hasOvComp = true;
727 disp.hasOvComp = true;
730 if (disp.list->numHwLayers == (disp.framebufferTarget ? 1 : 0)) {
731 disp.hasFbComp = true;
734 disp.hasFbComp = true;
759 const DisplayData& disp(mDisplayData[id]);
760 if (disp.framebufferTarget) {
761 fd = disp.framebufferTarget->releaseFenceFd;
762 disp.framebufferTarget->acquireFenceFd = -1;
763 disp.framebufferTarget->releaseFenceFd = -1;
781 DisplayData& disp(mDisplayData[i]);
782 if (disp.outbufHandle) {
783 mLists[i]->outbuf = disp.outbufHandle;
785 disp.outbufAcquireFence->dup();
792 DisplayData& disp(mDisplayData[i]);
793 disp.lastDisplayFence = disp.lastRetireFence;
794 disp.lastRetireFence = Fence::NO_FENCE;
795 if (disp.list) {
796 if (disp.list->retireFenceFd != -1) {
797 disp.lastRetireFence = new Fence(disp.list->retireFenceFd);
798 disp.list->retireFenceFd = -1;
800 disp.list->flags &= ~HWC_GEOMETRY_CHANGED;
807 status_t HWComposer::setPowerMode(int disp, int mode) {
808 LOG_FATAL_IF(disp >= VIRTUAL_DISPLAY_ID_BASE);
811 eventControl(disp, HWC_EVENT_VSYNC, 0);
814 return (status_t)mHwc->setPowerMode(mHwc, disp, mode);
816 return (status_t)mHwc->blank(mHwc, disp,
823 status_t HWComposer::setActiveConfig(int disp, int mode) {
824 LOG_FATAL_IF(disp >= VIRTUAL_DISPLAY_ID_BASE);
825 DisplayData& dd(mDisplayData[disp]);
828 return (status_t)mHwc->setActiveConfig(mHwc, disp, mode);
835 void HWComposer::disconnectDisplay(int disp) {
836 LOG_ALWAYS_FATAL_IF(disp < 0 || disp == HWC_DISPLAY_PRIMARY);
837 DisplayData& dd(mDisplayData[disp]);
904 DisplayData& disp(mDisplayData[id]);
905 disp.outbufHandle = buf->handle;
906 disp.outbufAcquireFence = acquireFence;
1113 DisplayData& disp(mDisplayData[id]);
1114 if (!mHwc || !disp.list || index > disp.list->numHwLayers) {
1117 if (disp.visibleRegions.size() < disp.list->numHwLayers) {
1118 disp.visibleRegions.resize(disp.list->numHwLayers);
1120 if (disp.surfaceDamageRegions.size() < disp.list->numHwLayers) {
1121 disp.surfaceDamageRegions.resize(disp.list->numHwLayers);
1123 return LayerListIterator(new HWCLayerVersion1(mHwc, disp.list->hwLayers,
1124 &disp.visibleRegions, &disp.surfaceDamageRegions), index);
1140 const DisplayData& disp(mDisplayData[id]);
1141 if (mHwc && disp.list) {
1142 numLayers = disp.list->numHwLayers;
1182 const DisplayData& disp(mDisplayData[i]);
1183 if (!disp.connected)
1191 for (size_t c = 0; c < disp.configs.size(); ++c) {
1192 const DisplayConfig& config(disp.configs[c]);
1195 c == disp.currentConfig ? "* " : "", c,
1200 if (disp.list) {
1203 disp.list->numHwLayers, disp.list->flags);
1209 for (size_t i=0 ; i<disp.list->numHwLayers ; i++) {
1210 const hwc_layer_1_t&l = disp.list->hwLayers[i];
1227 format = disp.format;