hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
20.94k stars 879 forks source link

Screen resolution suddenly broken #3925

Closed rbroggi closed 10 months ago

rbroggi commented 10 months ago

Hyprland Version

Hyprland, built from branch at commit 1b48642fd15c433c53876f1b933dcd46265caf8f dirty (). Tag: v0.30.0 flags: (if any)

Bug or Regression?

Regression

Description

After a system upgrade the resolution of my display suddenly degraded a lot. Fonts used to be much crispier before it, now it's extremely annoying. I suspect that this is not necessarily a hyprland issue but I lack the expertise to debug this. I would be very glad if someone could help me debug this issue. Here below you can see the packages that I updated (suspect linux-firmware could be the bad actor):

[2023-11-23T18:35:21+0100] [ALPM] upgraded iana-etc (20231018-1 -> 20231117-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded aom (3.7.0-1 -> 3.7.1-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded readline (8.2.001-2 -> 8.2.007-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded bash (5.2.015-5 -> 5.2.021-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded libp11-kit (0.25.2-1 -> 0.25.3-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded libgcrypt (1.10.2-1 -> 1.10.3-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded p11-kit (0.25.2-1 -> 0.25.3-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded ca-certificates-mozilla (3.94-1 -> 3.95-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded gnutls (3.8.1-2 -> 3.8.2-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded libass (0.17.1-1 -> 0.17.1-2)
[2023-11-23T18:35:21+0100] [ALPM] upgraded libdrm (2.4.117-1 -> 2.4.118-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded libxml2 (2.11.5-1 -> 2.12.0-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded iptables (1:1.8.9-1 -> 1:1.8.10-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded libwireplumber (0.4.15-1 -> 0.4.16-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded wireplumber (0.4.15-1 -> 0.4.16-1)
[2023-11-23T18:35:21+0100] [ALPM] upgraded ffmpeg (2:6.0-13 -> 2:6.1-1)
[2023-11-23T18:35:22+0100] [ALPM] upgraded gettext (0.22.3-1 -> 0.22.4-1)
[2023-11-23T18:35:22+0100] [ALPM] upgraded git (2.42.1-1 -> 2.43.0-1)
[2023-11-23T18:35:22+0100] [ALPM] upgraded libde265 (1.0.12-1 -> 1.0.14-1)
[2023-11-23T18:35:22+0100] [ALPM] upgraded libgusb (0.4.7-1 -> 0.4.8-1)
[2023-11-23T18:35:22+0100] [ALPM] upgraded libheif (1.17.3-1 -> 1.17.5-2)
[2023-11-23T18:35:22+0100] [ALPM] upgraded libksba (1.6.4-1 -> 1.6.5-1)
[2023-11-23T18:35:22+0100] [ALPM] upgraded libxslt (1.1.38-1 -> 1.1.39-1)
[2023-11-23T18:35:22+0100] [ALPM] upgraded linux (6.6.1.arch1-1 -> 6.6.2.arch1-1)
[2023-11-23T18:35:22+0100] [ALPM] upgraded linux-firmware-whence (20231030.2b304bfe-1 -> 20231110.74158e7a-1)
[2023-11-23T18:35:22+0100] [ALPM] upgraded linux-firmware (20231030.2b304bfe-1 -> 20231110.74158e7a-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded linux-headers (6.6.1.arch1-1 -> 6.6.2.arch1-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded python (3.11.5-2 -> 3.11.6-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded meson (1.2.3-1 -> 1.3.0-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded mujs (1.3.3-1 -> 1.3.4-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded nss (3.94-1 -> 3.95-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded python-certifi (2023.07.22-1 -> 2023.11.17-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded python-packaging (23.1-1 -> 23.2-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded python-urllib3 (1.26.15-1 -> 1.26.18-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded xdg-utils (1.1.3+45+g301a1a4-1 -> 1.2.0r17+g21fb316-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded qt6-wayland (6.6.0-1 -> 6.6.0-2)
[2023-11-23T18:35:23+0100] [ALPM] upgraded spotify-launcher (0.5.1-2 -> 0.5.2-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded ttf-jetbrains-mono-nerd (3.0.2-1 -> 3.1.0-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded vim-runtime (9.0.2112-1 -> 9.0.2121-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded vim (9.0.2112-1 -> 9.0.2121-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded xdg-desktop-portal (1.18.1-1 -> 1.18.2-1)
[2023-11-23T18:35:23+0100] [ALPM] upgraded xdg-desktop-portal-hyprland (1.2.4-1 -> 1.2.5-1)
[2023-11-23T22:37:21+0100] [ALPM] upgraded jetbrains-toolbox (2.1.0.18144-1 -> 2.1.1.18388-1)
[2023-11-23T22:37:21+0100] [ALPM] upgraded nwg-look-bin (0.2.4-1 -> 0.2.5-1)

How to reproduce

arch

yay -Suy

system details:

❯ hyprctl monitors
Monitor DP-1 (ID 1):
        3440x1440@59.97300 at 0x0
        description: Dell Inc. DELL C3422WE 3G6X4P3 (DP-1)
        make: Dell Inc.
        model: DELL C3422WE
        serial: 3G6X4P3
        active workspace: 4 (4)
        special workspace: 0 ()
        reserved: 0 0 0 27
        scale: 1.00
        transform: 0
        focused: yes
        dpmsStatus: 1
        vrr: 0

Monitor eDP-1 (ID 0):
        1920x1080@60.00100 at 3440x0
        description: Chimei Innolux Corporation 0x1529 (eDP-1)
        make: Chimei Innolux Corporation
        model: 0x1529
        serial: 
        active workspace: 6 (6)
        special workspace: 0 ()
        reserved: 0 0 0 27
        scale: 1.50
        transform: 0
        focused: no
        dpmsStatus: 1
        vrr: 0
❯ lspci | grep -i --color 'vga\|3d\|2d'
0000:00:02.0 VGA compatible controller: Intel Corporation Raptor Lake-P [Iris Xe Graphics] (rev 04)

monitor configuration:

hyprland.conf

monitor=,preferred,auto,1

both monitors got screwed

Crash reports, logs, images, videos

no crash reports in hyprland

vaxerski commented 10 months ago

you're on a very old hyprland ver. Please update (latest is 0.32.3)

rbroggi commented 10 months ago

thx @vaxerski - any reason that was not yet published to official package manager?

image

You recommend using git version?

vaxerski commented 10 months ago

https://repology.org/project/hyprland/versions

arch's package has been outdated for months now.

rbroggi commented 10 months ago

how would you recommend me to stay up-to-date?

romanstingler commented 10 months ago

@rbroggi you could use chaotic-aur repo, it checks hyprland-git, waybar-hyprland-git, xdg-desktop-portal-hyprland-git every hour for updates and builds it just follow the instructions in the How to use it section xdg-desktop-portal-hyprland-git

and then install the git packages I mentioned and replace your old ones with them (waybar-hyprland-git Only if you use waybar)

This is the most automatic way. Otherwise, you could check the git repo manually and build it yourself

rbroggi commented 10 months ago

I tried to use hyprland-git but it fails miserably without good message:

1 out of 1 hunk FAILED -- saving rejects to file meson.build.rej
==> ERROR: A failure occurred in prepare().
    Aborting...
 -> error making: hyprland-git-exit status 4
checking dependencies...
:: imath optionally requires boost-libs: python bindings
:: rust optionally requires gdb: rust-gdb script

Packages (7) boost-libs-1.83.0-2  cppdap-1.58.0-1  gdb-common-13.2-1  rhash-1.4.4-1  source-highlight-3.1.9-11  cmake-3.27.8-1  gdb-13.2-1

Total Removed Size:  96.75 MiB

:: Do you want to remove these packages? [Y/n]
:: Running pre-transaction hooks...
(1/1) Removing old entries from the info directory file...
:: Processing package changes...
(1/7) removing gdb                                                                    [#################################################] 100%
(2/7) removing source-highlight                                                       [#################################################] 100%
(3/7) removing boost-libs                                                             [#################################################] 100%
(4/7) removing gdb-common                                                             [#################################################] 100%
(5/7) removing cmake                                                                  [#################################################] 100%
(6/7) removing rhash                                                                  [#################################################] 100%
(7/7) removing cppdap                                                                 [#################################################] 100%
:: Running post-transaction hooks...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating the MIME type database...
(3/4) Updating icon theme caches...
(4/4) Updating the desktop file MIME type cache...
 -> Failed to install the following packages. Manual intervention is required:
hyprland-git - exit status 4
rbroggi commented 10 months ago

anyway, is there a reason why the official pacman repo was not updated in months? Is this a good time to update it then?

rbroggi commented 10 months ago

@alerque I saw that you were the last publisher of the arch package, do you feel we could upgrade it to a newer release? Thank you in advance :smile:

romanstingler commented 10 months ago

build it manually if you don't want to use the chaotic-aur repo

 git clone --recursive https://github.com/hyprwm/Hyprland
 cd Hyprland
 make 
sudo make install

you should have read the latest comment https://aur.archlinux.org/packages/hyprland-git#comment-945059

vaxerski commented 10 months ago

please, please, please do NOT sudo make. the only thing to sudo here is sudo make install. It's separate for a reason.

make all && sudo make install
romanstingler commented 10 months ago

@vaxerski thx for correcting this build is still broken

-- Build files have been written to: /tmp/Hyprland/build
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf NPROCESSORS_CONF`
[0/2] Re-checking globbed directories...
[1/93] Performing build step for 'wlroots'
ninja: Entering directory `build'
ninja: no work to do.
[2/93] Performing install step for 'wlroots'
wlroots: install not needed
[72/93] Building CXX object CMakeFiles/Hyprland.dir/src/render/Framebuffer.cpp.o
FAILED: CMakeFiles/Hyprland.dir/src/render/Framebuffer.cpp.o 
/usr/bin/c++ -DHAS_EXECINFO -DHyprland_EXPORTS -DLEGACY_RENDERER -DUSES_SYSTEMD -DWLR_USE_UNSTABLE -I/tmp/Hyprland/. -I/tmp/Hyprland/src -I/tmp/Hyprland/subprojects/wlroots/include -I/tmp/Hyprland/subprojects/wlroots/build/include -I/tmp/Hyprland/subprojects/udis86 -I/tmp/Hyprland/protocols -I/tmp/Hyprland/subprojects/udis86/libudis86 -isystem /usr/include/libdrm -isystem /usr/include/pango-1.0 -isystem /usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/harfbuzz -isystem /usr/include/blkid -isystem /usr/include/fribidi -isystem /usr/include/libmount -isystem /usr/include/sysprof-6 -isystem /usr/include/libpng16 -O3 -DNDEBUG -std=gnu++23 -O3 -Wall -Wextra -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing -Wno-pointer-arith -pthread -Winvalid-pch -include /tmp/Hyprland/build/CMakeFiles/Hyprland.dir/cmake_pch.hxx -MD -MT CMakeFiles/Hyprland.dir/src/render/Framebuffer.cpp.o -MF CMakeFiles/Hyprland.dir/src/render/Framebuffer.cpp.o.d -o CMakeFiles/Hyprland.dir/src/render/Framebuffer.cpp.o -c /tmp/Hyprland/src/render/Framebuffer.cpp
/tmp/Hyprland/src/render/Framebuffer.cpp: In member function ‘void CFramebuffer::addStencil()’:
/tmp/Hyprland/src/render/Framebuffer.cpp:67:36: error: ‘GL_DEPTH24_STENCIL8’ was not declared in this scope; did you mean ‘GL_DEPTH24_STENCIL8_OES’?
   67 |     glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, m_vSize.x, m_vSize.y, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 0);
      |                                    ^~~~~~~~~~~~~~~~~~~
      |                                    GL_DEPTH24_STENCIL8_OES
/tmp/Hyprland/src/render/Framebuffer.cpp:67:82: error: ‘GL_DEPTH_STENCIL’ was not declared in this scope; did you mean ‘GL_DEPTH_STENCIL_OES’?
   67 |     glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, m_vSize.x, m_vSize.y, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 0);
      |                                                                                  ^~~~~~~~~~~~~~~~
      |                                                                                  GL_DEPTH_STENCIL_OES
/tmp/Hyprland/src/render/Framebuffer.cpp:67:100: error: ‘GL_UNSIGNED_INT_24_8’ was not declared in this scope; did you mean ‘GL_UNSIGNED_INT_24_8_OES’?
   67 |     glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, m_vSize.x, m_vSize.y, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 0);
      |                                                                                                    ^~~~~~~~~~~~~~~~~~~~
      |                                                                                                    GL_UNSIGNED_INT_24_8_OES
[83/93] Building CXX object CMakeFiles/Hyprland.dir/src/render/OpenGL.cpp.o
ninja: build stopped: subcommand failed.
make: *** [Makefile:5: legacyrenderer] Error 1
make  641.55s user 21.43s system 911% cpu 1:12.72 total
vaxerski commented 10 months ago

is this legacy_renderer? This code hasnt changed in ages.

romanstingler commented 10 months ago

@vaxerski I think we need a new channel called "Vaxerski you are so smart" I just pulled it and executed make

cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DLEGACY_RENDERER:BOOL=true -S . -B ./build -G Ninja
Not searching for unused variables given on the command line.
-- Gathering git info
-- Setting up wlroots
-- Found WaylandScanner at /usr/bin/wayland-scanner
-- Found wayland-protocols at //usr/share/wayland-protocols
-- Configuring Hyprland in Release with CMake
-- Checking deps...
-- Configuration supports execinfo
-- Using the legacy GLES2 renderer!

No clue why the heck it wants to use a legacy renderer. I have a notebook with intel iGPU

Intel -- Mesa Intel(R) UHD Graphics (CML GT2) Driver Version 4.6 (Compatibility Profile) Mesa 24.0.0-devel (git-fd80140723)

And an Nvidia which I have blacklisted in modprobe

PS:

 make clear 
 make release

did the trick

rbroggi commented 10 months ago

Does your discussion has implications on what I should do? Should I report as well the output of compiling it myself?

I tried to compile the v0.32.3 tag by git checkout tags/v0.32.3 -b v0.32.3 and it failed. I am guessing that this is due to git submodule issue.

rbroggi commented 10 months ago

Should I just compile and run the master version?

rbroggi commented 10 months ago
❯ hyprctl version
Hyprland, built from branch main at commit d79cf0afe26fd6503a47c17a524d45742bf2461a  (renderer: fix software cursors on nvidia).
Tag: v0.32.3-59-gd79cf0af

flags: (if any

still terrible resolution :cry:

It's also very taxing on eyes.

Do yoy have tips for me to debug why this is happening?

vaxerski commented 10 months ago

what does "terrible resolution" mean, though? Your resolution seems fine? If you mean fonts, hyprland doesn't render those, it's down to the apps.

Have you tried timeshifting to before the update? If you don't have timeshift, that's another call for you to get it.

Manually downgrade every package you upgraded. I don't see hyprland there. If the issue goes away, great. Not an issue here.

rbroggi commented 10 months ago

Yep, indeed I don't really think hyprland is the issue as it was not between the packages. Thx for the suggestion about timeshift, I will definitely have a look.

rbroggi commented 10 months ago

found!

Offending package:

ttf-jetbrains-mono-nerd

Sorry for the distraction and thank you for the useful tips.