01:22 airlied: xiphmont: btw do you have any freecad use patterns that normally trigger the problem?
01:22 xiphmont: yes. Should I send one somewhere?
01:23 airlied: send one to me @redhat.com
01:23 xiphmont: OK. Let me pare one down tonight.
01:24 xiphmont: well... might not quite be tonight, I was actually wrapping up.
01:24 xiphmont: [family life + "getting old"]
01:24 xiphmont: OTOH, I'll be up at 6 :-)
01:25 airlied: no hurry
01:25 xiphmont: got it.
09:45 Ilgaz: For this issue I am installing distrobox fedora to see if packaging causes it. https://bugzilla.opensuse.org/show_bug.cgi?id=1217748
10:44 Ilgaz: I couldn't make fedora and debian work in distrobox. I guess I am having karma issues :-)
12:11 Ilgaz: I am finally sure this is a kernel/nouveau regression. Exact same issue on fedora 39 running via distrobox. karolherbst I am running a -vanilla named tumbleweed kernel, does that mean unmodified/stock 6.6?
12:23 Ilgaz: additionally I managed to get whole screen corrupt on nv9400, gnome top screen, firefox current, everyhing, I got "photo" and dmesg
13:02 Ilgaz: karolherbst: sorry I forgot to answer, it happens both with cold boot and warm boot, it is more weird in warm boot. I also checked temperature when things went out of hand, they look normal.
13:17 karolherbst: Ilgaz: if you can pinpoint what broke it on the kernel side that would help a lot
13:18 karolherbst: ever compiled the kernel and ran it?
13:19 karolherbst: Lyude: mind taking a look at https://gitlab.freedesktop.org/drm/nouveau/-/issues/180 ?
13:31 Ilgaz: karolherbst: I couldn't manage to install previous opensuse tw 6.5 kernel and boot with it. Some temp health issue have to use single hand lol. Google bard gave a good looking suggestion but of course didn't work :-)
13:42 Ilgaz: karolherbst: I will check a fresh fedora usb live image and make sure it is absolutely kernel 6.6. BTW this issue also hits SSDM/qt5 including qt6 based new sddm. Anyway I will update the bug BBL and thanks for caring as usual.
15:39 karolherbst: Lyude: ditch that, if you want a _fun_ bug, this might be one: https://gitlab.freedesktop.org/drm/nouveau/-/issues/284
16:42 Lyude: karolherbst: https://gitlab.freedesktop.org/drm/nouveau/-/issues/284 could definitely get to this once I've figured out the eDP issues
16:45 Lyude: i'm making progress there btw - going to be tracing openrm today and figure out what we're missing for laptop panels beyond what I've found thus far
17:01 karolherbst: cool
18:16 karolherbst: Lyude: "DRM: [DRM/0000000a:kmsOutp] [DP_TRAIN retrain:0 mst:0 lttprs:0 post_lt_adj:0 nr:4 bw:540000] (ret:-22)" :3
18:16 karolherbst: guess that's the one you are looking into atm anway
18:19 karolherbst: no dual display mess sadly :'(
18:19 karolherbst: but that can still happen
22:10 Lyude: slowly making progress :), I think I figured out where a bunch of the missing panel delays are
22:33 karolherbst: nice!
22:45 Lyude: lol, looks like I might need to refactor some of the gsp functions though (turns out we do have to expect some GSP calls to fail, and as well - those failing calls can even provide us information like panel delays!). coccinelle time
22:46 Lyude: oh or maybe I can just use the callbacks as is and ignore the ret value? we shall see
22:46 Lyude: *functions
22:51 karolherbst: funky
23:11 fdobridge_: <k​arolherbst🐧🦀> mhhh
23:11 fdobridge_: <k​arolherbst🐧🦀> fixed
23:11 fdobridge_: <g​fxstrand> Wait... That just might work. 🤯
23:12 fdobridge_: <k​arolherbst🐧🦀> right? it feels like it might work
23:12 fdobridge_: <k​arolherbst🐧🦀> but I'm sure it doesn't
23:12 fdobridge_: <g​fxstrand> I can do `iadd3 x y 0x80000000` and then fiddle with the predicates.
23:12 fdobridge_: <k​arolherbst🐧🦀> maybe...
23:13 fdobridge_: <k​arolherbst🐧🦀> I hope it works tho
23:13 fdobridge_: <g​fxstrand> I need to think about this
23:17 fdobridge_: <k​arolherbst🐧🦀> `IMAD.MOV.U32 R7, RZ, RZ, 0x1 ;` this cracks me up
23:19 fdobridge_: <k​arolherbst🐧🦀> wait.....
23:19 fdobridge_: <k​arolherbst🐧🦀> we are both stupid
23:19 fdobridge_: <k​arolherbst🐧🦀> add_sat is literally just iadd
23:19 fdobridge_: <k​arolherbst🐧🦀> *iadd_sat
23:20 fdobridge_: <k​arolherbst🐧🦀> or is it...
23:20 fdobridge_: <k​arolherbst🐧🦀> wait...
23:20 fdobridge_: <k​arolherbst🐧🦀> how does this make any sense
23:21 fdobridge_: <k​arolherbst🐧🦀> I think my CL C compiler script is kinda wonky
23:22 fdobridge_: <k​arolherbst🐧🦀> yeah...
23:22 fdobridge_: <k​arolherbst🐧🦀> this makes no sense
23:22 fdobridge_: <k​arolherbst🐧🦀> it's just doing a plain add for me :ferrisUpsideDown:
23:22 fdobridge_: <g​fxstrand> I wonder if I could do an iadd64 or something
23:22 fdobridge_: <k​arolherbst🐧🦀> ohh wait
23:23 fdobridge_: <k​arolherbst🐧🦀> I shouldn't skip errors
23:25 fdobridge_: <k​arolherbst🐧🦀> now I'm in business
23:26 fdobridge_: <k​arolherbst🐧🦀> mhhh
23:26 fdobridge_: <k​arolherbst🐧🦀> pain
23:26 fdobridge_: <k​arolherbst🐧🦀> it's not using `IADD3`
23:26 fdobridge_: <k​arolherbst🐧🦀> well
23:26 fdobridge_: <k​arolherbst🐧🦀> for `uadd_sat` it is
23:27 fdobridge_: <g​fxstrand> Sure
23:27 fdobridge_: <g​fxstrand> What are they doing?
23:27 fdobridge_: <g​fxstrand> `uadd_sat` is easy
23:27 fdobridge_: <k​arolherbst🐧🦀> https://gist.github.com/karolherbst/8c7f9bcf77327ba758cd1172383fa58b
23:28 fdobridge_: <k​arolherbst🐧🦀> pulling two values from constant buffers
23:28 fdobridge_: <k​arolherbst🐧🦀> and then *add_sat on those
23:28 fdobridge_: <k​arolherbst🐧🦀> (is the CL C code)
23:28 fdobridge_: <k​arolherbst🐧🦀> ehh
23:28 fdobridge_: <k​arolherbst🐧🦀> iadd_sat is uadd_sat and vice versa
23:28 fdobridge_: <k​arolherbst🐧🦀> fixed
23:29 fdobridge_: <k​arolherbst🐧🦀> `LEA.HI.X.SX32` funky
23:33 fdobridge_: <g​fxstrand> Wow, either I'm missing something or their `uadd_sat` is horrible
23:34 fdobridge_: <k​arolherbst🐧🦀> I'm sure there are reasons for all of this
23:34 fdobridge_: <g​fxstrand> Maybe?
23:35 fdobridge_: <g​fxstrand> Honestly, that looks like libclc munged through a compiler.
23:36 fdobridge_: <k​arolherbst🐧🦀> except it's using ptx
23:36 fdobridge_: <k​arolherbst🐧🦀> oh wait.. mhh
23:37 fdobridge_: <k​arolherbst🐧🦀> `add.s64 %rd1, %rd10, %rd9;`
23:37 fdobridge_: <k​arolherbst🐧🦀> `cvt.sat.s32.s64 %r1, %rd1;`
23:37 fdobridge_: <g​fxstrand> That's believable. 😅
23:37 fdobridge_: <k​arolherbst🐧🦀> guess ptx doesn't have add_sat? let's see...
23:37 fdobridge_: <k​arolherbst🐧🦀> `add{.sat}.s32 d, a, b; // .sat applies only to .s32` heh
23:38 fdobridge_: <k​arolherbst🐧🦀> *sigh*
23:38 fdobridge_: <k​arolherbst🐧🦀> let me hack the ptx directly then
23:38 fdobridge_: <g​fxstrand> Hehe
23:38 fdobridge_: <g​fxstrand> 🤡
23:39 fdobridge_: <g​fxstrand> How do you run PTX through their compiler? I should learn how to do that.
23:39 fdobridge_: <k​arolherbst🐧🦀> https://github.com/ljbade/clcc
23:39 fdobridge_: <k​arolherbst🐧🦀> it's a huge hack
23:39 fdobridge_: <k​arolherbst🐧🦀> but.. 😄
23:39 fdobridge_: <k​arolherbst🐧🦀> ehh you meant PTX
23:39 fdobridge_: <k​arolherbst🐧🦀> not CLC
23:39 fdobridge_: <k​arolherbst🐧🦀> `/usr/local/cuda-12.2/bin/ptxas -arch sm_75 --machine 64 test.ptx`
23:39 fdobridge_: <k​arolherbst🐧🦀> `usr/local/cuda-12.2/bin/nvdisasm elf.o`
23:40 fdobridge_: <g​fxstrand> Oh, that's easy
23:40 fdobridge_: <g​fxstrand> I should be doing that instead of spirv for most things
23:41 fdobridge_: <k​arolherbst🐧🦀> okay..
23:41 fdobridge_: <k​arolherbst🐧🦀> iadd_sat is a bit better
23:41 fdobridge_: <g​fxstrand> Paste?
23:41 fdobridge_: <k​arolherbst🐧🦀> https://gist.github.com/karolherbst/8c7f9bcf77327ba758cd1172383fa58b
23:41 fdobridge_: <k​arolherbst🐧🦀> `IMAD.IADD R2, R0, 0x1, R3` why use anything else if `IMAD` got you covered anyway
23:42 fdobridge_: <g​fxstrand> Uh... PLOP3 that takes register signs? What is this glorious madness?
23:42 fdobridge_: <k​arolherbst🐧🦀> appears so
23:43 fdobridge_: <k​arolherbst🐧🦀> can either use predicates or sign bits
23:43 fdobridge_: <g​fxstrand> I'm so gonna wire that up
23:43 fdobridge_: <k​arolherbst🐧🦀> it's huge
23:43 fdobridge_: <k​arolherbst🐧🦀> "just plop it" or something
23:43 fdobridge_: <g​fxstrand> Yeah, there's so many uses for that
23:44 fdobridge_: <g​fxstrand> Is it per-source or per-instruction?
23:44 fdobridge_: <k​arolherbst🐧🦀> per soruce
23:44 fdobridge_: <k​arolherbst🐧🦀> yeah.. all combinations exists
23:44 fdobridge_: <k​arolherbst🐧🦀> except...
23:44 fdobridge_: <k​arolherbst🐧🦀> the 2nd arg can't be a predicate unless all sources are predicates
23:45 fdobridge_: <k​arolherbst🐧🦀> so.. PRP, RRR, RRP, PRR, PPP
23:45 fdobridge_: <k​arolherbst🐧🦀> I know it's not readable, but ...
23:45 fdobridge_: <g​fxstrand> That's not too bad
23:45 fdobridge_: <g​fxstrand> You can shuffle around if needed
23:46 fdobridge_: <k​arolherbst🐧🦀> yeah
23:46 fdobridge_: <k​arolherbst🐧🦀> there are also a handful of flags
23:46 fdobridge_: <k​arolherbst🐧🦀> well..
23:46 fdobridge_: <k​arolherbst🐧🦀> just `.LUT` apparently
23:46 fdobridge_: <k​arolherbst🐧🦀> PPP form can do `.lop`
23:47 fdobridge_: <k​arolherbst🐧🦀> (.AND, .OR, .XOR, .SEL)
23:47 fdobridge_: <k​arolherbst🐧🦀> ohh.. there is also PPUp
23:47 fdobridge_: <k​arolherbst🐧🦀> apparently PSETP is the same as PLOP3
23:48 fdobridge_: <k​arolherbst🐧🦀> just a different variant
23:48 fdobridge_: <k​arolherbst🐧🦀> anyway.. no idea what they'd do about `uadd_sat` as ptx doesn't have it 🙂
23:49 fdobridge_: <g​fxstrand> I can figure out uadd. It's easy.