Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unusable with two screens in gnome 43 #25

Closed
Seikm opened this issue Nov 22, 2022 · 10 comments
Closed

Unusable with two screens in gnome 43 #25

Seikm opened this issue Nov 22, 2022 · 10 comments
Labels
bug Something isn't working gnome 43 GNOME Shell 43

Comments

@Seikm
Copy link
Contributor

Seikm commented Nov 22, 2022

Various rendering and performance bugs in gnome 43 using two screens.

I have clapper installed by the opensuse package manager, but it seems that the extension cannot use it.
Second screen totally buggy, wallpaper covers the topbar in the main workspace, and other bugs.

I recorded two videos showing all the bugs, the first video has other extensions enabled and the second video is without extensions and shows the logs.

video with extensions (link to download)
video without extensions (link to download)

@delucca
Copy link

delucca commented Nov 22, 2022

Same thing here. Also, if I press Super+D it breaks the wallpaper on the secondary screen. The same happens if I try to switch to a secondary workspace (the wallpaper breaks)

@Rafostar
Copy link
Contributor

I have clapper installed by the opensuse package manager, but it seems that the extension cannot use it.

Extension uses GstPlay library (including its GI bindings) together with custom sinks. Check if you have installed both:

gst-inspect-1.0 clappersink
gjs -c "let GstPlay = imports.gi.GstPlay;"

If you are correctly using a custom sink, test-renderer.sh window title will have suffix with the sink name, e.g: - clappersink.

@Seikm
Copy link
Contributor Author

Seikm commented Nov 24, 2022

@Rafostar
The introspection bindings were missing, I downloaded them and now test-renderer.sh runs with clappersink.
But when I run gst-inspect-1.0 clappersink in the terminal, the response is still No such element or plugin 'clappersink'. I tried downloading the 32bit versions of gstplay and gstplayer, but the response remains the same.
Performance improved from 15% CPU to 7%. So I don't know if this is an issue that should be ignored, or maybe the performance could be further improved?

@Rafostar
Copy link
Contributor

@Seikm

in the terminal, the response is still No such element or plugin 'clappersink'

Either packaging problem or some broken plugin cache. Definitely not hanabi fault. If it works from inside the code, I guess you can ignore it. Regarding performance, I do not want to start discussing about this in the same issue without the extension dev permission. For Clapper related questions feel free to ask on Clapper matrix channel through. Let's not change this issue original topic.

@delucca
Copy link

delucca commented Nov 24, 2022

@Rafostar one question, what about what I reported? I can record a video if you want, but basically everytime I press Super+D (or basically any key if the desktop is visible) the wallpaper crashes (it simply duplicates in a super weird alignment

The same happens if I try switching workspaces

@Rafostar
Copy link
Contributor

@delucca
I only maintain/help with Clapper. You will have to wait for this extension developer response for anything extension related. Sorry.

@jeffshee
Copy link
Owner

Hi @Seikm @delucca, thanks for reporting! Also @Rafostar thanks for helping~

@delucca May I know what's the action bind to the Super+D key combination? (I don't have this key combination enabled by default on Fedora, so I have no idea what it does.)

@Seikm Ok... It seems that I also have the same issue with dual screen setup in GNOME 42.4 as well. It could be a regression of previous commit. Let me check what caused this.

For the GNOME 43 support, please give me more times! 😂

As for performance, if hanabi uses clappersink for the playback, it's already doing its best! =)
There could be a minor CPU overhead on extension side (not on clapper side), since hanabi creates a new renderer's window preview and pastes it everywhere the system wallpaper appears. There may be a better and more efficient way to do it, but I'm out of ideas and know-how right now.

(Off topic) Below is some implementation details in case anyone is interested. Please open another issue for suggestions on this if any.

this._wallpaper = new Clutter.Actor({
layout_manager: new Shell.WindowPreviewLayout(),
// The point around which the scaling and rotation transformations occur.
pivot_point: new Graphene.Point({ x: 0.5, y: 0.5 }),
});
let renderer = this._getRenderer();
if (renderer) {
this._wallpaper.layout_manager.add_window(renderer);
}

As you can see I'm abusing the Shell.WindowPreviewLayout() here for getting a clutter actor (in this case the renderer's window preview). Originally I wished I could use something like ClutterGst, that can play a video into a clutter actor, but that stuff is deprecated and doesn't work with GNOME Shell anymore... 😩

@jeffshee jeffshee added bug Something isn't working gnome 43 GNOME Shell 43 labels Nov 25, 2022
@Rafostar
Copy link
Contributor

Rafostar commented Nov 25, 2022

@jeffshee

As for performance, if hanabi uses clappersink for the playback, it's already doing its best! =)

That might be true in case of Nvidia, but for Intel/AMD as I mentioned in #19 (comment), either you or users would have to enable newer experimental VA element under Wayland session to get current "best" =)

@delucca
Copy link

delucca commented Nov 25, 2022

Hi @Seikm @delucca, thanks for reporting! Also @Rafostar thanks for helping~

@delucca May I know what's the action bind to the Super+D key combination? (I don't have this key combination enabled by default on Fedora, so I have no idea what it does.)

@Seikm Ok... It seems that I also have the same issue with dual screen setup in GNOME 42.4 as well. It could be a regression of previous commit. Let me check what caused this.

For the GNOME 43 support, please give me more times! joy

As for performance, if hanabi uses clappersink for the playback, it's already doing its best! =) There could be a minor CPU overhead on extension side (not on clapper side), since hanabi creates a new renderer's window preview and pastes it everywhere the system wallpaper appears. There may be a better and more efficient way to do it, but I'm out of ideas and know-how right now.

(Off topic) Below is some implementation details in case anyone is interested. Please open another issue for suggestions on this if any.

this._wallpaper = new Clutter.Actor({
layout_manager: new Shell.WindowPreviewLayout(),
// The point around which the scaling and rotation transformations occur.
pivot_point: new Graphene.Point({ x: 0.5, y: 0.5 }),
});
let renderer = this._getRenderer();
if (renderer) {
this._wallpaper.layout_manager.add_window(renderer);
}

As you can see I'm abusing the Shell.WindowPreviewLayout() here for getting a clutter actor (in this case the renderer's window preview). Originally I wished I could use something like ClutterGst, that can play a video into a clutter actor, but that stuff is deprecated and doesn't work with GNOME Shell anymore... weary

about the Super+D, it is the combination to show the desktop. But, TBH, any keystroke I press glitches the wallpaper for some reason.

I can see the glitch after pressing Super+D probably because the wallpaper appears

jeffshee added a commit that referenced this issue Dec 24, 2022
jeffshee added a commit that referenced this issue Dec 24, 2022
@jeffshee
Copy link
Owner

It is fixed in the latest commit! Sorry for the late and Merry Christmas~🎄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working gnome 43 GNOME Shell 43
Projects
None yet
Development

No branches or pull requests

4 participants