首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应该减少应用程序创建的命令池的数量吗?

应该减少应用程序创建的命令池的数量吗?
EN

Stack Overflow用户
提问于 2018-07-18 19:44:35
回答 1查看 604关注 0票数 6

假设有一个队列族,它支持对曲面的表示和图形。创建一个处理表示和图形的命令池更好(由于技术原因),还是创建两个命令池更好:一个命令池只用于图形(尽管它可以用于表示),另一个命令池仅用于表示(即使它可以用于图形)?

本质上,应该尽量减少与特定队列族关联的命令池的数量吗?或者,创建任意数量的命令池可以吗?更一般地(不管命令池与哪个队列家族相关联),应用程序是否应该最小化它创建了多少命令池?

编辑:在这篇文章的初始版本中,我编写了“队列”而不是“命令池”。这个已经修好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-18 20:05:41

由该线程填充的一组命令缓冲区所使用的存储的main purpose of a command pool is to be a (mostly) single-threaded allocator。创建池就是为了达到这个目的。

因此,如果有三个线程需要为特定队列生成命令,则创建3个池,每个池用于每个线程,并使用它们生成您感兴趣的CBs。

根据CB重置策略,您可能需要多个缓冲池。也就是说,当线程从池A生成命令到CBs时,GPU从池B从CBs读取命令。这样,当GPU完成时,您可以重新设置池,而不是重置单个CBs。

总体来说,您需要创建命令池以服务于应用程序的分配和CB构建策略。池与队列族的关联仅仅是为了帮助实现更有效地为那些CBs生成命令。您不应该假设某个池正在消耗队列中某种有限的资源。

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

https://stackoverflow.com/questions/51409895

复制
相关文章

相似问题

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