ifreund changed the topic of #river to: river - a dynamic tiling wayland compositor || https://github.com/riverwm/river || channel logs: https://libera.irclog.whitequark.org/river/
<NickH> adamc
<NickH> adamcstephens: the head of river has been on zig 0.17.2 for almost a week now, so depending on how old your build is you may be using it already
leviathan has joined #river
leviathan has quit [Client Quit]
haliucinas has quit [Read error: Connection reset by peer]
haliucinas has joined #river
eShaev9z_ has joined #river
eShaev9z has quit [Ping timeout: 264 seconds]
angry_vincent has joined #river
vyivel has quit [Remote host closed the connection]
vyivel has joined #river
angry_vincent has quit [Ping timeout: 260 seconds]
leopoldek has quit [Remote host closed the connection]
angry_vincent has joined #river
<lordmzte> ifreund: well, it seems like the hyprland folks have found a workaround though :)
<lordmzte> also, what are nvk and zink? :P
The_Buhs has quit [Quit: The Lounge - https://thelounge.chat]
The_Buhs has joined #river
<ifreund> lordmzte: river uses the wlroots renderer. wlroots policy is to stick to open standards and not add workarounds for black-box proprietary drivers like nvidia
<ifreund> I think this is the only way to make development sustaniable
<ifreund> nvk is a new open source implementation of vulkan for nvidia hardware in mesa that's seen fantastic progress this year
<ifreund> zink is an implementation of opengl on top of vulkan in mesa that can be combined with nvk for an alternative to noveau
angry_vincent has quit [Ping timeout: 256 seconds]
angry_vincent has joined #river
angry_vincent has quit [Remote host closed the connection]
angry_vincent has joined #river
<dagle> Managed to crash river yesterday, then I found out that I actually managed to crash the gpu and it required a reboot. :)
<leon-p> careful: gpu crashes could indicate issues in the power distribution of your setup. I fried a set of RAM once that way because a laptops battery was acting up
<dagle> I think this was a driver / mesa / something else issue.
<ifreund> dagle: sounds like a GPU reset, wlroots has made the necessary changes to allow us to recover from those but they haven't landed in a wlroots release yet
<ifreund> with wlroots 0.18 we should be able to handle that kind of error
pfr has joined #river
pfr has quit [Client Quit]
pfr has joined #river
pfr has quit [Client Quit]
pfr has joined #river
leviathan has joined #river
pfr has quit [Client Quit]
<lordmzte> ifreund: I do understand that wlroots doesn't upstream workarounds, but wouldn't it make sense to maintain a fork of wlr with patches regarding this? I already have my own minimally patched fork of wlr, mainly for screenshare, but i'm not sure if there's a patch for this problem I'm having, but there might be. About nvk, I don't think I'm ready to
<lordmzte> move away from proprietary nvidia drivers just yet, sadly, mostly because I often use cuda for de-/encoding and rendering and do often need GPU performance. Is wlr's vulkan backend considered better than the gles2 backend on nvidia hardware?
<leon-p> can't you do compute on vulkan? I am pretty sure cuda isn't really needed for that anymore.
<lordmzte> I don't think mpv supports hardware decoding with vulkan :D
<lordmzte> (and neither does kdenlive support hardware encoding without cuda. blender probably doesn't either)
<leon-p> 🤷 maybe I'll look it up once I am at my desk again. That laptop has an nvidia chip. Would be neat if I could use it from Linux so I could finally play sins of a solar empire again...
<lordmzte> The vulkan renderer also seems broken with cursors. I only have half a cursor despite `WLR_NO_HARDWARE_CURSORS=1`
leviathan has quit [Quit: Client closed]
<ifreund> lordmzte: I personally will have nothing to do with non-upstream wlroots forks, it's not a supported use-case for wlroots or river
<ifreund> perhaps the explicit synchronization work that looks like it will land soonish will help with your flickering, iirc nvidia's implicit sync is totally broken
<lordmzte> I totally understand! Thanks for the insights!
<ifreund> I know it's frustrating that your hardware doesn't work, this is really on your hardware vendor though not river/wlroots
<ifreund> at least one nvidia engineer is working with upstream wlroots/wayland-protocols to improve the situation fwiw
alexherbo2 has joined #river
maralorn has joined #river
waleee has joined #river
leopoldek has joined #river
<lordmzte> Of course, but given that nvidia is notoriously bad at actually addressing the problems of their customers, I have to rely on workarounds in wlr/river, but I of course understand that you don't want to have to worry about that, I understand.
haliucinas has quit [Read error: Connection reset by peer]
haliucinas has joined #river
waleee has quit [Quit: WeeChat 4.1.2]
<adamcstephens> you do have another option, even if not ideal. buy a gpu from another company :)
leopoldek has quit [Remote host closed the connection]
<lordmzte> Well, not only do GPUs cost money, but also nvidia GPUs are unfortunately the most powerful last time I checked anyways. I could do dual GPU, but that's kinda expensive in terms of electricity and probably a driver nightmare
<vimproved> ifreund: yeah i saw the GPU reset stuff land in sway recently
maralorn has quit [Ping timeout: 250 seconds]
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #river
lillian has quit [Ping timeout: 256 seconds]
lillian has joined #river
alexherbo2 has quit [Remote host closed the connection]
maralorn has joined #river
<angry_vincent> bem
<angry_vincent> sorry, mistypo
leopoldek has joined #river
<lordmzte> Just had river randomly crash while opening a window. Coredump: https://paste.rs/2OYpj River log: https://paste.rs/IHsa7
<lordmzte> Hah nice, it's even reproducible. It always happens when running my script, `vinput` (which does some cursed stuff ATM, but this isn't really an acceptable failure mode). code: https://git.mzte.de/LordMZTE/dotfiles/src/branch/master/scripts/vinput
<lordmzte> See ClipboardConnection.zig
maralorn has quit [Ping timeout: 250 seconds]
<lordmzte> Note that this code used to run a few river commits ago, it did often leave "dangling" window frames and general glitchyness though
<ifreund> lordmzte: that stack trace doesn't have line numbers... could you try running bt in gdb?
waleee has joined #river
<lordmzte> https://paste.rs/XczQ0 here ya go
<ifreund> lordmzte: hmm, its still not terribly helpful due to inlining sadly but it seems to be corruption of one of the linked lists iterated in Root.commitTransaction()
<ifreund> it would be really helpful if you could reproduce it under valgrind, I can try and see if I can reproduce it myself tomorrow
<lordmzte> Hmm, last time I touched valgrind, everything would slow down to 0 and I didn't get any useful info out of it. Got any quick guides for it?
<ifreund> lordmzte: the bug you hit seems unrelated to backend-specific code so it should be possible to reproduce in a nesed river session
<ifreund> just run valgrind river from within a river session, reproduce the crash, and give me the valgrind output
<ifreund> the only problem is, valgrind will make river run very slowly, so the crash might not reproduce if it is a race condition...
<ifreund> trying with a debug build of river would also be worthwhile as it ususally gives much better stack traces
<lordmzte> hmm, valgrind won't launch due to missing debug symbols for ld.so
<lordmzte> hmm, might be due to updating stuff and not rebooting, brb
<lordmzte> nope, still no good
<ifreund> huh, what distro?
<lordmzte> arch
<lordmzte> huh, fixed by setting `DEBUGINFOD_URLS`
<lordmzte> dinner time, will give this a shot afterwards
<ifreund> thanks!
<lordmzte> Got a valgrind log with a debug build of river. Seems to be an assertion failure, there's a nice trace now: https://paste.rs/FqbBW
<lordmzte> Also of note: I was unable to reproduce this in a nested session, it works there.
<lordmzte> vinput (the offender here) gets access to the clipboard via some old protocol (forgot the specifics) that requires a window, but the app itself doesn't have a window, so it creates a surface and then immediately destroys it again. smells raceconditiony to me.
<lordmzte> (yes I need to improve my code)
angry_vincent has quit [Ping timeout: 252 seconds]
<ifreund> lordmzte: yes! this valgrind output will be very useful thanks
<ifreund> as for vinput, that "old protocol" is literally wayland.xml and this is a feature(TM) to avoid e.g. proprietary programs without focus from sniffing passwords off your clipboard
<ifreund> you probably want the "privledged" wlr-data-control protocol for fancy clipboard manager like stuff
<lordmzte> Yea I know, that's what I was referring to. I also don't think this "feature" really makes sense because you can barely see the window popping up for a few milliseconds.
<lordmzte> windows user probably won't even recognize a window popping up and immediately disappearing as unusual lol
<lordmzte> s/user/users
<ifreund> yeah, it's questionally effective in practice for sure
<lordmzte> since I haven't explained what vinput actually is: it's a script that reads the clipboard into a tmpfile, opens that in an editor and when that exists, puts that file in the clipboard. it's handy for having a one-button solution to type out messages in a sane editor and stuff.
<lordmzte> and yes, I do fully realize that this could be a 3 line shell script thank you very much
<lordmzte> but that's boring
<ifreund> I was gonna say wl-copy and wl-paste would do that just fine xD
<lordmzte> vinput was written with xlib before i switched to WL. that was........ delightful.
<ifreund> lordmzte: pushed a commit to this branch that should fix that assertion failure: https://github.com/riverwm/river/tree/assert-fix
<ifreund> would you mind testing?
<lordmzte> sure, give me a few minutes.
<lordmzte> Seems to work!
<ifreund> excellent, I'll push it to master :)
<lordmzte> great work! one less bug!
ccha has quit [Quit: WeeChat 4.2.1]
ccha has joined #river
pfr has joined #river
<pfr> Is there a way to modify the window border pixel width?
<novakane> pfr: yes with border-width command, see man riverctl(1)
<pfr> Thanks
pfr has quit [Quit: Quit]