ReBarUEFI README

The project's README from github.com/xCuri0/ReBarUEFI. As one markdown file: README.md.

ReBarUEFI

GitHub Actions ReBarDxe GitHub Actions ReBarState Downloads

A UEFI DXE driver to enable Resizable BAR on systems which don't support it officially. This provides performance benefits and is even required for Intel Arc GPUs to function optimally.

screenshot showing cpu-z, gpu-z and amd software

If using an NVIDIA Turing GPU (20 or 16 series) see NvStrapsReBar for enabling Resizable BAR on it.

Requirements

Usage

Follow the wiki guide Adding FFS module and continue through the steps. It covers adding the module and the additional modifications needed if required.

Once running the modified firmware make sure that 4G decoding is enabled and CSM is off.

Next run ReBarState which can be found in Releases (if you're on Linux build with CMake) and set the Resizable BAR size. In most cases you should be able to use 32 (unlimited) without issues but you might need to use a smaller BAR size if 32 doesn't work

If Resizable BAR works for you reply to List of working motherboards so I can add it to the list. Most firmware will accept unsigned/patched modules with Secure Boot on so you won't have any problems running certain games.

If you have any issues after enabling Resizable BAR see Common Issues (and fixes)

How it works

The module is added to the UEFI firmware's DXE volume so it gets executed on every boot. The ReBarDxe module replaces the function PreprocessController of PciHostBridgeResourceAllocationProtocol with a function that checks for Resizable BAR capability and then sets it to the size from the ReBarState NVRAM variable after running the original function.

The new PreprocessController function later gets called during PCI enumeration by the PciBus module which will detect the new BAR size and allocate it accordingly.

AliExpress X99 Tutorial by Miyconst

Resizable BAR on LGA 2011-3 X99

Instructions for applying UEFIPatch not included as it isn't required for these X99 motherboards. You can follow them below.

UEFI Patching

Most UEFI firmwares have problems handling 64-bit BARs so several patches were created to fix these issues. You can use UEFIPatch to apply these patches located in the UEFIPatch folder. See wiki page Using UEFIPatch for more information on using UEFIPatch. Make sure to check that pad files aren't changed and if they are use the workaround

Working patches

Build

Use the provided buildffs.py script after cloning inside an edk2 tree to build the DXE driver. ReBarState can be built on Windows or Linux using CMake. See wiki page Building for more information.

FAQ

Will it work on a PCIe Gen2 system ?

Previously it was thought that it won't work on PCIe Gen2 systems but one user had it work with an i5 2500k.

Can I use Resizable BAR on my system without modifying BIOS ?

You can use Linux with 4G Decoding on, recent versions will automatically resize and allocate GPU BARs. If your BIOS doesn't have the 4G decoding option (make sure to check hidden) or DSDT is faulty you can then follow the Arch wiki guide for DSDT modification using modifications from DSDT Patching and boot with pci=realloc in your kernel command line. Currently there is no known method to get it on Windows without BIOS modification

I set an unsupported BAR size and my system won't boot

Clear CMOS and Resizable BAR should be disabled. In some cases it may be necessary to remove the CMOS battery for Resizable BAR to disable.

Will less than optimal BAR sizes still give a performance increase ?

On my system with an i5 3470 and Sapphire Nitro+ RX 580 8GB with Resizable BAR enabled in driver I get an upto 12% FPS increase with 2GB BAR size.

Credit

ReBarUEFI (xCuri0/ReBarUEFI)

Searching Database…

Что это такое?ReBarUEFI — это UEFI DXE-драйвер, который включает Resizable BAR на системах, где прошивка официально его не поддерживает. Бесплатный прирост производительности, заметнее всего в играх.
Так я устанавливаю это внутри Windows или это часть самого BIOS?Он живёт в прошивке UEFI: модуль добавляется в DXE-том и запускается при каждой загрузке. Затем небольшая вспомогательная утилита ReBarState (её можно собрать под Windows или Linux) задаёт размер BAR через переменную NVRAM.
Как мне установить это на свою систему?Следуйте инструкции в wiki «Adding FFS module», чтобы внедрить драйвер в прошивку, убедитесь, что включена опция 4G decoding, а CSM выключен, затем запустите ReBarState из раздела Releases (или соберите его с помощью CMake) и задайте размер BAR.
Моему железу нужно что-то особенное, чтобы это заработало?Должна быть включена опция 4G Decoding — без неё BAR ограничен 1 ГБ (иногда 512 МБ). Поддержка больших BAR на уровне BIOS тоже помогает, но патчи UEFIPatch устраняют большинство проблем в этой части.
Что будет, если я выберу размер BAR, который моя система не потянет?Система не загрузится. После сброса CMOS Resizable BAR окажется отключён — в упорных случаях, чтобы всё сбросилось, придётся физически вытащить батарейку CMOS.
Можно ли получить Resizable BAR вообще без прошивки модифицированного BIOS?В Linux при включённой опции 4G Decoding свежие версии ядра сами изменяют размер и размещают BAR видеокарты. В Windows на данный момент известного способа без модификации BIOS нет.
Сколько FPS это реально добавляет?Автор замерил прирост до 12% FPS с BAR размером 2 ГБ на i5-3470 с Sapphire Nitro+ RX 580 8GB, и даже неидеальные размеры BAR всё равно давали прибавку.
У меня видеокарта NVIDIA Turing — мне это тоже подходит?Только этим драйвером — нет: для GPU Turing (серии RTX 20 / GTX 16) автор отсылает к отдельному проекту NvStrapsReBar, который включает Resizable BAR на них.
У меня старый ПК — есть шанс, что это заработает на плате с PCIe Gen2?Как ни странно, да: раньше считалось невозможным, но один пользователь запустил это на системе с i5-2500k. Патчи UEFIPatch также покрывают ограничения MMIO на поколениях от Sandy Bridge до Coffee Lake.
Не заблокирует ли Secure Boot модифицированную прошивку?Обычно нет — большинство прошивок принимает неподписанные или изменённые модули даже при включённом Secure Boot, так что с запуском определённых игр проблем не будет.
Creator
xCuri0
Size
0.9 MB
Stars
2.6K
Age
4y
Commits · 90 Days