Posted September 05, 2015
In the best Ubisoft fashion...
The game uses a function that probes the driver for the amount of the available VRAM, but the function stores the unsigned integer returned into a signed integer type variable, which does not make sense (you can't have a negative amount of VRAM, after all).
Signed integer types use the highest bit to indicate the sign of the integer (one for plus, zero for minus). But the bug did not kick in as long as the VRAM amount did not exceed 2GB - which was every time when the game was released.
IF you have a card with more than 2GB VRAM, the returned amount uses the highest bit, and the program finds out you have a negative amount of memory available - which is apparently very little, so it sets the Texture Size to the lowest for you, again, in the best Ubisoft fashion, because Ubisoft apps are super bright, right?
The problem would be trivial to correct for someone with access to the source code, I wrote to Ubisoft, but their support is abysmal. Someone competent enough who is capable to disassemble binaries could be able to fix it, though.
I found out about the bug when fiddling with the demo that actually reports you have a -2GB memory, which is not sufficient to run the game.
The game uses a function that probes the driver for the amount of the available VRAM, but the function stores the unsigned integer returned into a signed integer type variable, which does not make sense (you can't have a negative amount of VRAM, after all).
Signed integer types use the highest bit to indicate the sign of the integer (one for plus, zero for minus). But the bug did not kick in as long as the VRAM amount did not exceed 2GB - which was every time when the game was released.
IF you have a card with more than 2GB VRAM, the returned amount uses the highest bit, and the program finds out you have a negative amount of memory available - which is apparently very little, so it sets the Texture Size to the lowest for you, again, in the best Ubisoft fashion, because Ubisoft apps are super bright, right?
The problem would be trivial to correct for someone with access to the source code, I wrote to Ubisoft, but their support is abysmal. Someone competent enough who is capable to disassemble binaries could be able to fix it, though.
I found out about the bug when fiddling with the demo that actually reports you have a -2GB memory, which is not sufficient to run the game.