IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> VM虚拟机下安装vulkan的踩坑 -> 正文阅读

[系统运维]VM虚拟机下安装vulkan的踩坑

0、序

最近终于把games101差不多追完了,打算接下来学一下图形学的API,参考了网上的一些资料,比较了一下directX系列,opengl,vulkan,决定学习vulkan(立下自己不轻易狗带的flag)。

自己比较喜欢在linux环境下写代码,决定在VM虚拟机中的Ubuntu18.04中搭建vulkan环境。

1、虚拟机下的踩坑

结论:虚拟机下安装vulkan环境失败

  • 在官网上下载了SDK后,运行vulkaninfo命令总是失败,报错如下

vulkaninfo.h 248 vkEnumeratePhysicalDevice: failed with ERROR_INITIALIZATION_FAILED

  • Google了一下并没有找到合适的解答,寻思了一下,这报错像是在找GPU的时候失败了。因为主机中是nvidia的GPU,我尝试在虚拟机中搜索了nvidia_icd,果然无果,看来是虚拟机中没有nvidia GPU的icd。
  • 接下来我又尝试查看了一下虚拟机中的显卡情况
$ lspci | grep -i vga
00:0f.0 VGA compatible controller: VMware SVGA II Adapter

阿勒勒,nvidia的显卡呢?

  • 又Google了一下,大概解释是,虚拟机并没有权限直接使用GPU,而是VM虚拟一个GPU出来,比如上面的 SVGA II,然后再间接利用主机的GPU实现图形化加速,因此在Ubuntu看来,机器上只有这个SVGA II的GPU。(http://vmware-svga.sourceforge.net/index.old.html)。
  • 下面是来自vulkan官网的一个结构图
    在这里插入图片描述
  • 按照我的理解,下载的SDK,主要是loader和layer部分的代码,而ICD则由GPU厂商提供(比如在linux中,nvidia的GPU对应的icd的json文件为nvidia_icd)。
  • 现在Ubuntu中的GPU为SVGA II的GPU,那么就需要VMware提供相应的icd,搜索了一下,目前VMware虚拟的GPU貌似并不支持这一点,这样就没办法在VM虚拟机中搭建vulkan环境。

2. windows下的安装

于是我回到win10的主机环境,安装了官网提供的windows的SDK,这次在命令行输入vkcube检测:
在这里插入图片描述
哈哈,不愧是windows,瞬间成功!

3. vs2019中的环境配置

最后在vs2019中配置头文件和库的搜索路径,使得编译的时候能够找到需要的文件。

最简单的可以参考官网的windows安装文档,把SDK中的template复制到vs的C++ template中,每次要创建一个vulkan项目的时候就打开这个模板就好了。
在这里插入图片描述
不过我更希望自己来配置路径,这样出了问题或者换了一些库自己能更好出来。

因为接下来打算跟着这个教程学习,所以按照这上面的教程配置了路径,默认的模板中(或者说官方的SDK)使用的是SDL库来创建窗口,而教程中使用GLFW库来创建窗口。

具体来说,在VS2019中要配置好路径需要设置3个变量

  • 属性页/C++/常规/附加包含目录(指定头文件搜索路径)
  • 属性页/链接器/常规/附件库目录(指定链接时库文件的搜索路径)
  • 属性页/链接器/输入/附加依赖项(指定需要连接的动态库)

百度了一下,windows下动态库文件有两种,一种是.lib, 一种是.dll,.lib类似于头文件,记录了.dll的各种符号等等,不包含实际的代码。.dll则对应linux下的.so。

最后,把配置好的vulkan编程环境导出为模板即可。以后便可以直接用该模版而不需要重新设置路径。
在这里插入图片描述
如果要删除自定义的模板,需要删除两个地方对应的zip文件

usr家目录\Visual Studio 2019\My Exported Templates
usr家目录\Visual Studio 2019\Templates\ProjectTemplates

OK,整个环境配置完成!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:48:00  更:2021-09-02 11:48:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:18:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码