-
Notifications
You must be signed in to change notification settings - Fork 68
Common issues (and fixes)
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.
Increase pagefile size.
Reinstall driver. Typically using DDU isn't required.
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.
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.
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.
You need to convert your legacy MBR installation to UEFI GPT.
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
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.
See #4, the workaround is just use a BAR size of 4GB or larger.
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.
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
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.
Make sure to following DSDT Patching guide
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.
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
It isn't and you should leave Memory Remap at the default setting.
GPU-Z often reports these values incorrectly so no they shouldn't.
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.
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.
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.