Slow output in the bootloader when using AMD GPUs (UEFI)

Hello,

My PC has two GPUs:
  1. AMD Radeon RX 6400
  2. NVIDIA GeForce RTX 3080

This is how the OS boots A/B:



As you can see, with (1), the output is noticeably slower than with (2). Things get much worse at higher resolutions, so to speed it up I have to use efi_max_resolution="480p". In the past, I observed exactly the same with AMD Radeon RX 580.

Ideally, I'd like to use efi_max_resolution="1080p" with (1) enjoying the same boot time as with (2).

Any thoughts?
 
Yes I experience the same with my AMD powered minipc and my Intel powered laptop. My NVIDIA powered desktop is as fast as lightning.

I put
Code:
exec="gop set 0"
exec="gop off"

at the top of my /boot/loader.conf on all my machines. This switches the loader from using a graphical framebuffer to using the built-in terminal output method ("Simple Text Output Protocol") (Is-There-a-New-Loader-in-FreeBSD-13.0.pdf). This gives you the "old" text-based loader, which I pretty much prefer over the graphical one and which is also much faster at displaying.

I have to set exec="gop set 0" (which sets the highest resoultion) before exec="gop off", because apparently doing it afterwards somehow enables the graphical framebuffer again. This might be machine-dependend, bios-dependend or bootloader-dependend behaviour, so YMMV.
 
Yes I experience the same with my AMD powered minipc and my Intel powered laptop. My NVIDIA powered desktop is as fast as lightning.

I put
Code:
exec="gop set 0"
exec="gop off"

at the top of my /boot/loader.conf on all my machines. This switches the loader from using a graphical framebuffer to using the built-in terminal output method ("Simple Text Output Protocol") (Is-There-a-New-Loader-in-FreeBSD-13.0.pdf). This gives you the "old" text-based loader, which I pretty much prefer over the graphical one and which is also much faster at displaying.

I have to set exec="gop set 0" (which sets the highest resoultion) before exec="gop off", because apparently doing it afterwards somehow enables the graphical framebuffer again. This might be machine-dependend, bios-dependend or bootloader-dependend behaviour, so YMMV.
Thank you. This did some effect, but, unfortunately, it's hardly better:


If you ask me, I consider this a bug. I feel the need to fix the bootloader somehow so it doesn't slow down on Intel and AMD GPUs. I'd like to point out that after the bootloader, but before (and after, of course) the VT: Replacing driver "efifb" with new "drmfb" moment, the output isn't slow even at 1080p.
 
HP ZBook 17 G2: faster with hybrid graphics enabled. Speed thanks to Intel HD Graphics 4600, I guess.

Slower with NVIDIA Quadro K1100M (GK107GLM). It's a minor annoyance when, for example, there's a slow response after each press of the 6 key (four of five presses to get the GENERIC-NODEBUG kernel with FreeBSD-CURRENT).

I go with the annoyance because (off-topic) I can't use multiple displays with hybrid graphics enabled.
 
14-STABLE has the fix, too. If you, like me, want to get it before 14.2-RELEASE, I believe it's safe enough to just grab the loader.efi from a snapshot. Works for me.
 
14-STABLE has the fix, too.
Somehow, this is no longer true.

On October 23, when I wrote that, I downloaded a snapshot of 14-STABLE and took the loader.efi from there. I used it to this day until I rewrote it with the one from 14.2-RELEASE. I found the new loader slow again. And the latest 14-STABLE snapshot now also has a slow loader. The one from 15-CURRENT is good, still.

I'd like to figure this out. The last commit was on October 8: https://github.com/freebsd/freebsd-src/commits/releng/14.2/stand

Wrong place to look? Can somebody help?
 
Somehow, this is no longer true.

On October 23, when I wrote that, I downloaded a snapshot of 14-STABLE and took the loader.efi from there. I used it to this day until I rewrote it with the one from 14.2-RELEASE. I found the new loader slow again. And the latest 14-STABLE snapshot now also has a slow loader. The one from 15-CURRENT is good, still.

I'd like to figure this out. The last commit was on October 8th: https://github.com/freebsd/freebsd-src/commits/releng/14.2/stand

Wrong place to look? Can somebody help?
I just tried loader.efi from 15-CURRENT and it is loading and i can't even see the stage that it tries to load itself. It just faces with me fully loaded. I'd like to see that fix in 14.2-RELEASE. It is way better now. Thanks for catching this bug. I hope we can found out what is the issue.
 
The 6400 series costs us about 175 US dollars. The series 3080 is about 455 US dollars. Am I right?
You buy video cards for fortunes and you still have problems with speed? I didn't even notice that I was missing something on my Kabini [Radeon HD 8400 / R3 Series].
I'm just wondering - is this a real "bug" of the OS or a youth trend of "squeezing out speeds"? With your video chips, everything should fly into space.

Thanks for the topic - I'm really surprised by such features.
And on the topic: why do you need 1080p? What is the practical point of such "overclocking" of the bootloader?
 
The 6400 series costs us about 175 US dollars. The series 3080 is about 455 US dollars. Am I right?
It seems that an average RTX 3080 costs a couple of hundred more.

I didn't even notice that I was missing something on my Kabini [Radeon HD 8400 / R3 Series].
Perhaps because you do not have something to compare it with. I would not try to figure it out either and would silently be unhappy (because this was not the case on Linux, which I switched from) every time I (re)boot my PC, if I did not know that this is abnormal.

You buy video cards for fortunes and you still have problems with speed?
I'm just wondering - is this a real "bug" of the OS or a youth trend of "squeezing out speeds"? With your video chips, everything should fly into space.
The price (power) of the GPUs have absolutely nothing to do with the problem. I have listed the model names (by the way, incomplete) just in case. Apparently, the only thing that matters here is whose chip is in use: AMD/Intel or NVIDIA. It is possible that if the card is older, like yours, the problem will not appear.

I believe that the bootloader should behave equally well on absolutely any GPU, even the very oldest ones supported. At the moment, there is a bug, and it was fixed somewhere in 15-CURRENT.

Thanks for the topic - I'm really surprised by such features.
But it is not about any features! :)

And on the topic: why do you need 1080p? What is the practical point of such "overclocking" of the bootloader?
I want things to run at my screen's native resolution. There is no obstacle to it. We are not talking about 4k, where it would be really questionable unless scaling is used.

I do not want to watch blurry, stretched out letters slowly (and I mean, really slowly, as you can see in my videos) appearing one after another.

I would not call this "overclocking".
 
Back
Top