Vulkan 基本类型,Vulkan 开发需要设计的类型非常多,整理其基本类型如下,主要包含设备、队列、命令缓冲、队列家族、渲染通,管线等,具体内容如下所示:
Vulkan类型 | 功能说明 |
---|---|
实例(VkInstance) | 用于存储Vulkan程序相关状态的软件结构,可以在逻辑上区分不同的Vulkan应用程序或者同一应用程序内部不同的Vulkan上下文 |
物理设备(VkPhysicalDevice) | 对系统中 GPU 硬件的抽象,每个 GPU 对应一个物理设备。另外,每个实例下可以有多个物理设备 |
设备(VkDevice) | 基于物理设备创建的逻辑设备,本质上是存储信息的软件结构,其中主要保留了与对应物理设备相关的资源。每个物理设备可以对应多个逻辑设备 |
命令池(VkCommandPool) | 服务高效分配命令缓冲 |
命令缓冲(VkCommandBuffer) | 用于记录组成绘制或计算任务的各个命令,在命令池中分配。若执行的是不变的绘制命令,可以对记录了命令的命令缓冲进行重用 |
命令缓冲启动信息(VkCommandBufferBeginInfo) | 携带了命令缓冲启动时必要信息的对象 |
命令缓冲提交信息(VkSubmitInfo) | 携带了命令缓冲提交给队列执行时必要信息的对象,包括需要等待的信息量数量、等待的信号量列表、命令缓冲数量、命令缓冲列表、触发的信号量数量触发的信号量列表等 |
列表家族属性( VkQueueFamilyProperties) | 携带了特定队列家族属性信息的软件结构,包括家族中队列的数量、能力标志等。每一个队列家族中可能含有多个能力相近的队列,常用的队列家族主要有支持图形任务和计算任务的两大类 |
队列( VkQueue) | 功能为接收提交的任务,将任务按序由所属GPU硬件依次执行 |
格式(VkFormat) | 一个枚举类型,包含了Vulkan开发中用到的各种内存组织形式,如VK_FORMAT_R8G8B8A8_UNORM 就表示支持RGBA四个色彩通道,每个通道8个数据比特 |
2D尺寸(VkExtent2D) | 用于记录2D尺寸的结构体,有width和height两个属性 |
图像(VkImage) | 设备内存的一种使用模式,这种模式下对应的内存用于存储图像像素数据,其中存储的像素数据可能是来自于纹理图像也可能是来自于绘制任务的结果等 |
图像视图(VkImageView) | 配合图像对象使用,其中携带了对应图像的类型、格式、色彩通道交换设置等方面的信息 |
交换链( VkSwapchainKHR) | 将画面呈现到特定目标平台(如windows, Android, Linux等)窗体或者表面的机制,通过它可以提供多个用于呈现的图像。这些图像与目标平台相关,可以看作目标平台呈现用KHR表面的抽象接口。持续换帧呈现时交替使用其中的多个图形执行,避免用户看到绘制过程中的画面引起画面撕裂。一般情况下,交换链中至少有两个用于呈现的图像,有些设备中数量会更多 |
帧缓冲(VkFrameBuffer) | 为绘制服务,其中可以包含颜色附件(用于记录一帧画面中各个像素的颜色值)、深度附件(用于记录一帧画面中各个像素的深度值)、模板附件(用于记录一帧画面中各个像素的模板值)等 |
缓冲( VkBuffer) | 设备内存的一种使用模式,这种模式下对应的内存用于存储各种数据。比如:绘制用顶点信息数据、绘制用一致变量数据等 |
缓冲描述信息( VkDescriptorBufferInfo) | 携带了描述缓冲信息的结构体,包含对应缓冲、内存偏移量、范围等 |
渲染通道(VkRenderPass) | 其中包含了一次绘制任务需要的各方面信息,诸如颜色附件、深度附件情况,子通道列表、子通道相互依赖信息等,用于向驱动描述绘制工作的结构、过程。一般来说,每个渲染通道从开始到结束将产生一帧完成的画面 |
清除内容(VkClearValue) | 包含了每次绘制前清除帧缓冲所用数据的相关值,主要有清除用颜色值,深度值、模板值 |
渲染通道启动信息(VkRenderPassBeginInfo) | 携带了启动渲染通道时所需的信息,包括对应的渲染通道、渲染区域的位置及尺寸、绘制前的清除数据值等 |
渲染子通道描述(VkSubpassDescription) | 一个渲染通道由多个子通道组成,至少需要一个子通道。每个子通道用一个VkSubpassDescription实例描述,其中包含了此子通道的输入附件,颜色附件,深度附件等方面的信息 |
描述集布局(VkDescriptionSetLayout) | 服务于描述集,给出布局接口。通俗讲就是给出着色器中包含了哪些一致变量、分别是什么类型、绑定编号是什么、对应于哪个管线阶段(比如顶点着色器、片源着色器)等 |
描述集(VkDescriptorSet) | 用于绘制前更新着色器所需的一致变量等 |
写入描述集( VkWriteDescriptorSet) | 用于绘制前更新着色器所需的一致变量等 |
描述集池( VkDescriptorPool) | 用于高效地分配描述集 |
管线布局( VkPipelineLayout) | 描述管线整体布局,包括哪些推送常量、有哪些描述集等 |
管线( VkPipeline) | 包含了执行指定绘制工作对应管线的各方面信息、诸如管线布局、顶点数据输入情况、图元组装设置、光栅化设置、混合设置、视口于剪裁设置、深度及模板测试设置、多重采样设置等 |
着色器阶段创建信息(VkPipelineShaderStageCreateInfo) | 携带了单个着色器阶段信息的对象,包括着色器的SPIR-V模板、着色器主方法名称、着色器对应阶段(比如顶点着色器、片元着色器、几何着色器、曲面细分着色器)等 |
顶点输入绑定描述(VkVertexInputBindingDescription) | 用于描述管线的顶点数据输入情况,包括绑定点编号,数据数据频率(比如每顶点一套数据)、数据间隔等 |
顶点输入属性描述(VkVertexInputAttributeDescription) | 描述顶点输入的某项数据信息(比如顶点位置、顶点颜色),包括绑定点编号、位置编号、数据格式、偏移量等 |
管线缓冲(VkPipelineCache) | 为高效地创建管线提供支持 |
格式属性(VkFormatProperties) | 用于存储执行格式类型(比如 VK_FORMAT_D16_UNORM)的格式属性,包括线性瓦片特征标志、最优化瓦片特征标志、缓冲特种标志等 |
物理设备内存属性(VkPhysicalDeviceMemoryProperties) | 用于存储获取的基于指定GPU的设备内存属性,包括内存类型数量、内存类型列表、内存堆数量、内存堆列表等 |
设备内存(VkDeviceMemory) | 设备内存的逻辑抽象,前面提到的缓冲(VuBuffer)、图形(VkImage)都需要绑定设备内存才能正常工作 |
信号量(VkSemaphore) | 用于一个设备(GPU)内部相同或不同队列并发执行任务时的同步工作,一般与方法VkQueueSubmit配合使用,以确保通过VkQueueSubmit方法提交的任务在指定信号量未触发前阻塞直至信号量触发后才执行。要特别注意的是,若有多个提交的任务同时等待同一个信号量触发,则此信号量的触发仅仅会被一个等待的任务接收到,其他等待的任务还将继续等待。这里的“同步”指的是并发执行时解决冲突的一种策略,有兴趣的读者可以进一步查阅相关资料 |
栅栏(VkFence) | 用于主机和设备之间的同步,通俗地讲就是用于CPU和GPU并发执行任务时的同步 |
KHR表面(VkSurfaceKHR) | 此类对象服务于帧画面的呈现 |
KHR表面能力(VkSurfaceCapabilitiesKHR) | 携带了用于呈现画面的表面相关呈现能力的信息,比如画面尺寸范围、交换链中的图像数量、是否支持屏幕交换等 |
呈现信息(VkPresentInfoKHR) | 携带了执行呈现时所需的一些信息,包括需要等待的信号量数量、信号量列表、交换链的数量、交换链列表、此次呈现的图像在交换链中的索引等 |
来源:电子创新网
审核编辑:何安
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
API
+关注
关注
2文章
1483浏览量
61797 -
Vulkan
+关注
关注
0文章
28浏览量
5701
发布评论请先 登录
相关推荐
不同类型变电所的特点
变电所作为电力系统中不可或缺的组成部分,其主要功能是实现电压的转换与电能的有效分配。根据变电所在电力系统中的位置、作用以及设计参数的不同,可以将它们分为几种基本类型。每种类型的变电所都设计有特定
负反馈放大电路的基本类型及应用
电子设备中。 本文将详细介绍负反馈放大电路的基本类型,包括电压串联负反馈、电流串联负反馈、电压并联负反馈和电流并联负反馈。 一、电压串联负反馈放大电路 特点 电压串联负反馈放大电路是一种将输出电压的一部分以相反相
水冷液冷负载系统的六种基本类型
您可以选择六种基本类型的冷却系统,以满足负载的冷却需求。每个人都有其优点和缺点。本文旨在识别不同类型的冷却系统并确定它们的优缺点,以便您可以根据自己的需求做出明智的选择。
反馈放大器的基本类型和拓扑组态
在电子工程领域中,反馈放大器是一种非常重要的电路组件,广泛应用于信号放大、噪声抑制和稳定性提升等方面。反馈放大器通过引入反馈机制,对放大器的输出信号进行采样并反馈到输入端,从而实现对放大器性能的优化。本文将对反馈放大器的基本类型和拓扑组态进行深入的探讨,以期为相关领域的研究和应用提供参考。
《星际公民》新增Vulkan API和NVIDIA DLSS技术支持,尚未完全支持
尽管如此,由于该游戏对处理器要求较高,因此即使采用 Vulkan 渲染器,DLSS 与 FSR 技术提升效果有限;另一方面,此举也提示 CIG 需要继续对游戏进行优化。
OpenAI API Key获取与充值教程:助开发者解锁GPT-4.0 API
在人工智能的浪潮中,OpenAI 的 GPT-4.0 模型以其卓越的语言理解和生成能力引领了技术的新高潮。为开发者提供了强大的工具来创建更智能、更互动的应用。本文将详细介绍如何获取并充值
Radeon Vulkan RADV驱动新增支持H.264/H.265编码
去年5月,David Airlie提出并实现了H.264 / H.265 Vulkan Video编码补丁集,现已融入Mesa 24.1版本之中。针对此次Git主线合并请求,Airlie简短评论道:“此补丁旨在拓展Vulkan,为RADV驱动增加对
探针电池座的基本类型
会导致阻抗不稳定,压入太多会将针头撞伤,导致卡pin。因此这个压缩量通常为弹簧的三分之一。 根据安装方式的不同,探针也可分为不同类型: 1.SMT式 稳定性好,针管底部为平底设计,易于SMT贴片焊接。 2.DIP式 针轴尾巴带定位针
Kubernetes Gateway API攻略教程
Kubernetes Gateway API 刚刚 GA,旨在改进将集群服务暴露给外部的过程。这其中包括一套更标准、更强大的 API资源,用于管理已暴露的服务。在这篇文章中,我将介绍 Gateway
鸿蒙原生应用/元服务开发-发布基础类型通知类型与接口
基础类型通知主要应用于发送短信息、提示信息、广告推送等,支持普通文本类型、长文本类型、多行文本类型和图片类型。
表 基础
发表于 01-03 14:46
鸿蒙原生应用/元服务开发-发布基础类型通知开发步骤
对象,并发布通知。
1.普通文本类型通知由标题、文本内容和附加信息三个字段组成,其中标题和文本内容是必填字段。
let notificationRequest = {
id: 1,
content
发表于 01-02 15:03
byte属于java基本类型吗
是的,byte属于Java的基本数据类型之一。Java中共有8种基本数据类型,分别是byte、short、int、long、float、double、char和boolean。byte类型用于表示8
评论