Vulkan Device and Queue --2
2016-04-04 21:56
543 查看
Vulkan 2 - Device and Queue
Instance 对象之后,接下来开始操作Device对象了, 为APP提供的Vulkan操作的是针对逻辑设备,对于物理设备Vulkan只提供查询物理设备信息的接口,没有提供操作物理设备的接口
VkPhysicalDeviceProperties
可以获取显卡PCI信息,显卡类型,是集成显卡、独立显卡,还是虚拟显卡啊等,最主要的是可以:correlate how many memory heaps there are.
最最主要的是可以获取物理设备上的可用的队列信息:
vkGetPhysicalDeviceQueueFamilyProperties
树形结构:Device -> Queue families -> Queue
创建了逻辑设备之后,我们可以通过逻辑设备干点啥呢?
创建Queue,问题又来了,在逻辑设备上创建一个Queue之前挂载到那个family下面呢?
创建和跟踪各种可供同步的数据结构
管理memory
创建命令缓冲区和cmd buffer pools
管理graphic state
Vulkan可以创建逻辑设备,同样可以销毁逻辑设备,以及逻辑设备的生存期和生存期之内的不同状态。
接下来便是操作Queue对象了。
需要注意的地方有
Queue之间的同步是通过Vulkan semaphores来实现的
题外话: events&barries是同步cmd buffer的,fences work between host and device… 是这样吗?
接下来重点来了: 操作Queue对象之一:Sparse Memory Binding
Sparse memory binding 是啥?
首先要搞懂 Sparse Resource是个啥。。。
Sparse resource可以说是提供一种欺骗性的机制,这个机制让APP认为自己得到的是一块连续的内存,实际上是Sparse resource将分散的内存bound起来提供给APP的。
Vulkan为啥需要这种机制呢?
因为VkBuffer和VkImage的存储资源需要被完全连续绑定在VkDeviceMemory 对象中
Instance 对象之后,接下来开始操作Device对象了, 为APP提供的Vulkan操作的是针对逻辑设备,对于物理设备Vulkan只提供查询物理设备信息的接口,没有提供操作物理设备的接口
VkPhysicalDeviceProperties
可以获取显卡PCI信息,显卡类型,是集成显卡、独立显卡,还是虚拟显卡啊等,最主要的是可以:correlate how many memory heaps there are.
最最主要的是可以获取物理设备上的可用的队列信息:
vkGetPhysicalDeviceQueueFamilyProperties
树形结构:Device -> Queue families -> Queue
创建了逻辑设备之后,我们可以通过逻辑设备干点啥呢?
创建Queue,问题又来了,在逻辑设备上创建一个Queue之前挂载到那个family下面呢?
创建和跟踪各种可供同步的数据结构
管理memory
创建命令缓冲区和cmd buffer pools
管理graphic state
Vulkan可以创建逻辑设备,同样可以销毁逻辑设备,以及逻辑设备的生存期和生存期之内的不同状态。
接下来便是操作Queue对象了。
需要注意的地方有
Queue之间的同步是通过Vulkan semaphores来实现的
题外话: events&barries是同步cmd buffer的,fences work between host and device… 是这样吗?
接下来重点来了: 操作Queue对象之一:Sparse Memory Binding
Sparse memory binding 是啥?
首先要搞懂 Sparse Resource是个啥。。。
Sparse resource可以说是提供一种欺骗性的机制,这个机制让APP认为自己得到的是一块连续的内存,实际上是Sparse resource将分散的内存bound起来提供给APP的。
Vulkan为啥需要这种机制呢?
因为VkBuffer和VkImage的存储资源需要被完全连续绑定在VkDeviceMemory 对象中
相关文章推荐
- iOS开发学习笔记——页面滚动(UIPageControl)、(时间)选择器(UIPicker)
- request.getHeader("referer")的作用
- UE4:ICU data directory was not discovered
- codeforces_598B. Queries on a String
- hdu 1242 Rescue bfs+优先队列 解题报告
- UE4 技巧总结
- iOS --- 获取屏幕顶层的UIViewController
- POJ 3368 Frequent values(线段树/RMQ)
- BlueStacks如何调整屏幕分辨率和屏幕宽度
- iOS --- 理解UIWindow及其常见使用场景
- js设置cookie,为cookie中设置多个key value
- HDU 4027 Can you answer these queries?(线段树)
- LeetCode 232. Implement Queue using Stacks
- 【VK Cup 2016 - Round 1 (Div 2 Edition)E】【目标线思想差值相减 优先队列】Bear and Contribution c5成本+5 c1成本+1使得至少k人贡献相
- LeetCode 225. Implement Stack using Queues
- 设置request.setCharacterEncoding()后,servlet中文乱码问题
- IOS-- UIView中的坐标转换
- UICollectionView用法补充(照片轮播墙)
- UDID、UUID+keychain
- 在Java8的foreach()中使用return/break/continue