如果设备不支持vulkan,就用swiftshader,否则就加载系统的vulkan的正确姿势(让程序能够智能的在vulkan-1.dll和libvk_swiftshader.dll之间切换)
一些老的显卡设备没有更新驱动,甚至根本就不支持Vulkan的显卡,遇到静态链接的vulkan-1.lib文件,启动exe就会崩溃。

你以为从别的机器拷贝这个vulkan-1.dll就可以了吗? 太傻太天真了,直接上图:

现在你的救星来了,Google出了一款SwiftShader,它是Vulkan的另外一种实现。
SwiftShader ( https://github.com/google/swiftshader )是一个高性能的 CPU-based Vulkan 实现,它可以提供高级 3D 图形的硬件独立性。
SwiftShader 的库可以作为图形驱动程序的替代品,使用它非常简单,只需将它们放在可执行文件的同一文件夹中,或者设置 VK_ICD_FILENAMES 环境变量指向 vk_swiftshader_icd.json 文件。
因此,如果想使用 SwiftShader 来切换成 CPU 运算,需要将 SwiftShader 库中的 libvk_swiftshader.dll 文件重命名为 vulkan-1.dll,并放在程序所在的文件夹中。
或者,可以保留原来的 vulkan-1.dll 文件,并设置 VK_ICD_FILENAMES 环境变量指向 SwiftShader 库中的 vk_swiftshader_icd.json 文件。
如果想让程序智能地在 vulkan-1.dll 和 libvk_swiftshader.dll 之间切换,可能需要使用 Vulkan Loader 来加载不同的 ICD(Installable Client Driver)。
Vulkan Loader 是一个共享库,它可以根据系统配置和环境变量来选择合适的 ICD 来执行 Vulkan API 调用。
如果你的设备不支持 Vulkan,那么可以使用 SwiftShader 库中的 libvk_swiftshader.dll 作为 ICD,并将其注册到 Vulkan Loader 中。
这样,当程序调用 vulkan-1.dll 时,Vulkan Loader 就会自动加载 libvk_swiftshader.dll 并使用 CPU 运算。
如果您的设备支持 Vulkan,那么您可以使用其他的 ICD(例如 NVIDIA 或 AMD 的驱动程序提供的),并将其注册到 Vulkan Loader 中。
这样,当程序调用 vulkan-1.dll 时,Vulkan Loader 就会自动加载相应的 ICD 并使用 GPU 运算。
要注册 ICD 到 Vulkan Loader 中,您需要创建一个 JSON 文件来描述 ICD 的信息,并将其放在一个特定的位置或者设置 VK_ICD_FILENAMES 环境变量来指向它。
SwiftShader 库中已经提供了一个 vk_swiftshader_icd.json 文件,可以参考它来创建其他 ICD 的 JSON 文件。
如果设备不支持vulkan,就用swiftshader,否则就加载系统的vulkan的正确姿势(让程序能够智能的在vulkan-1.dll和libvk_swiftshader.dll之间切换)的更多相关文章
- 小程序组件-swipe多页切换,并支持下拉刷新,上拉加载,menu动态联动切换
前言 最近一个小程序项目中遇到一个需求,就是实现类似资讯类app的多页面切换的那种效果, 如下图: 最终效果: 1.功能分析 首先实现这个功能分为三步: 实现顶部menu菜单 实现多页面滑动切换 支持 ...
- [Android] Android 支持下拉刷新、上拉加载更多 的 XRecyclerview
XRecyclerView一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerView.使用方式和RecyclerView完全一致,不需要额外的layout,不需要写特殊 ...
- 【tp5】ThinkCMF5框架,配置使其支持不同终端PC/WAP/Wechat能加载不同配置和视图
1.版本 5.0.18 2.在data/conf/ 新增config.php文件,内容如下: <?php //ThinkCMF5区别不同客户端加载不同配置文件和模块.视图 $default_mo ...
- Linux加载DTS设备节点的过程(以高通8974平台为例)
DTS是Device Tree Source的缩写,用来描述设备的硬件细节.在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码, ...
- linux设备和驱动加载的先后顺序
点击打开链接 Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢. Linux系统使用两种方式去加载系统中的模块:动态和静态. 静态加载:将所有 ...
- linux 设备驱动加载的先后顺序
Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢. 1.初始化宏 Linux系统使用两种方式去加载系统中的模块:动态和静态. 静态加载:将所有 ...
- javascript检查移动设备是否支持重力方向感应
javascript如何检查移动设备,如手机平台是否支持重力或者方向感应. 可以使用html5提供的重力和方向感应接口来判断. html5 中针对高端手机提供了重力感应和重力加速的接口,开发可以利用这 ...
- 关于oracle12c对RAW裸设备的支持?
关于oracle12c对RAW裸设备的支持? 本文内容由ORACLE运维高级群的讨论,有xifenfei前辈提供. 12C对于裸设备的支持和11G R2没有本质区别,在装rac的时候不能使用裸设备,但 ...
- 【转】使IFRAME在iOS设备上支持滚动
原文链接: Scroll IFRAMEs on iOS原文日期: 2014年07月02日 翻译日期: 2014年07月10日翻译人员: 铁锚 很长时间以来, iOS设备上Safari中超出边界的元素将 ...
- 使IFRAME在iOS设备上支持滚动
原文链接: Scroll IFRAMEs on iOS原文日期: 2014年07月02日 翻译日期: 2014年07月10日翻译人员: 铁锚很长时间以来, iOS设备上Safari中超出边界的元素将不 ...
随机推荐
- git合并某分支上的单次提交(cherry-pick)
1. 查找提交对应的hash值 git log 查看 d 查看下一页,q退出 vscode通过gitlens插件查看 2.合并提交 git cherry-pick hahs值
- vue+scss混合(mixins)使用(css代码的vuex(公共管理))
scss混合(mixins)使用 例一.使用混合mixins中的变量来定义一个n行文本溢出隐藏的公用样式. 1.创建mixins.scss文件 //文本n行溢出隐藏 @mixin ellipsisBa ...
- 教你如何进行Prometheus 分片自动缩放
本文分享自华为云社区<使用 Prometheus-Operator 进行 Prometheus + Keda 分片自动缩放>,作者: Kubeservice@董江. 垂直缩放与水平缩放 P ...
- HarmonyOS NEXT应用开发—验证码布局
介绍 本示例介绍如何使用Text组件实现验证码场景,并禁用对内容的选中.复制.光标. 效果图预览 使用说明 单击组件可弹出输入法 在进行验证码输入时,无法对中间单个数字进行更改,无法选中输入内容,无光 ...
- PolarDB-X拆分键推荐
简介: PolarDB-X 2.0提供了透明分布式的能力,默认进行主键的哈希拆分,让用户无感知的从单机数据库迁移到分布式数据库.拆分键的选择是学术界和工业界研究已久的问题,一个重要选型是tp优先还是a ...
- Roslyn 分析器 EnforceExtendedAnalyzerRules 属性的作用
在开始编写 dotnet 的 Roslyn 分析器项目时,会被 VisualStudio 通过 RS1036 要求在项目文件配置上 EnforceExtendedAnalyzerRules 属性,本文 ...
- K8s控制器---DaemonSet控制器(12)
一.DaemonSet控制器:概念.原理解读 1.1 DaemonSet概述 DaemonSet 控制器能够确保 k8s 集群所有的节点都运行一个相同的 pod 副本,当向 k8s 集群中增加 nod ...
- 实验8 #第8章 Verilog有限状态机设计-2 #Verilog #Quartus #modelsim
2. 汽车尾灯控制器 2.1 实验要求:设计一个汽车尾灯控制电路. (1)功能:汽车左右两侧各有3个尾灯,要求控制尾灯按如下规则亮灭. 汽车沿直线行驶时,两侧指示灯全灭. 右转弯时,左侧的指示灯全灭, ...
- 零侵入!试试这款Api接口文档生成器!
大家好,我是 Java陈序员. 作为一名合格的程序员,不仅代码要写好,而且文档要写好. 虽然目前有成熟的框架可以快速生成接口文档,如大名鼎鼎的 Swagger.但是 Swagger 需要编写大量的注解 ...
- 羽夏壳世界—— PE 解析的实现
写在前面 此系列是本人一个字一个字码出来的,包括代码实现和效果截图. 如有好的建议,欢迎反馈.码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作.如想转载,请把我的转载信息附在文章后 ...