• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

Did you now Turin has resizable BAR capability?

Joined
Aug 27, 2023
Messages
302 (0.49/day)
I was surprised to learn just recently Turin has resizable BAR capability, so much so that I bought a second hand GTX 1660S to play with. For some reason it's not clear with some other software but if we look under HWiNFO it's well defined.

rb1.PNG


Unfortunately my X99 is out of commission so I'm using this even older board for it, a Gigabyte EP45. :(

So with a bit of playing about and some MBR code in this case, it's possibly to get more than 256MiB

Updated HWiNFO screenshot
hwi1.PNG


Seems EVGA has a utility too
evga1.PNG



Let's not forget GPU-Z
HWi2.PNG


Note
  • There's no "above 4G decode" in this BIOS
  • There's no ReBar control in this BIOS.
  • CSM doesn't exist, it's a legacy BIOS, the real thing.
  • MBR partitioning, not GPT
  • No BIOS mod
  • No VBIOS mod.
I'm not the first to do this, credits to user terminatorul and xCuri0. You can find source code at https://github.com/terminatorul/NvStrapsReBar for UEFI implementation.

I haven't done any performance testing as yet, not being a gamer I might try something synthetic but later on. You might wonder if I'm not a gamer then why do this, well for me I'm learning something and I like that.
 
Last edited:
I was surprised to learn just recently Turin has resizable BAR capability, so much so that I bought a second hand GTX 1660S to play with. For some reason it's not clear with some other software but if we look under HWiNFO it's well defined.

View attachment 324346

Unfortunately my X99 is out of commission so I'm using this even older board for it, a Gigabyte EP45. :(

Well I thought I had some more snapshots handy but cant seem to find them, will go look for them or I'll have to make some new ones.
As far as I know, ReBar on NVIDIA GPUs only works for RTX 30 series and above, and for RTX 30 series you will also need a vbios update, so even older Nvidia GPUs are capable of using ReBar ( it's a PCIE spec) won't work without a vBios update that NVIDIA never released for older GPUs for some reason.

1701872603976.png


Something i found on reddit:
"We reached out to NVIDIA for their thoughts on the variability of the results we are seeing. They pointed out that Resizable BAR is a PCIe feature that is not locked to any one GPU nor was it originally designed for general game performance enhancement since it ideally requires game developer integration to work best. Because of the quality assurance difficulty, NVIDIA’s current plan is to enable it only for Ampere GPUs."
 
Last edited:
@izy, seems older cards and probably newer can have larger and sometimes smaller BARS without resizable BAR capability. Whether they will work well with the driver is another matter. What do you think they changed in the 3000 VBIOS? Looked to me to be just a nibble (half a byte) to remove the 256MiB cap. Maybe some one can test if 128MiB and 64MiB work without the update. I suspect the capability itself isn't part of the VBIOS, will have to try a chip erasure sometime to check.
 
  • Like
Reactions: izy
Theoretically, a lot of older GPUs should support it since the feature, AFAIK, was something that was a part of PCIe protocol spec for a while now. But officially, only Ampere and up on NVidia side are both enabled and supported in their drivers. Reasons can be argued all day, but it is what it is.
 
@izy, seems older cards and probably newer can have larger and sometimes smaller BARS without resizable BAR capability. Whether they will work well with the driver is another matter. What do you think they changed in the 3000 VBIOS? Looked to me to be just a nibble (half a byte) to remove the 256MiB cap. Maybe some one can test if 128MiB and 64MiB work without the update. I suspect the capability itself isn't part of the VBIOS, will have to try a chip erasure sometime to check.
I can be wrong (i have to do some reading about it) but i suspect that the motherboard bios is "asking" the GPU if it has the feature enabled or not on boot so i think they actually added something to the vBIOS rather than removing a limit, something that tells the MB bios that it can use a larger bar.
 
I don't precisely know how but you can even partially enable ReBAR on Pascal and, probably, Maxwell GPUs. Yet it usually damages performance.
 
I don't precisely know how but you can even partially enable ReBAR on Pascal and, probably, Maxwell GPUs. Yet it usually damages performance.
I would give it a try but i have no idea how to force ReBAR on B450 , i think i need some sort of a BIOS MOD (not vBIOS, thats impossible atm i guess) , after that you can enable/disable ReBAR for each game/application using nvidiaProfileInspector.
 
Making a feature report as enabled does not mean it is necessarily doing anything (good). But you can test this feature after all. Happy tinkering.
 
Making a feature report as enabled does not mean it is necessarily doing anything (good). But you can test this feature after all. Happy tinkering.
Yeah i think even the bar will show as 8G it will still use the normal 256mb but the guys from https://github.com/xCuri0/ReBARUEFI are saying that they are getting some extra performance with it enabled, sadly that mod works only for older MBs.

Edit: Lets see if it does anything.
Edit2: Doesnt seem to work forcing it for me , maybe im missing something. I really dont want to play with the MB bios , it should support rebar without adding FFS Module , maybe it wont work without doing it.

1701878191213.png
 

Attachments

  • 1701877565807.png
    1701877565807.png
    34.7 KB · Views: 92
Last edited:
Yeah i think even the bar will show as 8G it will still use the normal 256mb but the guys from https://github.com/xCuri0/ReBARUEFI are saying that they are getting some extra performance with it enabled, sadly that mod works only for older MBs.

Edit: Lets see if it does anything.
Edit2: Doesnt seem to work forcing it for me , maybe im missing something. I really dont want to play with the MB bios , it should support rebar without adding FFS Module , maybe it wont work without doing it.

View attachment 324369
Yeah for me working totally fine up to the 1gb Rebar size on my X79 motherboard and there are some improvements with my RX 6700XT
P.S. I believe that you must edit first your bios(depend of your mobo) and then you can use program rebar ON/OFF
rebarx79.png
 
Last edited:
Yeah for me working totally fine up to the 1gb Rebar size on my X79 motherboard and there are some improvements with my RX 6700XT
P.S. I believe that you must edit first your bios(depend of your mobo) and then you can use program rebar ON/OFF
View attachment 324373
Yeah , you are right but I dont want to mess up with the bios today:)

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.
 
I don't precisely know how but you can even partially enable ReBAR on Pascal and, probably, Maxwell GPUs. Yet it usually damages performance.
Pascal, Maxwell, Kepler and I suspect many older cards can have their aperture BAR size increased but do not have resizable BAR extended capability as does Turin and newer. Windows Nvidia driver is antagonistic towards such Pascal and Maxwell devices while Linux appears to limit to 256MiB and allow lower.


I would give it a try but i have no idea how to force ReBAR on B450 , i think i need some sort of a BIOS MOD (not vBIOS, thats impossible atm i guess) , after that you can enable/disable ReBAR for each game/application using nvidiaProfileInspector.
The method is basically simple, 2 or 3 things are required.
  1. Setting of softstrap on card for larger aperture size, this will correspondingly populate the higher ReBaR settings on Turin.
  2. Setting of ReBaR extended capability.
  3. Allocating appropriate address space.
With the current UEFI method 1 & 2 are done early during BIOS initialization during DXE phase IINM (haven't tried it myself) and 3 is left to the BIOS. Since I'm using an older legacy BIOS (no UEFI) I've instead incorporated the changes into the HDD MBR which is responsible for loading the OS boot sector. So it all happens after BIOS initialization in this case and step 3 is a reallocation. Both methods work with hardcoded values, a universal approach so far doesn't exist as far as I'm aware which makes it awkward for many to implement.


Making a feature report as enabled does not mean it is necessarily doing anything (good). But you can test this feature after all. Happy tinkering.
Of course, needs to be tested. Interesting how we see with nvidiainspector that the whole aperture isn't used but just a few 100MiB up to 1.5GiB, needs to be looked at too I think. Yes, hopefully the tinkering will have some 'happy moments' and not just frustration :D


OP, get your facts straight! Turin (Torino) is a picturesque Italian city, completely different from what that thing in your computer is named.
Wait, what!. There are some picturesque cities in Italy? I thought they had all been vandalized, what ever happened to that guy that was videoed carving his name into 'The Colosseum'? :D


I thought I'd share this info as people might be interested but I've actually just realized after over 10 years most people want a 'click' solution and aren't interested with the 'nitty gritty' of it. Explains so much with the mobile Haswell ratio unlocking and the following Xeon v3 turbo unlock. Lol, lesson finally learned.
 
Last edited:
  • Like
Reactions: izy
I thought I'd share this info as people might be interested but I've actually just realized after over 10 years most people want a 'click' solution and aren't interested with the 'nitty gritty' of it. Explains so much with the mobile Haswell ratio unlocking and the following Xeon v3 turbo unlock. Lol, lesson finally learned.
xeon v3 and 1660s are you copying my build? :D
jokes aside but does this rebar or increase in just bar1 give any real advantage on old Nvidia GPUs? shouldn't it also be handled by driver and games?
 
@Don Zauser idk, I haven't tried measuring performance yet. terminatorul ran with a RTX 2080Ti and showed about 11% increase with 3DMark PCIe test and about 5% in GravityMark IIRC. It doesn't seem like it's a case of just opening up the BAR either, for instance a table posted by Reddit user gerechterzorn shows one setting with size limit of 1.5GiB, most others at 1GiB and even one that's reduced to 200MiB! So curious about that but will have to wait until I'm not busy with other things. If Nvidia has or will to block with their driver is a possibility, or perhaps they will let it slide as there's no validation requirement necessary in such a use case?

 
@Don Zauser idk, I haven't tried measuring performance yet. terminatorul ran with a RTX 2080Ti and showed about 11% increase with 3DMark PCIe test and about 5% in GravityMark IIRC. It doesn't seem like it's a case of just opening up the BAR either, for instance a table posted by Reddit user gerechterzorn shows one setting with size limit of 1.5GiB, most others at 1GiB and even one that's reduced to 200MiB! So curious about that but will have to wait until I'm not busy with other things. If Nvidia has or will to block with their driver is a possibility, or perhaps they will let it slide as there's no validation requirement necessary in such a use case?

Who is "terminatorul"? Where is this evidence?
 
You can't make something not supported to Half-supported. It doesn't do anything if your card does not support it. And messing with the bios... Very bad idea.
Even if you get full support, with this old card you will have no benefit's at all. It was not made for this that time, so enabling a function it does not know off, will do absolutely nothing.
 
Back
Top