Using Vulkan -- Layers
Layers 是用于增强 Vulkan 系统的可选组件以共享库形式打包由 loader 动态加载。它们可以在 Vulkan 函数从应用程序下发到硬件的过程中对其进行拦截、检查和修改。例如Vulkan 驱动本身只做极少的错误检查而Vulkan Validation Layer可以帮助开发者定位不正确的用法并验证应用是否正确使用 API。Layer 以共享库形式存在由 loader 动态加载并插入在 loader 与应用程序之间。Layer 可以被显式启用也可以被隐式启用。关于隐式与显式 Layer 的更多信息见 Loader and Layer Interface。Configuring LayersLayer 配置包含两个操作选择 Layer 并指定顺序使用设置项配置每个 Layer可以使用三种方式配置 Layer以适配不同开发者工作流使用环境变量loader 环境变量和 per-layer 设置环境变量使用专用 Vulkan 系统文件vk_loader_settings.json和vk_layer_settings.txt在 Vulkan 应用中通过 API 编程配置vkCreateInstance和VK_EXT_layer_settingsVulkan Configurator可以简化这三种方式的使用。通过图形界面可以创建 Layer 配置工具会自动创建和定位vk_loader_settings.json与vk_layer_settings.txt。它还可以生成环境变量脚本和可直接包含到 Vulkan 应用代码中的 C 头文件库。Layer Configuration文档提供了关于 Layer 配置的详细信息。Layers settings backward compatbility policyLayer 不识别的设置项会被忽略无论使用哪种配置方式。Layer 开发者有责任保证与旧版本 Layer 的向后兼容性。这样做是为了确保 Layer 设置项在各版本之间保持相对稳定并且不会将向后兼容的责任转嫁给 Vulkan 应用开发者否则会迅速变得难以管理。Device Layers Deprecation过去同时存在 instance layers 和 device layers但device layers在 Vulkan 早期就已被废弃应当避免使用。Creating a Layer任何人都可以创建 Layer只要遵循loader to layer interface—— 这是 loader 与 Layer 之间约定的通信方式。为保证一致性并能与 Vulkan Configurator 及其他 SDK 工具平滑集成Layer 实现应当使用Vulkan::LayerSettings。Android从 Android PAndroid 9 / API level 28开始如果设备处于可调试状态getprop ro.debuggable隐式 Layer 可以被放置在/data/local/debug/vulkan。从 Android PAndroid 9 / API level 28开始如果应用是 Debug 版本构建可以通过 ADB 推送隐式 Layer。除上述方式外没有其他方法可以使用隐式 Layer。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2410698.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!