hanatos / vkdt

raw photography workflow that sucks less
https://jo.dreggn.org/vkdt
BSD 2-Clause "Simplified" License
377 stars 35 forks source link

Broken scaling of vkdt on wayland / high dpi / KDE #137

Open vilim opened 2 weeks ago

vilim commented 2 weeks ago

Since the move to the Nuklear GUI framework, the scaling of the interface is off (the screen is set to 200% scaling, but the interface looks in part at 400%, while still being blurry)

image

The build is vkdt-rawler-glfw3.4-0.8.99-106-gb47c911d-x86_64.AppImage KDE Plasma 6.0.5 on Wayland

hanatos commented 2 weeks ago

heya, thanks for reporting. this is going to be hard for me to reproduce, because nvidia on wayland does not even run vulkaninfo.

are you sure vkdt is running with wayland on your system? can you start it from a shell with vkdt -d all to see which extensions glfw actually loads?

i never understood the logic of this 200% scaling thing. vkdt scales its own gui in proportion to window height, this 2x scaling seems very legacy to me. i suppose this is a matter of carefully replacing glfwGetWindowSize by glfwGetFramebufferSize, context: https://stackoverflow.com/questions/44719635/what-is-the-difference-between-glfwgetwindowsize-and-glfwgetframebuffersize

hanatos commented 2 weeks ago

.. just for adventurous people who have laptops with mixed intel + nvidia, running this in foot/weston seems to work and at least start something vulkan:

XDG_SESSION_TYPE=wayland VK_DRIVER_FILES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json vkdt

of course only using the intel GPU. while slightly painful, i think i don't see any more scaling/dpi issues on a 4k laptop with intel/wayland. let me know if that fixed it for you too.

vilim commented 1 week ago

I unfortunately have only nVidia on this computer, no intel. This is what vkdt -d all returns

[gui] vkdt 0.8.99-106-gb47c911d (c) 2020--2024 johannes hanika
[gui] glfwGetVersionString() : 3.4.0 Wayland X11 GLX Null EGL OSMesa monotonic
[gui] monitor [0] DP-4 at 0 0
[gui] vk extension required by GLFW:
[gui]   VK_KHR_surface
[gui]   VK_KHR_wayland_surface
[gui] no joysticks found
[gui] no display profile file display.DP-4, using sRGB!

The 200% refers to the scaling settings of the window manager and are per-monitor, AFAIK it comes originally from Apple's method of implementing high DPI support which involved doubling the resolution of the displays and then introducing logical pixels which correspond to 4 device pixels. Will have a look at the GLFW code

hanatos commented 1 week ago

is the scaling still off for you after https://github.com/hanatos/vkdt/commit/f8abd5a9c6ef70d3209d2035804f8d6bd3983e40 ?