惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
T
Tenable Blog
Project Zero
Project Zero
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
S
Schneier on Security
Scott Helme
Scott Helme
S
Securelist
Know Your Adversary
Know Your Adversary
Vercel News
Vercel News
IT之家
IT之家
V
V2EX
F
Fortinet All Blogs
Simon Willison's Weblog
Simon Willison's Weblog
K
Kaspersky official blog
博客园_首页
T
Tailwind CSS Blog
The GitHub Blog
The GitHub Blog
Spread Privacy
Spread Privacy
Microsoft Security Blog
Microsoft Security Blog
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
有赞技术团队
有赞技术团队
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
The Hacker News
The Hacker News
L
LINUX DO - 热门话题
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
A
Arctic Wolf
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
CXSECURITY Database RSS Feed - CXSecurity.com
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
S
SegmentFault 最新的问题
AWS News Blog
AWS News Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost

博客园 - 游戏行者

ubuntu 24 之后,登录时出现server refused our key,不认原来的ssh key的解决方法 zoho企业邮件管理页,如何登录 thunderBird如何选择配置文件 鼠标对码 PVE更换主板后,如何修改绑定网卡 关于ubuntu和debian的配置,以及vultr的防火墙设置 - 游戏行者 entity framework core使用sqlServer localDB指定文件路径 windows 10如何更改字体大小和开启防蓝光 ubuntu挂载ntfs分区(读写模式) vmware ubuntu虚拟机设置共享文件夹之后,虚拟机重启找不到的问题 Esxi(vSphere) 安装经验 瑞芯微系列主板刷机方法 f#如何设定main函数 探索texture对象的生命周期 opengl管理texture参数的函数总结 Opengl vertex shader中, layout location最多允许几个,或者说,顶点可以有多少个属性 opengl 如何从指定位置画三角形,理解opengl的指针 vk.xml生成之坑 写代码的技巧
vulkan的QueueFamilyProperties
游戏行者 · 2019-10-21 · via 博客园 - 游戏行者

vulkan从物理设备创建逻辑设备的时候,有个参数是QueueFamilyProperties,这个参数指明队列支持的功能,以及队列最大数量。

队列族支持的功能,用queueFlags表示,可以是,graphics,compute,transfer,还有SparseBinding。

通过查询QueueFamilyProperties,可以得到所有队列族的特性。我的gtx 1050支持的队列族是3个:

1.支持所有四种共功能

也就是Graphics|Compute|Transfer|SparseBinding,最大队列数16

2.支持Transfer,最大队列数1

3.支持compute,最大数量8

创建逻辑设备的时候,需要指定支持的队列族。我感觉实际上只需要第一个就可以,因为它是全功能的,而且有16个队列。或许专门的transfer队列和compute队列,可以发挥更好的性能。

查了一些资料,说队列数量并不是越多越好。如果用不上就少创建。因为每个队列都会消耗资源。具体如何消耗,还有待于探索。

探索1:

关于VulkanSharp的Device.GetQueue(uint queueFamilyIndex, uint queueIndex)

如果填入相同的queueFamilyIndex和queueIndex,会得到同一个队列,但是再VulkanSharp中用object.RefrenceEquals测试,并非是同一个对象,这是因为它每次GetQueue都创建了一个托管对象去包含原生指针,所以对象不同,但里面指针成员是同一个,所以实际是通过一个队列。

关于创建Device时候的QueueCreateInfo,

可以创建多个队列,但是QueueCount要等于QueuePriorities个数。如果不等,也能创建成功,但影响之后Device.GetQueue(familyIndex, queueIndex)的结果。这个函数中,queueIndex必须小于QueuePriorties的个数,否则会出现内存错误。

另外,QueueFamilyProperties中的最大队列数,似乎并不起作用,比如在Transfer队列族中创建两个队列(它最大是1),然后用Device.GetQueue取出来,的确是两个不同的队列。至于队列是否起作用,有待于进一步探索。