datenwolf..
6
我的游戏应用程序虚拟地址空间如何?
无法分辨.OpenGL将这个细节完全公开给供应商实现.允许满足规范的任何内容.
显卡内存是否映射在此虚拟地址空间中?
也许,也许不是.这取决于实际的实施.
此外,RAM和显卡内存之间是否存在某种关系?
通常是的.到目前为止,大多数OpenGL实现都关注显卡的RAM本质上是实际存在于系统内存中的缓存(CPU RAM +交换空间+从存储映射的内存).但是,这并不是规范,并且允许满足OpenGL规范的任何内容.
Linux是否为显卡分配了相同的RAM,任何进程都无法使用?
不,因为Linux(内核)并不关心这些事情.不过,你的显卡驱动程序是.驾驶员可以按照自己认为合适的方式进行操作.它可以通过物理地址扩展(PAE)将OpenGL上下文数据映射到单独的地址空间,也可以将其放在不同的进程中,或者将其保存在游戏的地址空间中,或者......,或......,或.......这方面没有减记的计划.
也就是说,它导致我的游戏进程只有3GB的RAM可用?
如果是这样,那么更喜欢(3GB - 1GB) - x这里0 < x,因为你的进程的地址空间的顶部1GB保留给内核,当然你的程序的文本(由CPU执行的二进制文件),它的使用图书馆的文本需要一些地址空间,以及.