https://bugs.kde.org/show_bug.cgi?id=356864

--- Comment #21 from Martin Gräßlin <mgraess...@kde.org> ---
Documenting some debug output from before and after resizing the VM window:
/usr/lib/x86_64-linux-gnu/libexec/kf5/kscreen_backend_launcher 
kscreen.xrandr: Connected output 67 to CRTC 63
!!!! Mode:  725 / QSize(1640, 871)
!!!! Mode:  72 / QSize(1920, 1200)
!!!! Mode:  73 / QSize(1920, 1080)
!!!! Mode:  74 / QSize(1600, 1200)
!!!! Mode:  75 / QSize(1680, 1050)
!!!! Mode:  76 / QSize(1400, 1050)
!!!! Mode:  77 / QSize(1280, 1024)
!!!! Mode:  78 / QSize(1440, 900)
!!!! Mode:  79 / QSize(1280, 960)
!!!! Mode:  80 / QSize(1280, 854)
!!!! Mode:  81 / QSize(1280, 800)
!!!! Mode:  82 / QSize(1280, 720)
!!!! Mode:  83 / QSize(1152, 768)
!!!! Mode:  71 / QSize(1024, 768)
!!!! Mode:  84 / QSize(800, 600)
!!!! Mode:  85 / QSize(848, 480)
!!!! Mode:  86 / QSize(720, 480)
!!!! Mode:  87 / QSize(640, 480)
!!!!!! Randr event listener inited
kscreen.xcb.helper: Detected XRandR 1.4
kscreen.xcb.helper: Event Base:  89
kscreen.xcb.helper: Event Error:  147
kscreen.xrandr: XRandR::setConfig
kscreen.xrandr: Requested screen size is QSize(1640, 871)
kscreen.xrandr: Needed CRTCs:  1
kscreen.xrandr: Actions to perform:
kscreen.xrandr:         Primary Output: false
kscreen.xrandr:         Change Screen Size: true
kscreen.xrandr:                 Old: QSize(1744, 953)
kscreen.xrandr:                 Intermediate: QSize(1744, 953)
kscreen.xrandr:                 New: QSize(1640, 871)
kscreen.xrandr:         Disable outputs: false
kscreen.xrandr:         Change outputs: true
kscreen.xrandr:                  (67)
kscreen.xrandr:         Enable outputs: false
kscreen.xrandr: RRSetCrtcConfig (change output)
kscreen.xrandr:         Output: 67 ( "Virtual-0" )
kscreen.xrandr:         CRTC: 63
kscreen.xrandr:         Pos: QPoint(0,0)
kscreen.xrandr:         Mode: "725" ( QSize(1640, 871) )
kscreen.xrandr:         Rotation: 1
kscreen.xrandr:         Result:  0
kscreen.xrandr: XRandROutput 67 update
kscreen.xrandr:         m_connected: 0
kscreen.xrandr:         m_crtc XRandRCrtc(0x813170)
kscreen.xrandr:         CRTC: 63
kscreen.xrandr:         MODE: 725
kscreen.xrandr:         Connection: 0
kscreen.xrandr:         Primary: true
!!!! Mode:  725 / QSize(1640, 871)
!!!! Mode:  72 / QSize(1920, 1200)
!!!! Mode:  73 / QSize(1920, 1080)
!!!! Mode:  74 / QSize(1600, 1200)
!!!! Mode:  75 / QSize(1680, 1050)
!!!! Mode:  76 / QSize(1400, 1050)
!!!! Mode:  77 / QSize(1280, 1024)
!!!! Mode:  78 / QSize(1440, 900)
!!!! Mode:  79 / QSize(1280, 960)
!!!! Mode:  80 / QSize(1280, 854)
!!!! Mode:  81 / QSize(1280, 800)
!!!! Mode:  82 / QSize(1280, 720)
!!!! Mode:  83 / QSize(1152, 768)
!!!! Mode:  71 / QSize(1024, 768)
!!!! Mode:  84 / QSize(800, 600)
!!!! Mode:  85 / QSize(848, 480)
!!!! Mode:  86 / QSize(720, 480)
!!!! Mode:  87 / QSize(640, 480)
kscreen.xrandr: RRSetScreenSize
kscreen.xrandr:         DPI: 98.3992
kscreen.xrandr:         Size: QSize(1640, 871)
kscreen.xrandr:         SizeMM: QSize(423, 224)
kscreen.xrandr: XRandR::setConfig done!
kscreen.xcb.helper: RRNotify_CrtcChange
kscreen.xcb.helper:     CRTC:  63
kscreen.xcb.helper:     Mode:  725
kscreen.xcb.helper:     Rotation:  "Rotate_0"
kscreen.xcb.helper:     Geometry:  0 0 1640 871
kscreen.xcb.helper: RRScreenChangeNotify
kscreen.xcb.helper:     Window: 16777220
kscreen.xcb.helper:     Root: 630
kscreen.xcb.helper:     Rotation:  "Rotate_0"
kscreen.xcb.helper:     Size ID: 65535
kscreen.xcb.helper:     Size:  1744 953
kscreen.xcb.helper:     SizeMM:  451 246
kscreen.xcb.helper: RRNotify_CrtcChange
kscreen.xcb.helper:     CRTC:  63
kscreen.xcb.helper:     Mode:  725
kscreen.xcb.helper:     Rotation:  "Rotate_0"
kscreen.xcb.helper:     Geometry:  0 0 1640 871
kscreen.xcb.helper: RRScreenChangeNotify
kscreen.xcb.helper:     Window: 16777220
kscreen.xcb.helper:     Root: 630
kscreen.xcb.helper:     Rotation:  "Rotate_0"
kscreen.xcb.helper:     Size ID: 0
kscreen.xcb.helper:     Size:  1640 871
kscreen.xcb.helper:     SizeMM:  423 224
kscreen.xrandr: Emitting configChanged()




kscreen.xcb.helper: RRotify_OutputChange
kscreen.xcb.helper:     Output:  67
kscreen.xcb.helper:     CRTC:  63
kscreen.xcb.helper:     Mode:  725
kscreen.xcb.helper:     Rotation:  "Rotate_0"
kscreen.xcb.helper:     Connection:  "Connected"
kscreen.xcb.helper:     Subpixel Order:  0
kscreen.xcb.helper: RRScreenChangeNotify
kscreen.xcb.helper:     Window: 16777220
kscreen.xcb.helper:     Root: 630
kscreen.xcb.helper:     Rotation:  "Rotate_0"
kscreen.xcb.helper:     Size ID: 65535
kscreen.xcb.helper:     Size:  1640 871
kscreen.xcb.helper:     SizeMM:  423 224
kscreen.xcb.helper: RRotify_OutputChange
kscreen.xcb.helper:     Output:  67
kscreen.xcb.helper:     CRTC:  63
kscreen.xcb.helper:     Mode:  725
kscreen.xcb.helper:     Rotation:  "Rotate_0"
kscreen.xcb.helper:     Connection:  "Connected"
kscreen.xcb.helper:     Subpixel Order:  0
!!!!! Have already that output
!!!!! in false branch
kscreen.xrandr: XRandROutput 67 update
kscreen.xrandr:         m_connected: 0
kscreen.xrandr:         m_crtc XRandRCrtc(0x813170)
kscreen.xrandr:         CRTC: 63
kscreen.xrandr:         MODE: 725
kscreen.xrandr:         Connection: 0
kscreen.xrandr:         Primary: true
!!!! Mode:  732 / QSize(1680, 907)
!!!! Mode:  72 / QSize(1920, 1200)
!!!! Mode:  73 / QSize(1920, 1080)
!!!! Mode:  74 / QSize(1600, 1200)
!!!! Mode:  75 / QSize(1680, 1050)
!!!! Mode:  76 / QSize(1400, 1050)
!!!! Mode:  77 / QSize(1280, 1024)
!!!! Mode:  78 / QSize(1440, 900)
!!!! Mode:  79 / QSize(1280, 960)
!!!! Mode:  80 / QSize(1280, 854)
!!!! Mode:  81 / QSize(1280, 800)
!!!! Mode:  82 / QSize(1280, 720)
!!!! Mode:  83 / QSize(1152, 768)
!!!! Mode:  71 / QSize(1024, 768)
!!!! Mode:  84 / QSize(800, 600)
!!!! Mode:  85 / QSize(848, 480)
!!!! Mode:  86 / QSize(720, 480)
!!!! Mode:  87 / QSize(640, 480)
kscreen.xrandr: Output 67 : connected = true , enabled = true
!!!!! Have already that output
!!!!! in false branch
kscreen.xrandr: XRandROutput 67 update
kscreen.xrandr:         m_connected: 0
kscreen.xrandr:         m_crtc XRandRCrtc(0x813170)
kscreen.xrandr:         CRTC: 63
kscreen.xrandr:         MODE: 725
kscreen.xrandr:         Connection: 0
kscreen.xrandr:         Primary: true
!!!! Mode:  732 / QSize(1680, 907)
!!!! Mode:  72 / QSize(1920, 1200)
!!!! Mode:  73 / QSize(1920, 1080)
!!!! Mode:  74 / QSize(1600, 1200)
!!!! Mode:  75 / QSize(1680, 1050)
!!!! Mode:  76 / QSize(1400, 1050)
!!!! Mode:  77 / QSize(1280, 1024)
!!!! Mode:  78 / QSize(1440, 900)
!!!! Mode:  79 / QSize(1280, 960)
!!!! Mode:  80 / QSize(1280, 854)
!!!! Mode:  81 / QSize(1280, 800)
!!!! Mode:  82 / QSize(1280, 720)
!!!! Mode:  83 / QSize(1152, 768)
!!!! Mode:  71 / QSize(1024, 768)
!!!! Mode:  84 / QSize(800, 600)
!!!! Mode:  85 / QSize(848, 480)
!!!! Mode:  86 / QSize(720, 480)
!!!! Mode:  87 / QSize(640, 480)
kscreen.xrandr: Output 67 : connected = true , enabled = true
kscreen.xrandr: Emitting configChanged()

Explanation: when started the mode 725 is used. That one gets removed when the
window resizes. Instead we get a new mode 732. KScreen tries to apply it's
current config which fails:

kscreen.kded: Change detected
kscreen.kded: Saving current config to file
kscreen: canBeApplied: The output: 67 has no mode: "725"

In that case it might be an idea to go to the preferred mode (732).

Overall it's rather tricky to detect that a mode got removed and one got added.
We just don't have any knowledge about this. There is no event for that. So all
rather meh.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to