首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显卡内存和进程的虚拟地址空间

显卡内存和进程的虚拟地址空间
EN

Stack Overflow用户
提问于 2016-01-22 05:19:43
回答 1查看 1.5K关注 0票数 1

假设我有一个游戏,在openGL方面做很多图形,我有一个带有Linux32位的桌面,安装了4GB的内存和1G的Nvidia图形卡。我的游戏应用虚拟地址空间是什么样子的?显卡内存是否映射在这个虚拟地址空间中?

另外,RAM和显卡内存之间是否有某种关系?linux是否为任何进程不能使用的显卡分配相同的RAM?也就是说,它的结果只有3GB的内存,可用于我的游戏过程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-22 12:16:19

我的游戏应用虚拟地址空间是什么样子的?

不可能知道。OpenGL将此细节完全开放给供应商实现。任何符合规格的东西都是允许的。

显卡内存是否映射在这个虚拟地址空间中?

可能会,也可能不会。这取决于实际的实现。

另外,RAM和显卡内存之间是否有某种关系?

通常是的。就大多数OpenGL实现而言,显卡的RAM本质上是系统内存中实际存在的东西的缓存(CPU RAM +交换空间+存储映射的内存)。但是,这并不局限于规范,任何符合OpenGL规范的内容都是允许的。

Linux是否为任何进程不能使用的显卡分配相同的RAM?

不,因为Linux (内核)不关心这些事情。不过,你的显卡驱动程序是。司机可以随心所欲地这样做。它可以通过物理地址扩展将OpenGL上下文数据映射到单独的地址空间,或者将其放置在不同的进程中,或者将其保存在游戏的地址空间中,或者将其保存在…中。,或…,或…。这上面没有写下来的计划。

也就是说,它的结果只有3GB的内存,可用于我的游戏过程?

如果是这样,那么更像(3GB - 1GB) - x,因为进程地址空间的前1GB是为内核保留的,当然,程序的文本(由CPU执行的二进制文件)和它使用的库的文本也需要一些地址空间。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34939514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档