Workaround helps improve gaming performance on outdated Intel CPUs — Resizable Bar UEFI mod works with CPUs as old as Sandy Bridge
Resizable Bar can be accessed by systems dating back to 2011, but it requires a mod.
Resizable Bar, or Smart Access Memory (as AMD likes to call it), has been widely accessible since AMD made it famous with the introduction of its Ryzen 5000 series CPUs and RX 6000 series GPUs back in 2020. However, motherboard manufacturers have neglected to bring the performance-enhancing feature to older systems before 2020, leaving many capable gaming platforms hanging out to dry. This issue has been rectified by modder xCuri0 on GitHub, who has published a Resizabe Bar mod that gives older systems access to Resizable Bar.
The mod modifies the UEFI firmware on older motherboards to add Resizable Bar compatibility. It does this by replacing the PreprocessController of the PciHostBridgeResourceAllocationProtocol function in the UEFI with a new function that checks for Resizable Bar compatibility and then activates it if it is compatible. The ReBar size is set by adding a particular module to the DXE driver within the UEFI firmware.
The mod has been reported to work on systems as old as the Sandy Bridge era, which arrived in 2011. Resizable Bar has technically existed since PCIe Gen 2.0 first came out. Still, it never caught the attention of Intel, AMD, or any of their motherboard partners until AMD realized its potential years later and released it in the form of Smart Access Memory in 2020.
Resizable Bar changes the 'aperture' of the PCIe bus to allow more significant data transfers of over 256MB. In layperson's terms, you can think of Resizable Bar as boxes on a conveyor belt. Without ReBar, the boxes are limited in size to specific dimensions, but with it enabled, the box size can be increased substantially, boosting throughput.
Modern GPUs benefit heavily from Resizable Bar in the right scenarios. It's not uncommon for some Radeon GPUs to gain anywhere between 5% - 24% more performance in Resizable Bar in specific titles. But on the flip side, it can also degrade performance. This is why AMD and Nvidia have Resizable Bar profiles for each game and only enable them when appropriate. Both GPU manufacturers can also set the specific size of the Resizable Bar to squeeze out as much performance as possible.
With this mod, older systems can have an opportunity to get this extra performance that can only be attained with Resizable Bar. This is particularly useful for users who want to upgrade their old machines with a brand-new GPU that supports Resizable Bar. Some GPUs, like Intel's Arc A-series GPUs, are so sensitive to Resizable Bar that Intel requires it to be enabled to get good performance.
Stay On the Cutting Edge: Get the Tom's Hardware Newsletter
Get Tom's Hardware's best news and in-depth reviews, straight to your inbox.
Aaron Klotz is a contributing writer for Tom’s Hardware, covering news related to computer hardware such as CPUs, and graphics cards.
-
bit_user on the flip side, it can also degrade performance.
Can anyone explain this?
Does it only apply to older titles that might've had specific optimizations based on a smaller BAR size? -
fball922
My guess is you're defining the data package size per package, so if your game is sending smaller packages down the line, you're waisting the rest of that "spot" on the conveyor belt. Games optimized to send smaller chunks of data at a time (or can't scale) will be less efficient.bit_user said:Can anyone explain this?
Does it only apply to older titles that might've had specific optimizations based on a smaller BAR size? -
bit_user
Thanks, but I was hoping someone might be more familiar with the details.fball922 said:My guess is ...
Nvidia describes it like this:
"With the ever-growing size of modern game assets, this results in a lot of transfers. Using Resizable BAR, assets can instead be requested as-needed and sent in full, so the CPU can efficiently access the entire frame buffer. And if multiple requests are made, transfers can occur concurrently, rather than queuing."
https://www.nvidia.com/en-us/geforce/news/geforce-rtx-30-series-resizable-bar-support/
Sending assets in full? No queuing? Sounds like a win! I just want to understand why there's a downside, because I'm not seeing it.
Even if a game already "chunks" data to send in multiple transactions, I still don't see why that would perform worse with a larger aperture. Could it be that some games try to reduce the number of transfers by batching assets until they fit the maximum size, which is now larger and means waiting longer to send over the bundles?
Or, maybe the game is trying to send things preemptively, in order to keep the transfer queue full. Now that transfers happen concurrently and there is no queue, that backfires and later transfers slow down earlier ones? -
Varsaggo
Hey got a question I have a Rx 2060 and in my bios it has the option to turn on resizable bar ( Asus Prime X299 Deluxe II Mobo) I just figured it wouldn't work because the driver level support is not there in the rtx2060 from Nvidia or am I mistaken is this a hardware only enable in bios and it should work there eis bo need for software driver support ? What about Auto 4G Decoding setting with resizable bar in the bios ?on or off? What does it exactly do? Ok I noticed I can either set resizable bar to disable or auto so it's was on auto and I don't know how I would tell if it was activated when Windows booted?fball922 said:My guess is you're defining the data package size per package, so if your game is sending smaller packages down the line, you're waisting the rest of that "spot" on the conveyor belt. Games optimized to send smaller chunks of data at a time (or can't scale) will be less efficient. -
bit_user
According to the Nvidia link, in my above post, it seems you need a RTX 3000 or newer.Varsaggo said:I have a Rx 2060 and in my bios it has the option to turn on resizable bar ( Asus Prime X299 Deluxe II Mobo) I just figured it wouldn't work because the driver level support is not there in the rtx2060 from Nvidia or am I mistaken
: (
If you upgrade your GPU to a model that supports Resizable BAR, then this says you should enable "Above 4G Decoding" (or set it to "auto", if there's no "enabled" option):Varsaggo said:What about Auto 4G Decoding setting with resizable bar in the bios ?on or off?
https://www.intel.com/content/www/us/en/support/articles/000090831/graphics.html
Good question. I'd imagine there must be some utility program which would tell you, but I don't know.Varsaggo said:I don't know how I would tell if it was activated when Windows booted? -
rluker5
Some games with Nvidia and Intel get worse performance with Rebar enabled.bit_user said:Can anyone explain this?
Does it only apply to older titles that might've had specific optimizations based on a smaller BAR size?
It seems to work much better with AMD CPU/GPU pairings. And of course Arc needs it for gaming. Not so much for basic display, but gaming can get really bad without it enabled. -
setx
I have no idea what the author is talking about, but I've seen serious performance degradation in my OpenGL program when BAR was set to cover the whole GPU memory (surprisingly, just increasing it had no negative impact).bit_user said:Can anyone explain this?
Does it only apply to older titles that might've had specific optimizations based on a smaller BAR size?
It was a driver bug though and was fixed in newer versions after my report.
Given how modern GPU drivers are full of crutches for specific games, I wouldn't be surprised it any significant change like ReBAR could result in performance degradation due to insufficient testing. -
thestryker
I could never figure it out either as it didn't make any sense to me that the performance would be lower. It happened on both company's cards seemingly randomly which people hypothesized was the reason for nvidia whitelisting.bit_user said:Can anyone explain this?
Does it only apply to older titles that might've had specific optimizations based on a smaller BAR size?
The original coverage from HUB/Techspot and TPU:
https://www.techspot.com/article/2178-amd-smart-access-memory/https://www.techpowerup.com/review/nvidia-pci-express-resizable-bar-performance-test/ -
atomicWAR Nice to hear. I been pondering turning my old E5 1680V2 on a socket 2011 Rampage III into a emulation rig but also light Windows 10 gaming PC for my nephew. Maybe I'll nice be and throw in my old RTX 2080Ti and he should be able to play even the newest titles at up to 60-90fps.Reply
I benched that setup before it retired last year and it does surprisingly well at 4K. FC6 hit 110 FPS for example at 4K native with some lowered setting but mostly high save ray tracing and a few other ones plus if your willing to scale the image (or DLSS when possible) you can close to max it out for 90ish FPS in most games at 1440P). Kick in some of that new FSR 3 frame gen mod and old PC's can still have a few good years left.
A number of these older but now dirt cheap Sandy/Ivy bridge->Broadwell Xeons are still quite potent with the larger caches vs consumer, paired with the right GPU and uefi mods like this one it will really help your FPS. I already modded my uefi adding a bootable NVMe drive via an angel wings PCIe add in card. Take the 32GB of ram (have 64GB when needed but its only stable at slow DDR3 1600MHZ vs 32GB DDR3 2400MHZ, in gaming at least though the quad channel ram helps. Rendering or video editing its better to run the full 64GB. Regardless this is good news for gamers on a budget or recycling their old rigs for friends and family in need.