I have the same problem described 3 years ago in this topic:
Though my laptop doesn’t have an Nvidia GPU, only intel integrated graphics.
Every keypress (arrow-keys & enter) takes a few seconds to do anything and a screen redraw takes a few extra seconds where I can watch it slowly drawing from the top to the bottom.
I’ve tried commenting out GRUB_GFXMODE=auto and instead adding the line GRUB_GFXMODE=1280x800 below (and also did a sudo update-grub afterwards) but my next reboot didn’t look or feel any different.
Though it’s not only grub that’s super slow, also the LUKS full disk encryption unlocking step before grub takes something like 40 seconds instead of the 10 seconds that it should take. This step also has a much too huge resolution and draws tiny text.
My laptop screen has a native resolution 3200x2000 pixels, and I guess that’s what it’s using.
What’s you iteration count ? sudo cryptsetup luksDump /dev/<partition>
By default, on my machine, it was about 5 000 000 and the decryption of /boot took also 40 seconds (with a core i5 12400).
If you want to change the interation count, i advice you to specify the key slot although it’s not specified in Arch Wiki.
sudo cryptsetup luksChangeKey --pbkdf-force-iterations <iteration count : you can try 1 000 000 or less depending your cpu> --key-slot <number> /dev/<partition>
I don’t believe i5-12400 is newer or should be more powerful than my i7-13700H:
this says that i5-12400 is from Q1 2022, while i7-13700H from Q1 2023. So one year newer. And I thought it should be i3<i5<i7<i9 at least when they are of a similar age.
I read somewhere that that’s the target that the luks-whole-system-encryption installers aim for usually, could be wrong, don’t have any refrences. sorry.
Interestingly, using this created a new key in slot 2 and removed slot 0. Since I don’t know what key 1 was, I removed it with sudo cryptsetup -v luksKillSlot /dev/nvme0n1p5 1.
Reducing those iterations definitely improved my unlocking speed, but the GRUB menu is still extremely slow (~2 seconds to react to a button press, ~9 seconds to refresh the screen whole screen).
Can somebody help me with grub performance? The tip to reduce the resolution didn’t work, it still shows up with that huge resolution that it already is in from the luks unlocking screen.
Regarding grub press button performance, just use a search engine, there are a lot of tips. Take the time to test them and do not expect people to spoon feeding you.