This whole issue stems back in the days of Windows 8, when Microsoft changed how DirectX 9 reported on available memory for gaming. Unlike Windows 7 (which allowed games to use all available VRAM), Windows 8 limited VRAM to exactly 4GB. Since then, Microsoft has continued the allocation in Windows 8.1 and Windows 10. Most users are likely to be running GPUs with less than 4GB of VRAM, so this problem is moot for the majority. However, there are power users (such as modders) who feel the limitations. As mentioned, Microsoft debuted a fix during the summer. Jesse Natalie, Senior Software Engineer for the company’s Direct3D team decided to tackle the problem. The resulting fix made its debut in Windows 10 Preview Build 16232 on the inside. Now that the Fall Creators Update is rolling out to all Windows 10 users, the fix is arriving with it. In an explanation to Neowin, Natalie says that the Windows 7 methods was malfunctioning, so Microsoft attempted to solve the problem for Windows 8. However, the company ended up making the situation worse: “This API was available on Windows 7; however, it did not behave reasonably in the face of GPUs with more than 4GB of VRAM. During the Windows 8 timeframe, we noticed the trend in memory would lead to an overflow of several 32bit values across the graphics API surface area, so there was a concerted effort to sanitize and clamp rather than allow overflow. The clamp for D3D9 was just applied too early, resulting in allocation failures instead of just clamped reporting. […] The API in question simply reports to the app an estimation of how much memory remains available to allocate. On Windows 7, when more than 4GB are available, this API will not report accurate information. For example, if 4.1GB of memory are available, the app will see 0.1GB available. […] On Windows 8 and newer, this API will only report 4GB. Up until the change in this Fall Creator’s [sic] Update, once the counter reports 0 you can expect future memory allocation requests to fail.”
Windows 10 Fix
The Direct3D team has tackled the problem again with the Windows 10 Fall Creators Update. This means the DirectX API is now reporting available memory accurately. Of course, it is likely that many users experiencing this problem are still running older Windows versions. However, Natalie said it is unlikely the fix will be pushed out to Windows 8.1 and instead urges users to upgrade to Windows 10.