Skip to content

Common issues (and fixes)

Curi0 edited this page Oct 4, 2023 · 63 revisions

Resizable BAR doesn't work on NVIDIA RTX 30 series GPU

A VBIOS update is required to support Resizable BAR. NVIDIA provides instructions on how to update it GeForce RTX 30 Series Performance Accelerates With Resizable BAR Support.

Games crash after enabling Resizable BAR

Increase pagefile size.

Driver shows Resizable BAR disabled while GPU-Z shows it working

Reinstall driver. Typically using DDU isn't required.

I have an AMD GPU and disabling CSM makes my display go blank till OS boots

Restore original VBIOS.

In some rare cases a VBIOS GOP update may be needed which in this case you can follow the guide AMD and Nvidia GOP update (No requests, DIY). Use the updated version by Sylar76. If you have a modified VBIOS you will need to update it with "magic GOP" instead of usual GOP. "Magic GOP" is incompatible with Secure Boot unless Image Execution Policy -> Option ROM is set to Always Execute. Alternatively you can add your modified VBIOS to the allowed hashes.

How do I enable Resizable BAR on unsupported AMD GPUs ?

You can use Nimez drivers and select Enable with ASIC in NzSetupCli -> Tweak Toolkit Management -> PCI-E Resizable Bar Service Mode.

If you don't want to use modded drivers you can apply the following .reg file (reboot after applying).

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000]
"KMD_RebarControlMode"=dword:00000001
"KMD_RebarControlSupport"=dword:00000001
"KMD_EnableReBarForLegacyASIC"=dword:00000001

If you have used multiple GPUs or have an iGPU in your PC your GPU registry path may be different instead of 0000, in that case you will need to figure out the registry path of your active GPU

Unsupported 4GB cards only work when BAR size is set to 2GB or smaller. 4GB BAR causes graphics APIs (DX/Vulkan/OpenGL) to not work on unsupported 4GB cards. Even with 1 or 2GB BAR you might still have some issues in certain games with 4GB cards.

RX 5600 XT doesn't resume from sleep on Windows

Set BAR size to 1GB or lower. This issue is due to a workaround used to get full 8GB BAR on the faulty VBIOS implementation.

ReBarUEFI can be used to enable full 8GB BAR with RX 5600 XT even on motherboards officially supporting Resizable BAR. @FusionDragon was able to use it on a Gigabyte Aorus B550M Pro-P (rev 1.0) without any issues besides broken sleep.

Windows won't boot after disabling CSM

You need to convert your legacy MBR installation to UEFI GPT.

Do I need a BAR size larger than VRAM ?

Not sure why this question often is asked but you only need a BAR size that fits all your VRAM. So 8GB is enough for 8GB VRAM and 16GB is enough for 12GB VRAM. GPUs also don't typically support BARs more than what's needed to fit all their VRAM

Stutters on Ryzen system

See https://gitlab.freedesktop.org/drm/amd/-/issues/1864. It's a firmware bug currently there is no fix for it.

You can also try setting Above 4GB MMIO Limit to 512GB (39-bit) to see if it helps. This may also fix boot issues with macOS.

LGA1151 system won't POST or displays graphical corruption even after patching

See #4, the workaround is just use a BAR size of 4GB or larger.

LGA1151 system won't POST with 4GB+ BAR even after patching

Connect monitor to iGPU, for some reason the BIOS doesn't detect displays connected to 64-bit BAR GPU and won't POST. Once OS boots the GPU will start outputting so you can just use a dummy connector on the iGPU too.

No video output during boot before OS loads

Try disabling the Above 4G Decoding Patch option, it might be hidden which can still be modified by following instructions in Enabling hidden 4G decoding. This is also related to #4

No POST, overclocking not working, etc

This is caused by corruption from using UEFITool which happens on some firmwares. Redo the guide but use MMTool instead for all steps involving adding/replacing modules so you would use the pad file workaround for all patched modules.

Can't boot Windows or GPU gives error in Device Manager

Make sure to following DSDT Patching guide

ReBarState says Failed to write ReBarState UEFI variable

Make sure that ReBarState is being run as administrator/root, if it still doesn't work it's caused by the firmware blocking NVRAM variable writes. Make sure you have applied the NvramSmi or NvramSmiDxe patches with UEFIPatch. If none get applied it may be possible to replace it with a patched one from another BIOS such as ASUS Z97-PRO which was done on a HP Pavilion 550-153w to get NVRAM working.

Can I use this without 4G Decoding ?

Yes but you will likely be limited to 1GB BAR size. You can reduce the TOLUD option in your BIOS to free up more space for PCI BARs, this might make even 2GB BAR work but that's the largest you can get without 4G Decoding.

If you use Linux you can follow DSDT Patching | DSDT broken 4G Decoding fix (Haswell and up) to get working full rebar without 4G decoding, this doesn't even require flashing as you can load a custom DSDT. May also work on Windows for compute GPUs

Some games may have issues when using BAR smaller than VRAM especially on AMD GPUs

Is Memory Remap in the same as 4G Decoding ?

It isn't and you should leave Memory Remap at the default setting.

Can GPU-Z reporting of 4G decode or CSM be trusted ?

GPU-Z often reports these values incorrectly so no they shouldn't.

Stutters or other issues on HEDT system after enabling 4G decoding

This can happen when the allocated BAR address of the GPU is higher than recommended. Set MMIOH Base to 256GB or the closest value above that you system supports (eg 1TB), you can try higher if you need to due to installed RAM amount. This can also fix boot issues with macOS.

System won't boot with large VRAM (>16GB) or multi-GPU

On HEDT such as X99 increase MMIOH Size, this is found in IntelRCSetup if your BIOS doesn't expose the menu. On Ivy Bridge or Haswell you can try using less than 30GB of RAM, this should allow 16GB BAR to function. On Skylake with >32GB BAR you need to manually patch the BIOS AddMemorySpace call using a disassembler (only do if you know about this stuff) because there is currently no patch for it.

Using 32GB or larger BAR on LGA1155/1150

UEFI PCI allocation works top to bottom which leaves no 32GB aligned space available with 4G decoding. It's however possible to use less than 30GB RAM with 4G decoding off to get 32GB BAR working on LGA1155, you need to modify DSDT so 64-bit region is always exposed allowing the OS to allocate 32GB BAR in the empty 64-bit region with 4G decoding off and UEFIPatch not applied. Having UEFIPatch applied causes the firmware to attempt allocation of the 32GB BAR and not boot.

This won't work on consumer GPUs due to them showing up as a VGA device and firmware will get stuck if it can't allocate it, this may be possible to fix by writing a custom PCI allocator

It's not possible to use 32GB BAR + 32GB RAM or 64GB BAR on LGA1155 due to 36-bit (64GB) addressing limitations. LGA1150 may work for this with modified DSDT.

Clone this wiki locally