Closed tildearrow closed 4 years ago
minor build issue on arch :
[ 17%] Building CXX object CMakeFiles/kwin.dir/decorations/decorationbridge.cpp.o
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/decorations/decorationbridge.cpp: In member function ‘virtual std::unique_ptr<KDecoration2::DecoratedClientPrivate> KWin::Decoration::DecorationBridge::createClient(KDecoration2::DecoratedClient*, KDecoration2::Decoration*)’:
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/decorations/decorationbridge.cpp:255:143: error: invalid new-expression of abstract class type ‘KWin::Decoration::DecoratedClientImpl’
255 | return std::unique_ptr<DecoratedClientImpl>(new DecoratedClientImpl(static_cast<AbstractClient*>(decoration->parent()), client, decoration));
| ^
In file included from /home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/decorations/decorationbridge.cpp:21:
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/decorations/decoratedclient.h:40:7: note: because the following virtual functions are pure within ‘KWin::Decoration::DecoratedClientImpl’:
40 | class DecoratedClientImpl : public QObject, public KDecoration2::ApplicationMenuEnabledDecoratedClientPrivate
| ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/KDecoration2/KDecoration2/Private/DecoratedClientPrivate:1,
from /home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/decorations/decoratedclient.h:24,
from /home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/decorations/decorationbridge.cpp:21:
/usr/include/KDecoration2/kdecoration2/private/decoratedclientprivate.h:76:19: note: ‘virtual QSize KDecoration2::DecoratedClientPrivate::size() const’
76 | virtual QSize size() const = 0;
| ^~~~
make[2]: *** [CMakeFiles/kwin.dir/build.make:422: CMakeFiles/kwin.dir/decorations/decorationbridge.cpp.o] Error 1
make[2]: Leaving directory '/home/ahjolinna/Downloads/kwin-lowlatency/src/build'
make[1]: *** [CMakeFiles/Makefile2:4062: CMakeFiles/kwin.dir/all] Error 2
make[1]: Leaving directory '/home/ahjolinna/Downloads/kwin-lowlatency/src/build'
make: *** [Makefile:130: all] Error 2
(at first I tried to make a OBS build, but as plasma5.18 is in testing repo that has to wait )
@ahjolinna Please upgrade KDecoration to 5.18.0 before building. kwin-lowlatency needs to be tested on a full-Plasma-5.18 environment.
Also why not uncomment the testing repo?
I just built it by modifying the AUR PKGBUILD to point to the Plasma/5.18 branch instead of the Plasma/5.17 branch and it built fine.
As far as I can tell it works properly. This is the only bug I can spot.
@Kodehawa Yup, that was expected. Will untag 5.18 and fix later.
As far as I can tell it works properly. This is the only bug I can spot.
Does it make a noticeable difference compared to 5.18's kwin? Roman did a darn good job optimizing Kwin, so I'm curious if there's much left to improve?
@Izaic KWin 5.18 still uses a timer (even though it is kind of more stable). I've tested it before and I still get micro-stutter.
KWin framerate is still broken on mixed 144/60Hz displays while in kwin-lowlatency it works properly somehow.
Also, haven't had any crashes and it seems to work properly
@ahjolinna Please upgrade KDecoration to 5.18.0 before building. kwin-lowlatency needs to be tested on a full-Plasma-5.18 environment.
Also why not uncomment the testing repo?
I tried 2nd time after a reboot (and I have testing enabled for a while), I it wont build for at least:
make[2]: Entering directory '/home/ahjolinna/Downloads/kwin-lowlatency/src/build'
[ 40%] Building CXX object kcmkwin/kwincompositing/CMakeFiles/kwincompositing.dir/kwincompositing_autogen/mocs_compilation.cpp.o
[ 40%] Building CXX object kcmkwin/kwincompositing/CMakeFiles/kwincompositing.dir/main.cpp.o
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/kcmkwin/kwincompositing/main.cpp: In member function ‘void KWinCompositingSettings::init()’:
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/kcmkwin/kwincompositing/main.cpp:90:12: error: ‘class Ui_CompositingForm’ has no member named ‘animationSpeed’
90 | m_form.animationSpeed->setMaximum(s_animationMultipliers.size() - 1);
| ^~~~~~~~~~~~~~
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/kcmkwin/kwincompositing/main.cpp: In lambda function:
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/kcmkwin/kwincompositing/main.cpp:94:16: error: ‘class Ui_CompositingForm’ has no member named ‘animationSpeed’
94 | m_form.animationSpeed->setValue(index);
| ^~~~~~~~~~~~~~
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/kcmkwin/kwincompositing/main.cpp: In member function ‘void KWinCompositingSettings::init()’:
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/kcmkwin/kwincompositing/main.cpp:97:72: error: ‘class Ui_CompositingForm’ has no member named ‘animationSpeed’
97 | connect(m_compositing, &Compositing::animationSpeedChanged, m_form.animationSpeed, setSpeed);
| ^~~~~~~~~~~~~~
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/kcmkwin/kwincompositing/main.cpp:98:20: error: ‘class Ui_CompositingForm’ has no member named ‘animationSpeed’
98 | connect(m_form.animationSpeed, &QSlider::valueChanged, m_compositing, [this](int index) {
| ^~~~~~~~~~~~~~
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/kcmkwin/kwincompositing/main.cpp:103:16: error: ‘class Ui_CompositingForm’ has no member named ‘animationSpeedLabel’
103 | m_form.animationSpeedLabel->hide();
| ^~~~~~~~~~~~~~~~~~~
/home/ahjolinna/Downloads/kwin-lowlatency/src/kwin-lowlatency/kcmkwin/kwincompositing/main.cpp:104:16: error: ‘class Ui_CompositingForm’ has no member named ‘animationSpeedControls’
104 | m_form.animationSpeedControls->hide();
| ^~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [kcmkwin/kwincompositing/CMakeFiles/kwincompositing.dir/build.make:91: kcmkwin/kwincompositing/CMakeFiles/kwincompositing.dir/main.cpp.o] Error 1
make[2]: Leaving directory '/home/ahjolinna/Downloads/kwin-lowlatency/src/build'
make[1]: *** [CMakeFiles/Makefile2:5691: kcmkwin/kwincompositing/CMakeFiles/kwincompositing.dir/all] Error 2
make[1]: Leaving directory '/home/ahjolinna/Downloads/kwin-lowlatency/src/build'
make: *** [Makefile:130: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
(also I think OBS has only stable repo option)
anyway have you tried kde's clazy project to check code
PS. I also get this:
git checkout v5.18.0
error: pathspec 'v5.18.0' did not match any file(s) known to git
...or maybe I'm just too tired and my brain doesn't work currently
Dogfooding on my own PPA on Ubuntu 20.04. All looks good so far, fwiw (except the settings UI glitch mentioned above). Thanks!!
@ahjolinna Oops, sorry, forgot to remove the animation speed slider code from the Compositing section.
Thank you for the report o-o
KWin-lowlatency 5.18.0 released. I have done some testing during the night and it does work well.
Thank you all for providing feedback!
v5.18.0 has been tagged just now. However most of the porting has been finished during the midnight, which means I did not get any time to test if it runs (and does not crash).
It is very likely that kwin-lowlatency 5.18.0 is going to crash and not work, but there is a small chance it will work properly.
There has been some refactoring around KWin which resulted in having to modify some of the code. My biggest concern is the removal of the geometry() function in Toplevel, and I wasn't sure what to use as a replacement. Therefore I used frameGeometry() but I can only hope this yields the same effect...
I will finish testing at night when I come back home. Please report if kwin-lowlatency 5.18.0 works for you in the meanwhile.
(Note: Make sure you have completely upgraded to Plasma 5.18 before testing)