Why Does This Happen?
There are a few good reasons that a card would be sold as a 4GB video card:
It actually contains lower density VRAM, and therefore can never “unlock” to 8GB.
Some of its VRAM modules failed testing & validation, and therefore were “locked” to ensure a higher quality, lower density product.
Market demand has shifted and supply does not match, and so locks are issued on products to meet demand of said product.
The second option is common, and also happens on the CPU side of the industry (and system memory, for that matter). It is possible that some of the card's VRAM is not performing to spec, and rather than throwing out the whole card, AMD uses VBIOS to lock utilization to four of the known-good modules on the card.
There are also a few important risks with attempting a VBIOS flash – and some of those may be obvious, given the above:
Flashing VBIOS with a ROM that was not intended for the card could result in immediate “bricking” of the device, rendering it unusable.
Flashing VBIOS with a ROM that IS intended for the card could result in the same, if something goes wrong during the process (software failure/lock, power failure, etc.).
The warranty is voided.
Flashing VBIOS with an 8GB ROM is successful in “unlocking” a card from 4GB to 8GB, but slows down memory performance or exhibits instability relating to VRAM.
Only if reasonably certain that the VRAM modules can accept an 8GB VBIOS should you embark upon this process. We'd generally advise spending the extra money ($240 8GB RX 480) rather than risk a card, but enthusiasts familiar with the process likely know what they're getting into.
To mitigate risk, we'd suggest using MemoryInfo to validate the ID on the memory modules. We took the more physical approach to this and pulled the shroud off the card (read about that over here) to read the ID on the memory modules. Make sure the memory module IDs match known IDs of 8GB cards (1GB modules). For example, one of ours uses the ID “SAMSUNG 616 / K4G80325FB-HC25 / GZL0440S.” You can check other tear-downs online and known identifiers to determine which modules are known 1GB (8Gb) modules. Determining that the product legitimately has 1GB modules is the first step, as opposed to 512MB (4Gb) modules that would be impossible to unlock to anything greater than 512MB.
Do not use VBIOS from a card with a completely different design.
Next, we'd suggest exporting a ROM image of your current VBIOS, so that it could be rolled back if absolutely necessary.
Run some benchmarks (FPS benchmarks or synthetic, e.g. 3DMark FireStrike) prior to the flash to build a baseline for performance. Use this later to validate your flash.
Unlocking from 4GB to 8GB
Knowing the risks, having taken mitigating steps, and knowing the “why,” we can now attempt an unlock.
You'll need GPU-Z to validate your video card's specifications. That can be downloaded here.
Download MemoryInfo while at it.
Grab ATIFlash 2.7.4.
Use MemoryInfo to validate that the modules are “SAMSUNG 616 / K4G80325FB-HC25.” If you're opening the card up for a cooling mod anyway, you can check the physical module for this same identifier.
Use GPU-Z to validate the current memory capacity and speed.
Launch ATIFlash 2.7.4 with your 8GB card connected, then click “Save” to export the card's retail VBIOS. Save this somewhere easily accessible, in case video output is ever lost. Label accordingly. You will use this to import the ROM to your 4GB card. If you do not have an 8GB card, there are ROMs hosted online to help with this procedure – use at your own risk. Research before installing. It is ideal to pull a VBIOS that matches your card – if using a reference model, grab a reference VBIOS.
Above: Backing up the current ROM should be done first.
Use the “Load” button to load your 8GB ROM, then click “Program.” Do not touch the computer. Let it do its thing.
Once complete, restart the system. Check GPU-Z to see if 8GB GDDR5 is seen, then check AMD WattMan to ensure that it is reporting the same specs as GPU-Z. You should also see 2000MHz for the memory clock, rather than 1750MHz.
Run stress testing software (3DMark's FireStrike Stress Test is good) for a long period to validate that slowness and instability are not present.
If everything looks good, call it a success and carry on. If you've got flickering or crashing issues, or just low memory speed, it may be the case that some modules failed validation or that the VBIOS is not functional on this card. Reprogram your old VBIOS that you saved, then rollback to it.
Again, this is entirely at your risk. You could end up with a dead card if not conducted perfectly, or if the card just doesn't accept the VBIOS.
Editorial: Steve “Lelldorianx” Burke
Video: Andrew “ColossalCake” Coleman