首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPU内存中的零拷贝纹理读取

CPU内存中的零拷贝纹理读取
EN

Computer Graphics用户
提问于 2019-09-25 17:11:31
回答 1查看 550关注 0票数 2

英特尔740 AGP图形卡直接从系统RAM读取纹理,使用VRAM专门用于深度缓冲区和帧缓冲区。这具有节省视频RAM的效果,可以用远低于目前PCIe传输速度的AGP传输速度来实现。

在现代离散图形硬件上,这种零拷贝纹理加载方法可能/最优吗?是否有一种特定的硬件特性存在于这种技术所必需的i740上,而现代显卡上却没有这种特性?此外,在OpenGL中使用映射缓冲区可以公开零拷贝纹理访问功能吗?

EN

回答 1

Computer Graphics用户

回答已采纳

发布于 2019-09-25 21:06:05

在现代离散图形硬件上,这种零拷贝纹理加载方法可能/最优吗?

你说那好像是当时的最佳选择。英特尔740并没有像维基百科文章所提到的那样,受到市场的热烈欢迎:

AGP纹理概念很快就被证明是设计中的一个巨大错误,因为卡必须通过一个比显卡本身的RAM慢8倍以上的通道不断地访问纹理。

在过去20年中,可用内存带宽/性能与可用计算资源之间的差距才有所扩大。那么,从主存读取一个离散GPU是否是“最佳”的呢?

不是的。

会不会是“可能”?不是在市场营销方面。即使是50美元及以下的离散GPU也有自己的内存。任何比这慢/小得多的东西都是不值得的,因为几乎每个人都有英特尔或AMD的片上GPU,当性能不重要的时候。如果您有一个独立的板,它总是会更好地在板上放置一些RAM与其自己的总线,而不是让董事会试图直接从主存读取其大部分数据。

此外,在OpenGL中使用映射缓冲区可以公开零拷贝纹理访问功能吗?

不是的。映射缓冲区将是缓冲区,而不是纹理。它们是不同类型的存储对象,其背后(假设上)有不同的分配。PBO是将数据从缓冲区异步传输到纹理的一种方法。这是数据的传输,而不是内存分配的采用。

英特尔有一个映射纹理存储的扩展,但这要求纹理为线性格式。它没有得到广泛的支持,而且可能永远也不会得到支持。

Vulkan提供了类似的可能性,但是在采样器中使用线性纹理作为源,从着色器读取操作不需要支持。您必须询问每个实现是否允许它,以何种格式,以及允许哪些使用。

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

https://computergraphics.stackexchange.com/questions/9186

复制
相关文章

相似问题

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