01:22airlied: xiphmont: btw do you have any freecad use patterns that normally trigger the problem?
01:22xiphmont: yes. Should I send one somewhere?
01:23airlied: send one to me @redhat.com
01:23xiphmont: OK. Let me pare one down tonight.
01:24xiphmont: well... might not quite be tonight, I was actually wrapping up.
01:24xiphmont: [family life + "getting old"]
01:24xiphmont: OTOH, I'll be up at 6 :-)
01:25airlied: no hurry
01:25xiphmont: got it.
09:45Ilgaz: For this issue I am installing distrobox fedora to see if packaging causes it. https://bugzilla.opensuse.org/show_bug.cgi?id=1217748
10:44Ilgaz: I couldn't make fedora and debian work in distrobox. I guess I am having karma issues :-)
12:11Ilgaz: 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:23Ilgaz: additionally I managed to get whole screen corrupt on nv9400, gnome top screen, firefox current, everyhing, I got "photo" and dmesg
13:02Ilgaz: 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:17karolherbst: Ilgaz: if you can pinpoint what broke it on the kernel side that would help a lot
13:18karolherbst: ever compiled the kernel and ran it?
13:19karolherbst: Lyude: mind taking a look at https://gitlab.freedesktop.org/drm/nouveau/-/issues/180 ?
13:31Ilgaz: 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:42Ilgaz: 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:39karolherbst: Lyude: ditch that, if you want a _fun_ bug, this might be one: https://gitlab.freedesktop.org/drm/nouveau/-/issues/284
16:42Lyude: karolherbst: https://gitlab.freedesktop.org/drm/nouveau/-/issues/284 could definitely get to this once I've figured out the eDP issues
16:45Lyude: 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:01karolherbst: cool
18:16karolherbst: 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:16karolherbst: guess that's the one you are looking into atm anway
18:19karolherbst: no dual display mess sadly :'(
18:19karolherbst: but that can still happen
22:10Lyude: slowly making progress :), I think I figured out where a bunch of the missing panel delays are
22:33karolherbst: nice!
22:45Lyude: 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:46Lyude: oh or maybe I can just use the callbacks as is and ignore the ret value? we shall see
22:46Lyude: *functions
22:51karolherbst: funky
23:11fdobridge_: <karolherbst🐧🦀> mhhh
23:11fdobridge_: <karolherbst🐧🦀> fixed
23:11fdobridge_: <gfxstrand> Wait... That just might work. 🤯
23:12fdobridge_: <karolherbst🐧🦀> right? it feels like it might work
23:12fdobridge_: <karolherbst🐧🦀> but I'm sure it doesn't
23:12fdobridge_: <gfxstrand> I can do `iadd3 x y 0x80000000` and then fiddle with the predicates.
23:12fdobridge_: <karolherbst🐧🦀> maybe...
23:13fdobridge_: <karolherbst🐧🦀> I hope it works tho
23:13fdobridge_: <gfxstrand> I need to think about this
23:17fdobridge_: <karolherbst🐧🦀> `IMAD.MOV.U32 R7, RZ, RZ, 0x1 ;` this cracks me up
23:19fdobridge_: <karolherbst🐧🦀> wait.....
23:19fdobridge_: <karolherbst🐧🦀> we are both stupid
23:19fdobridge_: <karolherbst🐧🦀> add_sat is literally just iadd
23:19fdobridge_: <karolherbst🐧🦀> *iadd_sat
23:20fdobridge_: <karolherbst🐧🦀> or is it...
23:20fdobridge_: <karolherbst🐧🦀> wait...
23:20fdobridge_: <karolherbst🐧🦀> how does this make any sense
23:21fdobridge_: <karolherbst🐧🦀> I think my CL C compiler script is kinda wonky
23:22fdobridge_: <karolherbst🐧🦀> yeah...
23:22fdobridge_: <karolherbst🐧🦀> this makes no sense
23:22fdobridge_: <karolherbst🐧🦀> it's just doing a plain add for me :ferrisUpsideDown:
23:22fdobridge_: <gfxstrand> I wonder if I could do an iadd64 or something
23:22fdobridge_: <karolherbst🐧🦀> ohh wait
23:23fdobridge_: <karolherbst🐧🦀> I shouldn't skip errors
23:25fdobridge_: <karolherbst🐧🦀> now I'm in business
23:26fdobridge_: <karolherbst🐧🦀> mhhh
23:26fdobridge_: <karolherbst🐧🦀> pain
23:26fdobridge_: <karolherbst🐧🦀> it's not using `IADD3`
23:26fdobridge_: <karolherbst🐧🦀> well
23:26fdobridge_: <karolherbst🐧🦀> for `uadd_sat` it is
23:27fdobridge_: <gfxstrand> Sure
23:27fdobridge_: <gfxstrand> What are they doing?
23:27fdobridge_: <gfxstrand> `uadd_sat` is easy
23:27fdobridge_: <karolherbst🐧🦀> https://gist.github.com/karolherbst/8c7f9bcf77327ba758cd1172383fa58b
23:28fdobridge_: <karolherbst🐧🦀> pulling two values from constant buffers
23:28fdobridge_: <karolherbst🐧🦀> and then *add_sat on those
23:28fdobridge_: <karolherbst🐧🦀> (is the CL C code)
23:28fdobridge_: <karolherbst🐧🦀> ehh
23:28fdobridge_: <karolherbst🐧🦀> iadd_sat is uadd_sat and vice versa
23:28fdobridge_: <karolherbst🐧🦀> fixed
23:29fdobridge_: <karolherbst🐧🦀> `LEA.HI.X.SX32` funky
23:33fdobridge_: <gfxstrand> Wow, either I'm missing something or their `uadd_sat` is horrible
23:34fdobridge_: <karolherbst🐧🦀> I'm sure there are reasons for all of this
23:34fdobridge_: <gfxstrand> Maybe?
23:35fdobridge_: <gfxstrand> Honestly, that looks like libclc munged through a compiler.
23:36fdobridge_: <karolherbst🐧🦀> except it's using ptx
23:36fdobridge_: <karolherbst🐧🦀> oh wait.. mhh
23:37fdobridge_: <karolherbst🐧🦀> `add.s64 %rd1, %rd10, %rd9;`
23:37fdobridge_: <karolherbst🐧🦀> `cvt.sat.s32.s64 %r1, %rd1;`
23:37fdobridge_: <gfxstrand> That's believable. 😅
23:37fdobridge_: <karolherbst🐧🦀> guess ptx doesn't have add_sat? let's see...
23:37fdobridge_: <karolherbst🐧🦀> `add{.sat}.s32 d, a, b; // .sat applies only to .s32` heh
23:38fdobridge_: <karolherbst🐧🦀> *sigh*
23:38fdobridge_: <karolherbst🐧🦀> let me hack the ptx directly then
23:38fdobridge_: <gfxstrand> Hehe
23:38fdobridge_: <gfxstrand> 🤡
23:39fdobridge_: <gfxstrand> How do you run PTX through their compiler? I should learn how to do that.
23:39fdobridge_: <karolherbst🐧🦀> https://github.com/ljbade/clcc
23:39fdobridge_: <karolherbst🐧🦀> it's a huge hack
23:39fdobridge_: <karolherbst🐧🦀> but.. 😄
23:39fdobridge_: <karolherbst🐧🦀> ehh you meant PTX
23:39fdobridge_: <karolherbst🐧🦀> not CLC
23:39fdobridge_: <karolherbst🐧🦀> `/usr/local/cuda-12.2/bin/ptxas -arch sm_75 --machine 64 test.ptx`
23:39fdobridge_: <karolherbst🐧🦀> `usr/local/cuda-12.2/bin/nvdisasm elf.o`
23:40fdobridge_: <gfxstrand> Oh, that's easy
23:40fdobridge_: <gfxstrand> I should be doing that instead of spirv for most things
23:41fdobridge_: <karolherbst🐧🦀> okay..
23:41fdobridge_: <karolherbst🐧🦀> iadd_sat is a bit better
23:41fdobridge_: <gfxstrand> Paste?
23:41fdobridge_: <karolherbst🐧🦀> https://gist.github.com/karolherbst/8c7f9bcf77327ba758cd1172383fa58b
23:41fdobridge_: <karolherbst🐧🦀> `IMAD.IADD R2, R0, 0x1, R3` why use anything else if `IMAD` got you covered anyway
23:42fdobridge_: <gfxstrand> Uh... PLOP3 that takes register signs? What is this glorious madness?
23:42fdobridge_: <karolherbst🐧🦀> appears so
23:43fdobridge_: <karolherbst🐧🦀> can either use predicates or sign bits
23:43fdobridge_: <gfxstrand> I'm so gonna wire that up
23:43fdobridge_: <karolherbst🐧🦀> it's huge
23:43fdobridge_: <karolherbst🐧🦀> "just plop it" or something
23:43fdobridge_: <gfxstrand> Yeah, there's so many uses for that
23:44fdobridge_: <gfxstrand> Is it per-source or per-instruction?
23:44fdobridge_: <karolherbst🐧🦀> per soruce
23:44fdobridge_: <karolherbst🐧🦀> yeah.. all combinations exists
23:44fdobridge_: <karolherbst🐧🦀> except...
23:44fdobridge_: <karolherbst🐧🦀> the 2nd arg can't be a predicate unless all sources are predicates
23:45fdobridge_: <karolherbst🐧🦀> so.. PRP, RRR, RRP, PRR, PPP
23:45fdobridge_: <karolherbst🐧🦀> I know it's not readable, but ...
23:45fdobridge_: <gfxstrand> That's not too bad
23:45fdobridge_: <gfxstrand> You can shuffle around if needed
23:46fdobridge_: <karolherbst🐧🦀> yeah
23:46fdobridge_: <karolherbst🐧🦀> there are also a handful of flags
23:46fdobridge_: <karolherbst🐧🦀> well..
23:46fdobridge_: <karolherbst🐧🦀> just `.LUT` apparently
23:46fdobridge_: <karolherbst🐧🦀> PPP form can do `.lop`
23:47fdobridge_: <karolherbst🐧🦀> (.AND, .OR, .XOR, .SEL)
23:47fdobridge_: <karolherbst🐧🦀> ohh.. there is also PPUp
23:47fdobridge_: <karolherbst🐧🦀> apparently PSETP is the same as PLOP3
23:48fdobridge_: <karolherbst🐧🦀> just a different variant
23:48fdobridge_: <karolherbst🐧🦀> anyway.. no idea what they'd do about `uadd_sat` as ptx doesn't have it 🙂
23:49fdobridge_: <gfxstrand> I can figure out uadd. It's easy.