首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GPU上下文切换

GPU上下文切换
EN

Stack Overflow用户
提问于 2012-10-06 19:28:11
回答 1查看 1.6K关注 0票数 1

我有一个程序,它首先渲染纹理,然后将纹理传递给计算着色器进行处理,然后通过带纹理的全屏四边形将输出结果渲染到屏幕上。

我在nVidia的计算着色器编程指南中读到,每次调度计算着色器时,它都会启动GPU设备上下文切换,这不应该经常进行。

我现在很困惑。在我看来,在我的渲染管道中,GPU会切换两次上下文。对吗?一次是在第一次调度调用期间,下一次是在我正常渲染全屏四元组时。

如果这是正确的,那么我可以通过像这样重新组织我的代码来避免一次切换。首先,渲染到纹理。其次,在计算着色器上执行处理。然后,在下一帧中,渲染结果,然后(仍在下一帧中)渲染所有纹理更新,在计算着色器上进行处理…所以基本上每一帧的开始我都会渲染最后一帧的结果(第一帧将是一个例外)。那么只会有一次上下文切换,对吧?

但是GPU仍然需要在帧之间进行上下文切换,对吧?所以我的渲染管道的两个版本都有两个上下文切换。在性能上不会有区别。我说的对吗?

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-04 03:46:06

上下文切换引入了一个小的命中,但在您的情况下,它是相当可以忽略的,所以您可以在同一帧中在计算和渲染管道之间安全地切换几次,而不必担心它。

在许多现代游戏中,同一管道中有两个以上的开关(渲染的图形管道,灯光的计算着色器,fxaa的像素着色器...)它们仍然运行得很好。

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

https://stackoverflow.com/questions/12759365

复制
相关文章

相似问题

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