godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.79k stars 21.13k forks source link

Tiny mouse pointer under wayland #96459

Open DavidGasku opened 2 months ago

DavidGasku commented 2 months ago

Tested versions

Godot v4.3.stable

System information

Godot v4.3.stable - Manjaro Linux #1 SMP PREEMPT_DYNAMIC Mon Aug 19 09:51:26 UTC 2024 - Wayland - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3060 (nvidia; 550.107.02) - 12th Gen Intel(R) Core(TM) i5-12400F (12 Threads)

Issue description

Screencast_20240902_080033.webm

As seen in the video, the mouse is tiny compared with the OS one (the size changes when hovering the system titlebar)

Steps to reproduce

Just start godot with wayland support (--display-driver wayland) under linux

Minimal reproduction project (MRP)

Not applicable

hunterkepley commented 2 months ago

Could you set the env var XCURSOR_SIZE to 35 and see if it makes it larger, or if there is an error. It seems there's a default size of 24 if there's an error, but I want to see if this can be resolved (as a workaround) by adding XCURSOR_SIZE to your preferred size in your bash.rc. If not, might be good to update the default size from 24 to something larger.

hunterkepley commented 2 months ago

Source for this env var: https://github.com/godotengine/godot/blob/61598c5c88d95b96811d386cb20d714c35f4c6d7/platform/linuxbsd/wayland/wayland_thread.cpp#L3750 https://github.com/godotengine/godot/blob/61598c5c88d95b96811d386cb20d714c35f4c6d7/platform/linuxbsd/wayland/wayland_thread.cpp#L3753

DavidGasku commented 2 months ago

Doesn't seem to make any difference, the cursor is always the same size. Terminal shows no errors (just discovered a segmentation fault on exit, but probably was there before and didn't notice it and is unrelated)

I've tested several scaling values (both in godot and in kde) and the cursor size is actually smaller with higher kde fractional values. First image is 150%, second one is 100%.

Screenshot_20240902_124809 Screenshot_20240902_124728

In case is needed, I´m using a single 4K monitor.

hunterkepley commented 2 months ago

im gonna upgrade to the newest fedora so i can test out with wayland today, want to take a crack at it. thanks for trying that out

my guess is it may be due to the 4k monitor, but thats just a guess

hunterkepley commented 2 months ago

@DavidGasku Did some poking around on the internet, this is a common problem with older versions of wayland/specific versions.

https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5481 https://www.reddit.com/r/kde/comments/133dkad/gtk_mouse_scaling_on_wayland/ https://invent.kde.org/plasma/breeze/-/merge_requests/380 https://github.com/kovidgoyal/kitty/issues/2647 https://github.com/swaywm/sway/issues/4610 https://www.reddit.com/r/swaywm/comments/n2ha58/tiny_cursor_on_chromium_using_ozone_platform/

It seems that GNOME has a merged fix (see the top link in this comment)- but it is platform dependent as well as Qt/GTK dependent.

Not sure if this is something related to Godot, to be honest, and fixing it would be changing your wayland settings through godot, which I believe would be the wrong solution

Could you provide more info about your setup/system? I see you are on manjaro, would this happen to be using Breeze, Gnome, or another DE?

tl;dr I think this issue is not a godot problem, but a wayland problem

hunterkepley commented 2 months ago

Cannot reproduce with Fedora 39 - KDE using Wayland (all up-to-date besides fedora version)

DavidGasku commented 1 month ago

I'm using KDE. Anyway, feel free to close it if you can't reproduce it. I'll wait on X11 until multiwindow is implemented.