• Home
Name Date Size #Lines LOC

..--

.github/ISSUE_TEMPLATE/12-May-2024-3321

cmake/12-May-2024-149130

include/12-May-2024-237,219203,701

registry/12-May-2024-91,54089,878

.cmake-format.pyD12-May-2024956 3510

.gitattributesD12-May-2024421 1711

.gitignoreD12-May-202458 76

BUILD.gnD12-May-20242.1 KiB7568

BUILD.mdD12-May-20248.6 KiB275182

CMakeLists.txtD12-May-20242.7 KiB6048

CODE_OF_CONDUCT.mdD12-May-2024280 21

LICENSE.txtD12-May-202411.1 KiB203169

OAT.xmlD12-May-20245.5 KiB8428

README.OpenSourceD12-May-2024332 1211

README.mdD12-May-20242.6 KiB7960

README_OpenHarmony.mdD12-May-20242.6 KiB5432

README.OpenSource

1[
2    {
3        "Name": "Vulkan",
4        "License": "Apache-2.0",
5        "License File": "LICENSE",
6        "Version Number": "v1.3.231",
7        "Owner": "mengzhaobing@huawei.com",
8        "Upstream URL": "https://github.com/KhronosGroup/Vulkan-Headers.git",
9        "Description": "Vulkan header files and API registry"
10    }
11]
12

README.md

1# Vulkan-Headers
2
3Vulkan header files and API registry
4
5## Default branch changed to 'main' 2021-09-12
6
7As discussed in #222, the default branch of this repository is now 'main'. This change should be largely transparent to repository users, since github rewrites many references to the old 'master' branch to 'main'. However, if you have a checked-out local clone, you may wish to take the following steps as recommended by github:
8
9```sh
10git branch -m master main
11git fetch origin
12git branch -u origin/main main
13git remote set-head origin -a
14```
15
16## Repository Content
17
18The contents of this repository are largely obtained from other repositories
19and are collected, coordinated, and curated here.
20
21If proposing changes to any file originating from a different repository,
22please propose such changes in that repository, rather than Vulkan-Headers.
23Files in this repository originate from:
24
25### Specification repository (https://github.com/KhronosGroup/Vulkan-Docs)
26
27* registry/cgenerator.py
28* registry/spec_tools/conventions.py
29* registry/generator.py
30* registry/genvk.py
31* registry/reg.py
32* registry/spec_tools/util.py
33* registry/validusage.json
34* registry/video.xml
35* registry/vk.xml
36* registry/vkconventions.py
37* All files under include/vulkan/ which are *not* listed explicitly as originating from another repository.
38
39### This repository (https://github.com/KhronosGroup/Vulkan-Headers)
40
41* .cmake-format.py
42* BUILD.gn
43* BUILD.md
44* CMakeLists.txt
45* CODE_OF_CONDUCT.md
46* LICENSE.txt
47* README.md
48* cmake/Copyright_cmake.txt
49* cmake/cmake_uninstall.cmake.in
50* Non-API headers (report issues to the [Vulkan-Loader/issues](https://github.com/KhronosGroup/Vulkan-Loader/issues) tracker)
51  * include/vulkan/vk_icd.h
52  * include/vulkan/vk_layer.h
53  * include/vulkan/vk_sdk_platform.h
54
55### Vulkan C++ Binding Repository (https://github.com/KhronosGroup/Vulkan-Hpp)
56
57As of the Vulkan-Docs 1.2.182 spec update, the Vulkan-Hpp headers have been
58split into multiple files. All of those files are now included in this
59repository.
60
61* include/vulkan/vulkan.hpp
62* include/vulkan/vulkan_enums.hpp
63* include/vulkan/vulkan_funcs.hpp
64* include/vulkan/vulkan_handles.hpp
65* include/vulkan/vulkan_raii.hpp
66* include/vulkan/vulkan_structs.hpp
67
68## Version Tagging Scheme
69
70Updates to the `Vulkan-Headers` repository which correspond to a new Vulkan
71specification release are tagged using the following format:
72`v<`_`version`_`>` (e.g., `v1.1.96`).
73
74**Note**: Marked version releases have undergone thorough testing but do not
75imply the same quality level as SDK tags. SDK tags follow the
76`sdk-<`_`version`_`>.<`_`patch`_`>` format (e.g., `sdk-1.1.92.0`).
77
78This scheme was adopted following the 1.1.96 Vulkan specification release.
79

README_OpenHarmony.md

1# Vulkan API Headers
2
3仓库包含Vulkan API 和 API 注册表。Vulkan 是一个适用于高性能 3D 图形设备的低开销、跨平台 API。与 OpenGL ES (GLES) 一样,Vulkan 提供用于在应用中创建高品质实时图形的工具。与OpenGL ES相比使用 Vulkan 的优势明显,Vulkan可以大大降低 CPU 开销,另外Vulkan支持 SPIR-V 二进制Shader语言。
4
5OpenHarmony引入后,在框架层新增加载程序(Vulkan-Loader),负责加GPU驱动实现、加载OpenHarmony平台的Vulkan WSI(Window System Integration, 窗口系统集成)实现,并对外开放Vulkan API。请参考[Vulkan-Loader](https://gitee.com/openharmony/third_party_vulkan-loader/blob/master/README_OpenHarmony.md)
6
7
8## 南向开发和OpenHarmony发行版
9
10设备成功运行Vulkan必需的条件:
11    1. Vulkan-Loader,由OpenHarmony提供
12    2. 实现了Vulkan API 的 VulKan 驱动程序,由 SoC 提供。
13
14### Vulkan Loader
15
16`third_party/vulkan-loader`中实现的Vulkan加载程序是Vulkan应用与Vulkan驱动之前的Wrapper层。安装在`/system/lib[64]/libvulkan.so`中。
17Vulkan Loader 会提供标准 Vulkan API 函数符号、OpenHarmony WSI扩展的函数符号,以及许多其他可选扩展。
18
19
20### Vulkan 驱动程序
21
22Vulkan-Loader成功加载Vulkan驱动程序的必要条件
23    1.要参考[LoaderDriverInterface](https://gitee.com/openharmony/third_party_vulkan-loader/blob/master/docs/LoaderDriverInterface.md)实现对应的接口;
24    2.提供驱动程序描述json文件,参考[加载GPU驱动](https://gitee.com/openharmony/third_party_vulkan-loader/blob/master/README_OpenHarmony.md#%E5%8A%A0%E8%BD%BDgpu%E9%A9%B1%E5%8A%A8);
25    3.实现OpenHarmony平台的扩展包括`VK_OHOS_native_buffer`和`VK_OHOS_external_memory`扩展。
26
27
28## 北向应用开发者
29
30### VK_OHOS_surface 扩展
31
32    接口:vkCreateSurfaceOHOS
33    VkResult vkCreateSurfaceOHOS(
34        VkInstance                               instance,
35        const VkSurfaceCreateInfoOHOS            pCreateInfo,
36        const VkAllocationCallbacks              pAllocator,
37        VkSurfaceKHR                             pSurface)
38
39    参数:
40        instance是要关联Surface的实例。
41        pCreateInfo是一个指向结构的指针,该VkSurfaceCreateInfoOHOS 结构包含影响表面对象创建的参数。
42        pAllocator是用于在没有更多特定内存分配器可用时做为Surface对象分配的分配器。
43        pSurface是一个指向VkSurfaceKHR句柄的指针,在该句柄中返回创建的Surface对象。
44
45
46## Vulkan使用文档
47
48API官方文档  https://registry.khronos.org/vulkan/
49
50
51## License
52
53见 [LICENSE](LICENSE).
54