00:03TimurTabi: airlied: well, I have the latest rawhide installed and the GSP firmware, nouveau is loaded, but it appears to be unused???? I even have a GUI up, but dmesg shows nothing.
00:07TimurTabi: glxgears only shows 900fps, so it's definitely not using the GPU. I don't know how to fix this.
00:12karolherbst: what is glxinfo showing?
00:13TimurTabi: name of display: :0
00:13TimurTabi: DRI3 not available
00:13TimurTabi: failed to load driver: zink
00:13TimurTabi: display: :0 screen: 0
00:13TimurTabi: direct rendering: Yes
00:13TimurTabi: server glx vendor string: SGI
00:13karolherbst: yeah.. looks like your gl setup is toast
00:13karolherbst: is this on X or wayland?
00:14TimurTabi: I had to use text mode to install rawhide because the GUI wouldn't boot during installation.
00:14TimurTabi: How can I check if X vs Wayland?
00:14TimurTabi: I had to install GNOME afterwards. I'm not surprised it's borked.
00:15karolherbst: echo $XDG_SESSION_TYPE
00:15TimurTabi: tty
00:16karolherbst: inside the desktop session?
00:16TimurTabi: Yes
00:16karolherbst: mhhh
00:16karolherbst: weird
00:16TimurTabi: I think it was the text installer.
00:16karolherbst: probably..
00:16karolherbst: cat /proc/cmdline
00:16TimurTabi: Ben's driver won't boot on my GPU without GSP-RM
00:16fdobridge: <gfxstrand> ```
00:16fdobridge: <gfxstrand> Test run totals:
00:16fdobridge: <gfxstrand> Passed: 5969/12160 (49.1%)
00:16fdobridge: <gfxstrand> Failed: 0/12160 (0.0%)
00:16fdobridge: <gfxstrand> Not supported: 6191/12160 (50.9%)
00:16fdobridge: <gfxstrand> Warnings: 0/12160 (0.0%)
00:16fdobridge: <gfxstrand> Waived: 0/12160 (0.0%)
00:16fdobridge: <gfxstrand> ```
00:16fdobridge: <gfxstrand> Had to fix a bunch of misc bugs but I think we have a reasonable baseline now
00:17karolherbst: TimurTabi: looks like, that you might run into the firmware bug we are trying to track down
00:17karolherbst: Ampere or Turing?
00:17TimurTabi: TU104
00:17karolherbst: mhhh
00:17karolherbst: that needs updated firmware to work anyway
00:17karolherbst: so you kinda need a very very new iso to install
00:17TimurTabi: updated non-GSP firmware?
00:17karolherbst: yes
00:17TimurTabi: is it in linux-firmware.git ?
00:17karolherbst: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/nvidia?id=2e92a49f90f73c8edc44b25c6e669d5e70893c90
00:18TimurTabi: I install the latest linux-firmware.git already
00:18karolherbst: okay
00:18karolherbst: then we'll need to figure out what's broken in your setup
00:18karolherbst: so
00:18karolherbst: cat /proc/cmdline
00:19TimurTabi: BOOT_IMAGE=(hd0,gpt3)/vmlinuz-6.7.0-0.rc0.20231106gitd2f51b3516da.9.fc40.x86_64 root=UUID=7aab4e5e-483f-4ecd-8498-39ded071362d ro nomodeset rhgb qu
00:19TimurTabi: iet console=ttyS0,115200 console=tty0 nouveau.config=NvGspRm=1 nouveau.debug=gsp=spam
00:19TimurTabi: I'm surprised the nomodeset is there. Is that normal? That's how it was installed.
00:19karolherbst: sudo dracut --update-kernel=ALL --remove-args="nomodeset"
00:19karolherbst: then reboot
00:19karolherbst: ehhh
00:19karolherbst: wrong
00:19karolherbst: sudo grubby --update-kernel=ALL --remove-args="nomodeset"
00:21TimurTabi: [ 2.090175] nouveau 0000:65:00.0: gsp: firmware "nvidia/tu104/gsp/gsp-535.113.01.bin" unavailable
00:21TimurTabi: bummer
00:21karolherbst: heh
00:21TimurTabi: It's there, though!
00:21karolherbst: how did you install your linux-firmware
00:21TimurTabi: ./copy-firmware.sh /lib/firmware
00:21TimurTabi: # ls -l /lib/firmware/nvidia/tu104/gsp/
00:21TimurTabi: total 23304
00:21TimurTabi: -rw-r--r--. 1 root root 57992 Nov 8 17:46 booter_load-535.113.01.bin
00:21TimurTabi: -rw-r--r--. 1 root root 38024 Nov 8 17:46 booter_unload-535.113.01.bin
00:21TimurTabi: -rw-r--r--. 1 root root 4196 Nov 8 17:46 bootloader-535.113.01.bin
00:21TimurTabi: -rw-r--r--. 1 root root 23750944 Nov 8 17:46 gsp-535.113.01.bin
00:21karolherbst: ehh wait
00:21karolherbst: do this:
00:21karolherbst: sudo dracut --regenerate-all -f
00:21karolherbst: reboot
00:22TimurTabi: that fixes the initrd?
00:22karolherbst: well.. maybe
00:22karolherbst: the thing is, does nouveau report to need those files?
00:22karolherbst: like do they appear in `modinfo nouveau`?
00:22TimurTabi: Yes, they do.
00:23karolherbst: okay
00:23karolherbst: then the regenerate should include them
00:23TimurTabi: rebooting
00:23karolherbst: dracut is a bit "smart" here and only includes files from actively loaded drivers
00:23TimurTabi: so I'm guessing that the text mode installer adds nomodeset to the cmdline
00:23karolherbst: yeah
00:24TimurTabi: it's working, kinda. nouveau loads as expected, but there's no GUI on my monitor.
00:24karolherbst: mhhhh
00:24karolherbst: any errors?
00:24TimurTabi: I don't think so.
00:25karolherbst: maybe something with gdm or soo...
00:25TimurTabi: what's the normal way to kickstart the gui in fedora?
00:25karolherbst: anything comming up with `journalctl --follow`?
00:25karolherbst: systemctl start gdm
00:25TimurTabi: that did it
00:25karolherbst: ahh
00:25karolherbst: then you want to enable gdm via `systemctl enable gdm`
00:27TimurTabi: Failed to enable unit: File /etc/systemd/system/display-manager.service already exists and is a symlink to /usr/lib/systemd/system/lightdm.service.
00:27karolherbst: interesting...
00:27karolherbst: `systemctl disable lightdm` first then
00:27TimurTabi: yeah, just did that.
00:27TimurTabi: seems to work now
00:27TimurTabi: let me reboot
00:28TimurTabi: glxgears is at 4500fps, so that's working now.
00:28karolherbst: cool
00:30TimurTabi: well, I rebooted and it's still not starting the GUI automatically, but I don't care about that. I just wanted to make sure that my linux-firmware.git change worked, and it does.
00:30TimurTabi: karolherbst: thanks mucho for your help.
00:30karolherbst: np
00:31karolherbst: we have regularly users coming in and not having nouveau loaded for various reasons :D so I'm kinda used to this kinda stuff
00:31karolherbst: (often due to nvidia installer leaving files behind)
00:31TimurTabi: stupid nvidia installer :-)
04:32fdobridge: <theevilskeleton> https://nouveau.freedesktop.org/CodeNames.html looks like this:
04:32fdobridge: <theevilskeleton> https://cdn.discordapp.com/attachments/1034184951790305330/1172030944237072384/image.png?ex=655ed5e0&is=654c60e0&hm=794020d085729b0ca523ce28ea469449025cf0388106ba8737a7f951f4c50bad&
04:32fdobridge: <theevilskeleton> https://cdn.discordapp.com/attachments/1034184951790305330/1172030996770730044/image.png?ex=655ed5ec&is=654c60ec&hm=dd02142afa8fb4ae659763f84dd6a5615dfed3d24d411033cb9b3fa6ba6dd0bf&
05:05fdobridge: <![NVK Whacker] Echo (she) 🇱🇹> So will Arch merge this soon?
05:40fdobridge: <benjaminl> opened a couple nak sm50 MRs against the new branch: https://gitlab.freedesktop.org/nouveau/mesa/-/merge_requests/254 https://gitlab.freedesktop.org/nouveau/mesa/-/merge_requests/255
05:42fdobridge: <benjaminl> both of them involve ALU ops that I implemented without `encode_alu`, but I'm not sure if the way I did it is how we would want to do it long-term
14:21fdobridge: <karolherbst🐧🦀> reading comments be like `My boot partition is also 500mb, and it's giving me a lot of trouble as it's barely enough for 2 kernels only. ` :ferrisUpsideDown:
14:22fdobridge: <mohamexiety> honestly yeah
14:22fdobridge: <mohamexiety> my 1GB boot is full already
14:22fdobridge: <mohamexiety> granted I did have to hop between multiple kernels a while ago but even when cleaned up it won't really be enough
14:23fdobridge: <karolherbst🐧🦀> yeah..
14:23fdobridge: <karolherbst🐧🦀> if you don't have FDE set up, don't bother with a `/boot` partition
14:23fdobridge: <mohamexiety> FDE?
14:23fdobridge: <karolherbst🐧🦀> full disk encryption
14:23fdobridge: <mohamexiety> oh
14:23fdobridge: <clangcat> Reminds me of the first time I did FDE
14:23fdobridge: <clangcat> I encrypted my boot
14:23fdobridge: <clangcat> XD
14:23fdobridge: <karolherbst🐧🦀> pain
14:24fdobridge: <karolherbst🐧🦀> but yeah.. on my desktop I don't have `/boot` partitions because it's pointless
14:24fdobridge: <clangcat> Well atleast it was a new install and I had all my stuff backed up
14:24fdobridge: <karolherbst🐧🦀> one `/boot/efi` and several `/` for various distributions
14:24fdobridge: <marysaka> 4 kernels is a bit of a mess to fit ~~especially when you forget to enable compression on kernel modules~~
14:24fdobridge: <mohamexiety> so how do things work without `/boot`
14:24fdobridge: <karolherbst🐧🦀> yeah...
14:25fdobridge: <karolherbst🐧🦀> if you build kernels yourself you are kinda screwed with the GSP stuff now :ferrisUpsideDown:
14:25fdobridge: <clangcat> Well you have /boot. it's just on your rootfs
14:25fdobridge: <marysaka> I just reduced dnf to only keep 2 kernels
14:25fdobridge: <karolherbst🐧🦀> pain
14:25fdobridge: <marysaka> and well enabled compression because yeah
14:25fdobridge: <clangcat> I mean my laptop has 12 kernels installed.
14:26fdobridge: <karolherbst🐧🦀> soon only 3
14:26fdobridge: <mohamexiety> I see
14:26fdobridge: <marysaka> I also could cheat and not integrate the GSP firmware in the initramfs, and let the nvidia rpmfusion package handle adding nouveau for me when the nvidia driver is missing
14:26fdobridge: <clangcat> It's the broken laptop I test as many different kernels as I could. XD
14:26fdobridge: <karolherbst🐧🦀> I like the idea of a "misc file" initramfs file shared across all installed kernels
14:26fdobridge: <karolherbst🐧🦀> I hope distributions will do something like that
14:27fdobridge: <karolherbst🐧🦀> but ...
14:27fdobridge: <karolherbst🐧🦀> what happens if the misc one breaks?
14:27fdobridge: <karolherbst🐧🦀> can't contain files which are critical for booting
14:27fdobridge: <karolherbst🐧🦀> but in such a case I'd also be okay with kms not showing up as it's already in an error state
14:28fdobridge: <clangcat> I mean my actual PC only has 2 so it's not a big deal to have two initramfs
14:29fdobridge: <clangcat> Especially when I use so little space overall
14:29fdobridge: <clangcat> https://cdn.discordapp.com/attachments/1034184951790305330/1172181109140901920/grafik.png?ex=655f61ba&is=654cecba&hm=c2f94021bb7a4114fe83a8d3f45bd34518d24e9fdfdb948dc8eb54b691074ced&
14:29fdobridge: <clangcat> I can afford the backup kernel
14:29fdobridge: <karolherbst🐧🦀> yeah..
14:29fdobridge: <karolherbst🐧🦀> that's fine
14:29fdobridge: <karolherbst🐧🦀> I advise to use FDE on every laptop with private data however :ferrisUpsideDown:
14:30fdobridge: <clangcat> I don't keep private data on here really.
14:30fdobridge: <karolherbst🐧🦀> like.. even the discord authentication token is private data 😛
14:31fdobridge: <karolherbst🐧🦀> or like cookie storage of your browser
14:33fdobridge: <clangcat> I don't store cookies. XD
14:33fdobridge: <karolherbst🐧🦀> so you login into every website every time you visit it?
14:34fdobridge: <clangcat> But yea I get your point. if you did store access tokens.
14:34fdobridge: <clangcat> Yup
14:34fdobridge: <karolherbst🐧🦀> okay
14:34fdobridge: <clangcat> I host a password manager on my local network.
14:34fdobridge: <clangcat> it fills in password and stuff for me.
14:35fdobridge: <karolherbst🐧🦀> ahh, fair
14:35fdobridge: <clangcat> For reference that password server is encrypted. For what I hope is clear reasons
14:35fdobridge: <karolherbst🐧🦀> sure 😄
14:54fdobridge: <karolherbst🐧🦀> cool, but it's hard to read 🙂 Might make sense to open an MR at some point, so everybody can browser, but no pressure, open one whenever you feel like you are read for proper review/comments/suggestions
14:54fdobridge: <theevilskeleton> Open in Firefox and zoom
14:54fdobridge: <theevilskeleton> Open in Firefox and zoom in (edited)
14:55fdobridge: <theevilskeleton> It looks like this on a 1440p display
14:55fdobridge: <theevilskeleton> https://cdn.discordapp.com/attachments/1034184951790305330/1172187819557535754/image.png?ex=655f67fa&is=654cf2fa&hm=b6389518751b24a15301f111c2e70a3e3d69fbca2c51438d49bbc8369d3866d0&
14:56fdobridge: <theevilskeleton> Open in Firefox and zoom in, it's probably gonna help (edited)
14:57fdobridge: <karolherbst🐧🦀> ohh right.. me dumb dumb :ferrisUpsideDown:
14:57fdobridge: <theevilskeleton> Blame Discord :p
14:57fdobridge: <karolherbst🐧🦀> good idea
14:58fdobridge: <karolherbst🐧🦀> but also.. classic gnome moments as the screenshot is of lower quality than your new one :ferrisUpsideDown:
14:58fdobridge: <karolherbst🐧🦀> ehh
14:58fdobridge: <karolherbst🐧🦀> both aren't really crisp..
14:58fdobridge: <theevilskeleton> I used Firefox's screenshot utility
14:59fdobridge: <karolherbst🐧🦀> mhh
14:59fdobridge: <karolherbst🐧🦀> that's with gnome
14:59fdobridge: <karolherbst🐧🦀> https://cdn.discordapp.com/attachments/1034184951790305330/1172188742979702864/image.png?ex=655f68d6&is=654cf3d6&hm=782626afb58ab7cd780233923331a80f16854679417e56a481877df14c3132d9&
15:00fdobridge: <theevilskeleton> It looks fine to me if I open the image in Firefox
15:00fdobridge: <theevilskeleton> Discord compresses for whatever reason
15:00fdobridge: <karolherbst🐧🦀> yeah dunno.. it looks worse than the native page.. whatever
15:00fdobridge: <theevilskeleton> I guess
15:02fdobridge: <theevilskeleton> I still need to work on mobile support, and then I'll open an MR
15:02fdobridge: <karolherbst🐧🦀> cool! :ferrisBongo:
15:02fdobridge: <theevilskeleton> It looks like this lol
15:02fdobridge: <theevilskeleton> https://cdn.discordapp.com/attachments/1034184951790305330/1172189523145400350/image.png?ex=655f6990&is=654cf490&hm=feb328b60538ecd0c36a659f9d8d8302b12a53606109a8122e9c9f65dd1cbee9&
15:03fdobridge: <karolherbst🐧🦀> ~~can't be worse than the current one~~
15:03fdobridge: <theevilskeleton> I'm pretty sure it is lol
15:03fdobridge: <theevilskeleton> Oh WHAT THE FUCK
15:03fdobridge: <theevilskeleton> Never mind lol
15:03fdobridge: <theevilskeleton> https://cdn.discordapp.com/attachments/1034184951790305330/1172189817057062942/image.png?ex=655f69d6&is=654cf4d6&hm=1a5b493fa2597d5380fa5403009b44e77938ec4e74dfae852344c2e25f148667&
15:03fdobridge: <theevilskeleton> Literally unreadable
15:04fdobridge: <karolherbst🐧🦀> yeah.. though if I open it on my phone it's perfect
15:05fdobridge: <theevilskeleton> Huh
15:05fdobridge: <karolherbst🐧🦀> huh what
15:05fdobridge: <karolherbst🐧🦀> the table size changes if I reload 😄
15:05fdobridge: <theevilskeleton> Cursed
15:06fdobridge: <karolherbst🐧🦀> https://cdn.discordapp.com/attachments/1034184951790305330/1172190378766643210/Screenshot_2023-11-09-16-05-53-15_ed7821ed99ee442dec4ede205e7971d6.jpg?ex=655f6a5c&is=654cf55c&hm=cda4a7952cf46a3446ee60e30bb750e13e82f0a3f88603ee87e886deaab0bf79&
15:06fdobridge: <karolherbst🐧🦀> https://cdn.discordapp.com/attachments/1034184951790305330/1172190379043475629/Screenshot_2023-11-09-16-05-47-45_ed7821ed99ee442dec4ede205e7971d6.jpg?ex=655f6a5c&is=654cf55c&hm=7849c91c8093adc41401e84851f4d96eb38bee8ecab1f9391e9dfbcace839e3e&
15:06fdobridge: <karolherbst🐧🦀> well.. "perfect"
15:06fdobridge: <karolherbst🐧🦀> at least it's readable
15:07fdobridge: <theevilskeleton> This is so cursed lol
15:10fdobridge: <karolherbst🐧🦀> yeah..
15:27fdobridge: <dwlsalmeida> ack
15:46fdobridge: <gfxstrand> Do we know what the 2nd predicate coming out of an XSetP does?
15:49fdobridge: <gfxstrand> CUDA docs seem to actually say. \o/
15:49fdobridge: <karolherbst🐧🦀> yeah.. just wanted to suggest it's probably the same as with `ISETP` no?
15:51fdobridge: <gfxstrand> Yeah.
15:51fdobridge: <gfxstrand> Ugh... I don't think we can implement a swap with `PSETP`
15:52fdobridge: <gfxstrand> We could with `PLOP3` but I don't think we can with `PSETP`
16:20HdkR: Still such a great instruction name
16:35fdobridge: <gfxstrand> Ugh... I think I'm going to totally rework the sm50 branch again. Sorry, folks.
16:36fdobridge: <gfxstrand> Ugh... I think I'm going to totally rework the sm50 branch again. Sorry, folks. Hopefully this is the last time. (edited)
16:36fdobridge: <gfxstrand> Existing MRs will probably mostly still work.
16:36fdobridge: <gfxstrand> @vdpafaor I'll be pulling in your LOP2 fixes implicitly, I think.
16:44fdobridge: <dwlsalmeida> lmk where to find the most up to date stuff
16:44fdobridge: <marysaka> no worries on my side... I got lost on envyhooks a bit :AkkoDerp:
16:44fdobridge: <dwlsalmeida> or if the branch remains the same
16:44fdobridge: <marysaka> Just pushed some changes for envyhooks that add an actual documentation and some extra fixes <https://gitlab.freedesktop.org/marysaka/envyhooks >(multi GPU support, fixed MME dumper hopefully, less spamy logs,...)
16:45fdobridge: <marysaka> Just pushed some changes for envyhooks that add an actual documentation and some extra fixes <https://gitlab.freedesktop.org/marysaka/envyhooks> (multi GPU support, fixed MME dumper hopefully, less spamy logs,...) (edited)
16:50fdobridge: <gfxstrand> It'll be the same branch
17:00fdobridge: <konstantinseurer> Is there a parser for the pushbuf/MME dumps?
17:02fdobridge: <marysaka> https://gitlab.freedesktop.org/marysaka/mesa/-/tree/nouveau/pushbuf-dump-tool
17:03fdobridge: <marysaka> I have some stuffs here but if you want to switch between Turing/Fermi style for MME macros it's a mess (because of isaspec needing some love)
17:04fdobridge: <konstantinseurer> Thanks, I'm just interested in Turing right now
17:05fdobridge: <marysaka> then it should be fine, I force disable the old MME decoder on some commit on that branch ^^
17:06fdobridge: <marysaka> to use the pushbuf tool you just do: ``nv_push_dump <file_name> TURING``
17:08fdobridge: <benjaminl> you can do it with the xor trick, but I don't think you can do it in a single instruction
17:10fdobridge: <benjaminl> _maybe_ using the second predicate dst, I don't really understand how that works
17:11fdobridge: <gfxstrand> Yeah, I'm pretty sure we can't with that.
17:11fdobridge: <gfxstrand> Real bummer, too.
17:13fdobridge: <benjaminl> oof
17:13fdobridge: <benjaminl> how often do swaps actually get emitted?
17:16fdobridge: <gfxstrand> More often than you'd like.
17:16fdobridge: <gfxstrand> I can do the same trick I do with GPRs, though, and reserve one.
17:16fdobridge: <gfxstrand> Then never
17:16fdobridge: <gfxstrand> Or we could go through a temp GPR
18:21fdobridge: <gfxstrand> @marysaka @vdpafaor @dwlsalmeida I just force-pushed nak/sm50 in nouveau/mesa for hopefully the last time in a while. I think I'm pretty happy with it at this point. Notable changes:
18:21fdobridge: <gfxstrand> 1. We're now taking advantage of the SM in the builder (thanks, Ben) and just emitting the right thing up-front
18:21fdobridge: <gfxstrand> 2. No more `OpPLop2`, just `OpPSetP` which is what old hardware actually has
18:21fdobridge: <gfxstrand> 3. I thoroughly reworked immediates. Take a look at `encode_fadd()` and `encode_isetp()` as model encode functions for future reworks.
18:22fdobridge: <gfxstrand> @marysaka @vdpafaor @dwlsalmeida I just force-pushed nak/sm50 in nouveau/mesa for hopefully the last time in a while. I think I'm pretty happy with it at this point. Notable changes:
18:22fdobridge: <gfxstrand> 1. We're now taking advantage of the SM in the builder (thanks, Ben) and just emitting the right thing up-front
18:22fdobridge: <gfxstrand> 2. No more `OpPLop2`, just `OpPSetP` which is what old hardware actually has
18:22fdobridge: <gfxstrand> 3. I thoroughly reworked immediates. Take a look at `encode_fadd()` and `encode_isetp()` as model encode functions for future reworks. (edited)
18:22fdobridge: <marysaka> great 👍
18:28fdobridge: <benjaminl> hmm, if we don't have `OpPLop2` anymore, we could drop `OpLop2` as well and just use `LOP3.LUT` on SM50
18:28fdobridge: <gfxstrand> Possibly?
18:28fdobridge: <gfxstrand> If we know how to encode `LOP3.LUT`, I don't see a reason why not
18:28fdobridge: <karolherbst🐧🦀> does it work the same on SM50?
18:28fdobridge: <gfxstrand> I suspect Kepler will want LOP2, though.
18:28fdobridge: <marysaka> I don't think it exist on SM50...?
18:29fdobridge: <karolherbst🐧🦀> I wonder when somebody starts to implement `LOP3.LUT` folding
18:29fdobridge: <gfxstrand> The other thing I'm unsure about with immediates is if there are any opcodes which want a `u20` immediate instead of `i20`.
18:29fdobridge: <gfxstrand> We already have `LOP3.LUT` folding
18:29fdobridge: <karolherbst🐧🦀> kinda yes
18:29fdobridge: <karolherbst🐧🦀> but it depends on the context
18:29fdobridge: <karolherbst🐧🦀> it's weird
18:29fdobridge: <benjaminl> it does, opcode `0x0200`
18:30fdobridge: <marysaka> huh I missed that one :aki_thonk:
18:30fdobridge: <benjaminl> don't know about the semantics though, just what nvdisasm will output
18:30fdobridge: <karolherbst🐧🦀> @gfxstrand indirects
18:30fdobridge: <karolherbst🐧🦀> they are 24 bits tho
18:30fdobridge: <marysaka> well I can figure that out if needed
18:30fdobridge: <karolherbst🐧🦀> but it changes on the indirect
18:30fdobridge: <gfxstrand> Oh, indirects are an entirely different things
18:30fdobridge: <karolherbst🐧🦀> `RZ + offset` is unsigned, where `Rx + offset` is signed
18:30fdobridge: <gfxstrand> Okay, that's funky.
18:31fdobridge: <karolherbst🐧🦀> it kinda makes sense tho 😄
18:31fdobridge: <karolherbst🐧🦀> but yeah
18:31fdobridge: <gfxstrand> It does but it's funky
18:31fdobridge: <gfxstrand> I was more concerned with random instructions like LOP2 which might just decide they want an unsigned immediate
18:32fdobridge: <karolherbst🐧🦀> I think if it can't be derived from the context they usually have flags for it
18:32fdobridge: <karolherbst🐧🦀> but I can look it up in my docs
18:33fdobridge: <gfxstrand> Yeah, like IMul has signed and unsigned bits for each source. Do those affect immediates? 🤷🏻♀️
18:33fdobridge: <karolherbst🐧🦀> at least `LOP3` is always unsigned
18:34fdobridge: <gfxstrand> womp womp
18:34fdobridge: <karolherbst🐧🦀> I'd assume so
18:34fdobridge: <gfxstrand> This is where we really need to get a unit test framework upstreamed so we can fuzz these things to death.
18:34fdobridge: <karolherbst🐧🦀> yeah
18:34fdobridge: <karolherbst🐧🦀> better to be sure here
18:35fdobridge: <karolherbst🐧🦀> ohh
18:35fdobridge: <karolherbst🐧🦀> do you know that cb offsets roll over to the next index?
18:36fdobridge: <karolherbst🐧🦀> though I think that only works with indirects
18:36fdobridge: <karolherbst🐧🦀> but yeah.. the upper bits are added to the index
18:36fdobridge: <gfxstrand> Yes, I'm aware
18:36fdobridge: <karolherbst🐧🦀> :ferrisUpsideDown:
18:36fdobridge: <karolherbst🐧🦀> okay
18:36fdobridge: <benjaminl> hmm, any idea what bit 56 on `LOP32I` does? in nvdisasm, it toggles a `.INV` modifier on the immediate: `LOP32I.AND R0, R0, 0x0.INV`
18:36fdobridge: <karolherbst🐧🦀> allows for very very funky optimizations you never need
18:37fdobridge: <benjaminl> it would be a little weird if it's just bnot, since you could always fold that into a 32-bit immediate
18:37fdobridge: <gfxstrand> Probably inverts the immediate. Not that that's very useful if you have a 32-bit immediate...
18:37fdobridge: <gfxstrand> I looked sideways at that one, too.
18:37fdobridge: <karolherbst🐧🦀> yeah...
18:37fdobridge: <karolherbst🐧🦀> they dropped the `.INV` naming so I can't verify
18:37fdobridge: <karolherbst🐧🦀> but we have `~` modifiers
19:26TimurTabi: airlied: I have an idea for the initrd problem with GSP-RM. Have the driver load without GSP-RM support on early boot, and then reload the driver on full boot when /lib/modules is available. You don't need high performance graphics during early boot.
19:28karolherbst: TimurTabi: we do need GSP for kms though, no?
19:28karolherbst: kms is used to activate more displays and stuff
19:29TimurTabi: That, I don't know.
19:29karolherbst: with ampere we added a hack temporarily to enable display support without firmware
19:29karolherbst: but we were restricted to one context
19:29karolherbst: and given that GSP _also_ handles display, that would basically mean we'd maintain a display path only for pre GSP loads
19:30karolherbst: which I suspect will remain very buggy
19:30TimurTabi: On Turing and Ampere, apparently GSP-RM is not needed for normal functionality.
19:30TimurTabi: At the very least, you could boot non-GSP on Turing and that would save 30MB
19:30karolherbst: sure.. but then we'd have to support migrating over to GSP on a running system
19:30karolherbst: and it's not a solution for ada+
19:30karolherbst: kinda need something working everywhere
19:31karolherbst: okay.. we save 30MB now, but in the future we might have 200, 300MB of firmware in total anyway
19:31TimurTabi: Ben said he could get Ada working without GSP-RM, he just didn't didn't bother.
19:31karolherbst: yeah.. because that means we'd have to support kms on non GSP nouveau
19:31karolherbst: so essentially maintain two code paths for kms
19:32TimurTabi: I guess it all depends how badly you want to avoid 60MB bloat on initrd.
19:32karolherbst: well.. I tell distributions to not ship the same firmware multiple times
19:32karolherbst: but they do it regardless
19:33karolherbst: the issue isn't that the file exists once, it exists per installed kernel
19:33TimurTabi: Frankly, I'm surprised the kernel hasn't figure out a way to mount hard drives before loading the video drivers.
19:33karolherbst: ohh, we do
19:33karolherbst: but we also have full disk encryption
19:33karolherbst: and a pw prompt you want to see on displays
19:33TimurTabi: can't you do that with normal VGA emulation?
19:33karolherbst: no
19:33karolherbst: the firmware won't bring up every display
19:33karolherbst: DP-MST barely works
19:34karolherbst: displays on discrete GPUs not at all
19:34karolherbst: some have "always closed" laptop setups
19:34karolherbst: and I don't see why we would make it a pain for some users, just because distributions don't get their stuff together
19:35karolherbst: there is the idea of splitting firmware files in their own initramfs shared across all kernels, so you don't have N x 60 MB, but only 60MB
19:35karolherbst: we can optimize further by culling old and non needed firmware files
19:35karolherbst: could even just ship the files you need for your hardware
19:36karolherbst: btrfs subvolumes would also just solve this issue
19:36karolherbst: we already have all the solutions here, just....
19:37karolherbst: that 500MB/1G sized /boot/ is a ticking time-bomb should have been known to everybody...
19:53HdkR: dedupe would also be a nice solution :)
19:53HdkR: Sure, ship as many copies as you want, the volume is going to get a dedupe run over it anyway
19:55karolherbst: well.. the issue is, that initramfs compresses stuff
19:55karolherbst: and then dedup starts to not do much anymore
19:56karolherbst: my take is just, that including the same files in each initramfs was a bad idea from the start
20:07HdkR: ah, okay that's rough
20:25fdobridge: <benjaminl> are multiple initramfs supported, or would that need to be a separate addition?
22:48fdobridge: <phomes_> there is both a graphics and a rust dev room at fosdem this year
23:58fdobridge: <karolherbst🐧🦀> I submitted a talk for the rust dev room last year, they didn't accepted it, so I don't like them anymore :ferrisUpsideDown: :ferrisKnife: