Support QXL hotplug_mode_update
ClosedPublic

Authored by apol on Sep 27 2018, 12:33 AM.

Details

Summary

QXL is a driver used mainly in VMs.
This driver, it creates a new preferred mode upon resize instead of just
offering the one and resizing it. This makes Plasma not resize when it should
as described on the bug report below.
This patch allows kscreen to know if the driver considers we should be
following the preferred mode.

https://bugzilla.redhat.com/show_bug.cgi?id=1290586

Test Plan

Tested extensively on one of these vms and outside.

Diff Detail

Repository
R110 KScreen Library
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
apol created this revision.Sep 27 2018, 12:33 AM
Restricted Application added a project: Plasma. · View Herald TranscriptSep 27 2018, 12:33 AM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
davidedmundson requested changes to this revision.Sep 28 2018, 10:02 AM
davidedmundson added a subscriber: davidedmundson.

Looks mostly good.

At some point we'll need to add this property to the wayland output protocols, but that can be later.

backends/xrandr/xrandroutput.cpp
179

This code path potentially updates this var twice.
Would it be better to do this inside the

} else if (conn == XCB_RANDR_CONNECTION_CONNECTED) {

212

why are we querying if the property exists rather than if the property is 1?

This revision now requires changes to proceed.Sep 28 2018, 10:02 AM
apol updated this revision to Diff 42500.Sep 28 2018, 4:29 PM

Make sure we don't check the property twice on the same path

apol marked an inline comment as done.Sep 28 2018, 4:29 PM
apol added inline comments.
backends/xrandr/xrandroutput.cpp
212

Because it's poorly specified. In fact, it's always 0 as far as I can tell.

davidedmundson accepted this revision.Oct 1 2018, 5:10 PM
This revision is now accepted and ready to land.Oct 1 2018, 5:10 PM
This revision was automatically updated to reflect the committed changes.