Vulkan简介(1)

一、简介
Vulkan是为当前GPU硬件设计的一个新的现代图形API。
Vulkan是一个显式的、流线型的、可移植的和可扩展的API,设计用于受处理器能力、内存限制和功耗限制的嵌入式系统,以及受较少限制的更复杂系统。Khronos是一家图形标准组织,高通公司是该组织的发起人。高通公司已经并将继续参与Vulkan API的设计和规范。
Vulkan是一个跨平台的2D和3D绘图应用程序接口(API),最早由科纳斯组织在2015年游戏开发者大会(GDC)上发表。
科纳斯最先把VulkanAPI称为“次世代OpenGL行动”(next generation OpenGL initiative)或“glNext”, [1]但在正式宣布Vulkan之后这些名字就没有再使用了。就像OpenGL,Vulkan针对实时3D程序(如电子游戏)设计,Vulkan并计划提供高性能和低CPU管理负担(overhead),这也是Direct3D12和AMD的Mantle的目标。Vulkan兼容Mantle的一个分支,并使用了Mantle的一些组件
本文将介绍使用Adreno进行Vulkan开发的基础知识,详细介绍了如何设置开发环境。

二、Vulkan
Vulkan是一个新的图形API,它允许应用程序在Adreno gpu上运行良好。
存在以下几个原因,一个关键的原因是Vulkan的新的多通道渲染支持通过消除对主内存的带宽传输,极大地改善了Adreno的tile-base架构。此支持允许优化具有相同维度的渲染目标上的多个过程。
Vulkan为开发人员提供了从应用程序中获得高性能的机会。Vulkan提供了显式的低级GPU控制,并允许一个更简单的驱动程序设计,具有更少的CPU开销和更易预测的处理。
Vulkan从一开始就被设计成多线程友好型。这对在Snapdragon SOC(具有多个内核)上运行线程的应用程序非常有利。 线程可以并行创建命令缓冲区和管道状态对象。
Vulkan是跨平台的,支持API中的图形和计算操作。它是PC、控制台、移动设备和嵌入式硬件的单一API。Vulkan支持一个可加载的分层架构,允许在开发期间进行详细的错误检查,这对于发布版本来说很容易被禁用。在生产代码或商业发布中不需要验证或错误处理开销。
最后,使用Vulkan的跨供应商即时语言SPIR_V,预编译着色器支持,不需要在驱动程序中进行编译。此外,开发人员现在可以在商业版本中隐藏原始着色器代码逻辑。用于从GLSL到SpRyv的运行时转换的操作系统允许现有的着色器以最小的变化在Vulkan中工作。

了解Vulkan:
Vulkan是一个新的图形API,于2016年2月首次发布。不像它的前任,OpenGL早在1992年就发布了,虽然有越来越多的可用资源来帮助学习Vulkan API,但仍然有限。
作为Vulkan标准(和许多其他标准)的创建者,Khronos在其网站上提供了许多资源和链接。
概述演示文稿、常见问题解答等。该网站提供了从最近的贸易展和活动中记录下来的许多优秀的深潜水Vulkan演示的链接,这些演示为开发好的Vulkan应用程序提供了见解和技巧。
目前,Graham Sellers出版了一本关于Vulkan的书《Vulkan编程指南》,其中提供了有关Vulkan的详细编码示例和最佳实践。有许多可用的示例库(除了我们的Adreno SDK for Vulkan)演示了Vulkan实现的常见游戏和图形渲染算法。两个优秀的演示集是Sascha Willems和Norbert Nopper,都可以在github上免费获得。

Adreno GPU:
Adreno GPU内置于高通公司(Qualcomm)Snapdragon™处理器的一体式设计中。加速复杂几何图形的渲染使处理器能够满足当今移动设备中的游戏、用户界面和web技术所要求的性能水平。
Adreno GPU是专门为移动api和移动设备约束而构建的,它强调性能和高效的功耗。原始的Adreno 130变体仅支持OpenGL ES 1.1。Adreno 2xx系列及更高版本支持OpenGL ES 2.0。Adreno 3xx系列增加了对OpenGL ES 3.0和OpenCL的支持。Adreno 4x增加了对OpenGL ES 3.1和AEP(Android扩展包)的支持。Adreno 5x继续支持bot OpenGL ES 1.1、AEP和Vulkan。

三、总结
本篇文章中,我们主要对Vulkan的基础概念进行了介绍,以及Adreno GPU的支持。接下来将会对纹理特征等内容进行介绍。

发布了146 篇原创文章 · 获赞 28 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_38498942/article/details/103382306