首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL可分着色程序及其在现代硬件上的线性化性能

OpenGL可分着色程序及其在现代硬件上的线性化性能
EN

Stack Overflow用户
提问于 2015-09-27 15:58:34
回答 1查看 470关注 0票数 1

我正在将一个小的OpenGL框架从3.3移植到4.3。我在软件中实现了着色器混合/匹配(即:当发出抽签请求时,着色器被单独绑定,程序被懒散地链接。)

OpenGL 4.1通过可分离的程序和管道添加了这个特性,然而,让程序封装所有着色阶段的意义在于能够将它们作为一个整体进行优化(而且只有一次)。

所以我想知道使用So是否比Direct3D 11硬件上的标准着色器程序慢。特别是:当前的实现是否允许每个着色器有一个程序(因此,一个有2-5个独立程序的管道),而不会造成显着的性能损失?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-28 00:55:43

有趣的是,您应该提到D3D11硬件的名称。

如果您谈到D3D,您应该知道它一直都是这样工作的。着色程序不是不可变的对象,每个阶段都在D3D中链接在一起,就像它们在OpenGL中一样。D3D使用语义和其他好东西来让你随时更换附加到每个阶段的着色器。硬件一直以D3D的方式工作,而OpenGL现在更好地公开了这一点。

你是否会看到性能的变化,从可分离的着色器,不是一个问题的硬件。任何性能的增加或损失都将取决于驱动程序的实现。但是,它不可能是实质性的,否则D3D很久以前就会采用OpenGL的链接程序模型-- API不断地重新发明自己以降低开销。

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

https://stackoverflow.com/questions/32809881

复制
相关文章

相似问题

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