XNA游戏可以使用超过1.5GB的RAM而不会崩溃吗?

use*_*322 1 memory xna out-of-memory

我想知道是否可以将大量纹理加载到内存中以进行XNA游戏而不会以某种方式消除内存异常.

特别是在运行时从文件流加载纹理.

Col*_*ell 5

这样做是有无关的寻址系统内存(正如你提到的,被限制在围绕〜2GB的事实,XNA是一个32位库)量的原因一个可怕的想法.

为了渲染,必须将纹理加载到图形卡上的视频内存中.目前,高端桌面显卡大约有2-3GB; 低端和中端卡的数量要少得多.此内存不仅用于纹理,还用于视频卡上存在的所有对象,例如顶点缓冲区.如果您没有以独占模式运行,则可能会在多个应用程序之间共享此内存.超过可用视频内存量会因交换而导致性能显着下降.

如果你真的想要填充那个视频缓冲区(比如,你正在为AAA游戏编写一个超高端的图形模式),你必须采用一些涉及Win32 API的高级内存寻址技术或将纹理加载到图形设备中,而无需在系统内存中保留副本.这些技术超出了XNA的范围.