一些老的显卡设备没有更新驱动,甚至根本就不支持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之间切换)的更多相关文章

  1. 小程序组件-swipe多页切换,并支持下拉刷新,上拉加载,menu动态联动切换

    前言 最近一个小程序项目中遇到一个需求,就是实现类似资讯类app的多页面切换的那种效果, 如下图: 最终效果: 1.功能分析 首先实现这个功能分为三步: 实现顶部menu菜单 实现多页面滑动切换 支持 ...

  2. [Android] Android 支持下拉刷新、上拉加载更多 的 XRecyclerview

    XRecyclerView一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerView.使用方式和RecyclerView完全一致,不需要额外的layout,不需要写特殊 ...

  3. 【tp5】ThinkCMF5框架,配置使其支持不同终端PC/WAP/Wechat能加载不同配置和视图

    1.版本 5.0.18 2.在data/conf/ 新增config.php文件,内容如下: <?php //ThinkCMF5区别不同客户端加载不同配置文件和模块.视图 $default_mo ...

  4. Linux加载DTS设备节点的过程(以高通8974平台为例)

    DTS是Device Tree Source的缩写,用来描述设备的硬件细节.在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码, ...

  5. linux设备和驱动加载的先后顺序

    点击打开链接 Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢. Linux系统使用两种方式去加载系统中的模块:动态和静态. 静态加载:将所有 ...

  6. linux 设备驱动加载的先后顺序

    Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢. 1.初始化宏 Linux系统使用两种方式去加载系统中的模块:动态和静态. 静态加载:将所有 ...

  7. javascript检查移动设备是否支持重力方向感应

    javascript如何检查移动设备,如手机平台是否支持重力或者方向感应. 可以使用html5提供的重力和方向感应接口来判断. html5 中针对高端手机提供了重力感应和重力加速的接口,开发可以利用这 ...

  8. 关于oracle12c对RAW裸设备的支持?

    关于oracle12c对RAW裸设备的支持? 本文内容由ORACLE运维高级群的讨论,有xifenfei前辈提供. 12C对于裸设备的支持和11G R2没有本质区别,在装rac的时候不能使用裸设备,但 ...

  9. 【转】使IFRAME在iOS设备上支持滚动

    原文链接: Scroll IFRAMEs on iOS原文日期: 2014年07月02日 翻译日期: 2014年07月10日翻译人员: 铁锚 很长时间以来, iOS设备上Safari中超出边界的元素将 ...

  10. 使IFRAME在iOS设备上支持滚动

    原文链接: Scroll IFRAMEs on iOS原文日期: 2014年07月02日 翻译日期: 2014年07月10日翻译人员: 铁锚很长时间以来, iOS设备上Safari中超出边界的元素将不 ...

随机推荐

  1. 几种常见的MySQL/PolarDB-MySQL回收表空间方法对比

    简介: 当我们频繁的删除表中的数据后,碎片就会变多,有经验的DBA就会回收表空间,回收表空间有好几种方式,我们要选择哪一种呢? 背景 为什么需要回收表空间?任何一个存储或您购买的实例规格都有容量限制, ...

  2. Spring Boot 微服务性能下降九成!使用 Arthas 定位根因

    简介: 接收到公司业务部门的开发反馈,应用在升级公司内部框架后,UAT(预生产)环境接口性能压测不达标. 背景 接收到公司业务部门的开发反馈,应用在升级公司内部框架后,UAT(预生产)环境接口性能压测 ...

  3. 基于Serverless的云原生转型实践

    简介: 新一代的技术架构是什么?如何变革?是很多互联网企业面临的问题.而云原生架构则是这个问题最好的答案,因为云原生架构对云计算服务方式与互联网架构进行整体性升级,深刻改变着整个商业世界的 IT 根基 ...

  4. 一文详解Redis中BigKey、HotKey的发现与处理

    简介: 在Redis的使用过程中,我们经常会遇到BigKey(下文将其称为"大key")及HotKey(下文将其称为"热key").大Key与热Key如果未能及 ...

  5. embedding models 是什么

    embedding models 是一类机器学习模型,它们的核心功能是将高维.离散的输入数据(如词汇.类别标签.节点或实体)映射到低维.连续的向量空间中. 这些向量(即 embeddings)通常具有 ...

  6. Total Commander 使用 mklink 建立文件夹链接 将 C 盘文件迁移到其他盘

    在安装完成了 100000000 个软件之后,我 1T 的 C 盘的空间终于不足了,由于安装了大量的特别挑的不专业的软件,强行放在其他的盘将水土不服.于是在老师傅的指导下,我采用了 mklink 神奇 ...

  7. 通俗易懂的生产环境Web应用架构介绍

    前言 看见一篇非常通俗易懂且适合新手阅读的Web应用架构文章,我将其手工翻译了出来,分享给大家. 也可以去阅读英文原文,标题为,贴出链接: https://stephenmann.io/post/wh ...

  8. Linux系统命令-目录命令

    1.ls命令:主要作用是显示目录下的内容 基本格式 [root@localhost ~]# ls [选项] [参数是文件名或目录名] 常用选项 -a:显示所有文件 --color=when:支持颜色输 ...

  9. Wordpress给每一个分类栏目定制不同的广告位

    给分类栏目添加广告位,等同于添加自定义字段. 如果需要依据不同的栏目给广告位添加不同的tag来源,需要在模板页面中获取栏目的分类别名,读取不同的广告. 图1 如图1所示添加新的图片输入框 1. 实现的 ...

  10. 有隙可乘 - Android 序列化漏洞分析实战

    作者:vivo 互联网大前端团队 - Ma Lian 本文主要描述了FileProvider,startAnyWhere实现,Parcel不对称漏洞以及这三者结合产生的漏洞利用实战,另外阐述了漏洞利用 ...