Skip to content

Build failure on latest KWin/Plasma: Missing wayland/blur.h and API signature mismatches (v2.4.1) #100

Description

@omartayel

Description:

Hello! I am trying to build and install version 2.4.1 of kwin-effects-better-blur-dx via the AUR on CachyOS, but the compilation fails. It appears there are incompatibilities with the current KWin C++ API development headers in the latest Plasma update.

Specifically, the compiler cannot find wayland/blur.h, and there are multiple errors regarding overridden functions (prePaintScreen, prePaintWindow) no longer matching the parent KWin::BlurEffect class signatures. There is also an issue with KWin::scaledRect missing.

Environment:

OS: CachyOS (Arch Linux based)

KDE Plasma Version: 6.7.0

Package Version: 2.4.1 (Built via paru)

Steps to Reproduce:

  1. Attempt to build the package on a fully updated Arch/CachyOS system running the latest KDE Plasma.
  2. Run paru -S kwin-effects-better-blur-dx.
  3. The build process terminates during compilation.

Error Logs:

/home/omar/.cache/paru/clone/kwin-effects-better-blur-dx/src/kwin-effects-better-blur-dx-2.4.1/src/blur.cpp:44:10: fatal error: wayland/blur.h: No such file or directory
   44 | #include <wayland/blur.h>
      |          ^~~~~~~~~~~~~~~~
compilation terminated.

...

In file included from /home/omar/.cache/paru/clone/kwin-effects-better-blur-dx/src/kwin-effects-better-blur-dx-2.4.1/src/rounded_corners_pass.cpp:3:
/home/omar/.cache/paru/clone/kwin-effects-better-blur-dx/src/kwin-effects-better-blur-dx-2.4.1/src/blur.h:99:10: error: 'void KWin::BlurEffect::prePaintScreen(KWin::ScreenPrePaintData&, std::chrono::milliseconds)' marked 'override', but does not override
   99 |     void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime) override;
      |          ^~~~~~~~~~~~~~

...

/home/omar/.cache/paru/clone/kwin-effects-better-blur-dx/src/kwin-effects-better-blur-dx-2.4.1/src/blur.h:103:10: error: 'void KWin::BlurEffect::prePaintWindow(KWin::RenderView*, KWin::EffectWindow*, KWin::WindowPrePaintData&, std::chrono::milliseconds)' marked 'override', but does not override
  103 |     void prePaintWindow(RenderView *view, EffectWindow *w, WindowPrePaintData &data, std::chrono::milliseconds presentTime) override;
      |          ^~~~~~~~~~~~~~

...

/home/omar/.cache/paru/clone/kwin-effects-better-blur-dx/src/kwin-effects-better-blur-dx-2.4.1/src/rounded_corners_pass.cpp: In member function 'void BBDX::RoundedCornersPass::apply(const KWin::BorderRadius&, const KWin::RenderViewport&, const QRect&, const KWin::BlurRenderData&, const KWin::EffectWindow*, const KWin::GLVertexBuffer*, const BBDX::BlurCache*) const':
/home/omar/.cache/paru/clone/kwin-effects-better-blur-dx/src/kwin-effects-better-blur-dx-2.4.1/src/rounded_corners_pass.cpp:63:63: error: 'scaledRect' is not a member of 'KWin'
   63 |         const QRectF nativeBox = KWin::snapToPixelGridF(KWin::scaledRect(transformedRect, viewport.scale()))
      |                                                               ^~~~~~~~~~

Expected Behavior:

The C++ source compiles successfully against the current KWin development headers.

Please let me know if there are any additional logs are needed. Thank you for your work on this project!

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions