Changeset View
Changeset View
Standalone View
Standalone View
plugins/platforms/drm/drm_output.cpp
Show First 20 Lines • Show All 891 Lines • ▼ Show 20 Line(s) | 880 | { | |||
---|---|---|---|---|---|
892 | m_nextPlanesFlipList << m_primaryPlane; | 892 | m_nextPlanesFlipList << m_primaryPlane; | ||
893 | 893 | | |||
894 | if (!doAtomicCommit(AtomicCommitMode::Test)) { | 894 | if (!doAtomicCommit(AtomicCommitMode::Test)) { | ||
895 | //TODO: When we use planes for layered rendering, fallback to renderer instead. Also for direct scanout? | 895 | //TODO: When we use planes for layered rendering, fallback to renderer instead. Also for direct scanout? | ||
896 | //TODO: Probably should undo setNext and reset the flip list | 896 | //TODO: Probably should undo setNext and reset the flip list | ||
897 | qCDebug(KWIN_DRM) << "Atomic test commit failed. Aborting present."; | 897 | qCDebug(KWIN_DRM) << "Atomic test commit failed. Aborting present."; | ||
898 | // go back to previous state | 898 | // go back to previous state | ||
899 | if (m_lastWorkingState.valid) { | 899 | if (m_lastWorkingState.valid) { | ||
900 | | ||||
901 | if (m_primaryPlane && qstrcmp(m_mode.name, m_lastWorkingState.mode.name) == 0 && m_lastWorkingState.globalPos == globalPos() && m_lastWorkingState.planeTransformations != m_primaryPlane->transformation()) { | ||||
902 | //We are trying to figure out if a transformation wasn't supported after all | ||||
903 | //This can happen if the transformation si generally supported but for some combination of states it won't work. | ||||
904 | // For example Portrait rotation on i915: Y/Yf tiling required for 90/270! | ||||
905 | m_primaryPlane->transformationsNotSupported(m_primaryPlane->transformation()); | ||||
906 | qCDebug(KWIN_DRM) << "Transformation not supported for" << m_primaryPlane->id() << m_lastWorkingState.planeTransformations << m_primaryPlane->supportedTransformations(); | ||||
907 | } | ||||
908 | | ||||
900 | m_mode = m_lastWorkingState.mode; | 909 | m_mode = m_lastWorkingState.mode; | ||
901 | setOrientation(m_lastWorkingState.orientation); | 910 | setOrientation(m_lastWorkingState.orientation); | ||
902 | setGlobalPos(m_lastWorkingState.globalPos); | 911 | setGlobalPos(m_lastWorkingState.globalPos); | ||
903 | if (m_primaryPlane) { | 912 | if (m_primaryPlane) { | ||
904 | m_primaryPlane->setTransformation(m_lastWorkingState.planeTransformations); | 913 | m_primaryPlane->setTransformation(m_lastWorkingState.planeTransformations); | ||
905 | } | 914 | } | ||
906 | m_modesetRequested = true; | 915 | m_modesetRequested = true; | ||
907 | // the cursor might need to get rotated | 916 | // the cursor might need to get rotated | ||
▲ Show 20 Lines • Show All 261 Lines • Show Last 20 Lines |