JETSON 也能摸起来——偷偷打会儿 DOOM 吧 :)
本文将展示如何在你的 Nvidia Jetson 设备上安装 DOOM3 BFG
注意:本项目最好需要将您的 Jetson 设备刷至 JetPack 4.4 及以上版本以获得更好的支持
编译安装 Vulkan
在 Jetson 设备上 DOOM 需要图形 API,所以我们需要先安装一下 Vulkan
Vulkan 的 GitHub 地址:https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers
Linux 下编译安装 Vulkan 命令
Install vulkan header
$ git clone https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers.git
$ sudo cp -r Vulkan-LoaderAndValidationLayers/include/vulkan /usr/include/
$ sudo apt-get install git cmake build-essential libx11-xcb-dev libxkbcommon-dev libmirclient-dev libwayland-dev libxrandr-dev
$ cd Vulkan-LoaderAndValidationLayers
$ ./update_external_sources.sh
$ mkdir build
$ cd build
$ cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Debug -DDEMOS_WSI_SELECTION=XLIB
$ make
$ sudo make install
注意:GitHub 下载有点慢,可以尝试使用 gitee 加速下载噢(教程可以 点击这里 )
安装后输入 vulkaninfo | grep xlib 确认一下
$ vulkaninfo | grep xlib
VK_KHR_xlib_surface : extension revision 6
如果显示如上那基本没什么问题了
还可以跑一下 build/demos 里的 vulkaninfo 和 smoketest,如果都能跑那基本没什么问题了
编译安装 DOOM3 BFG
项目的 GitHub 地址:https://github.com/mrcmunir/RBDOOM-3-BFG
安装依赖
sudo apt-get install cmake libsdl2-dev libopenal-dev
拷贝项目
git clone https://github.com/mrcmunir/RBDOOM-3-BFG
注意:在编译之前我们需要手动打一个补丁,不然有可能会出现如下错误
----- Initializing Vulkan driver -----
Creating Vulkan Instance...
Sys_Error: Error while creating Vulkan surface: VK_KHR_xlib_surface extension is not enabled in the Vulkan instance.
进入 neo 文件夹,找到 sys/sdl/sdl_vkimp.cpp 这个文件并打开
找到如下位置
std::vector<const char*> get_required_extensions( const std::vector<const char*>
sdlInstanceExtensions.resize( sdlCount );
SDL_Vulkan_GetInstanceExtensions( nullptr, &sdlCount, sdlInstanceExtensions.data() );
if( enableValidationLayers )
{
idLib::Printf( "\nNumber of availiable instance extensions\t%i\n", sdlCount );
添加如下两行代码
sdlInstanceExtensions.push_back( "VK_KHR_surface" );
sdlInstanceExtensions.push_back( "VK_KHR_xlib_surface" );
添加位置如下
std::vector<const char*> get_required_extensions( const std::vector<const char*>
sdlInstanceExtensions.resize( sdlCount );
SDL_Vulkan_GetInstanceExtensions( nullptr, &sdlCount, sdlInstanceExtensions.data() );
// I have no idea why this part doesn't get added to the list :(
sdlInstanceExtensions.push_back( "VK_KHR_surface" );
sdlInstanceExtensions.push_back( "VK_KHR_xlib_surface" );
if( enableValidationLayers )
{
idLib::Printf( "\nNumber of availiable instance extensions\t%i\n", sdlCount );
回到 neo 文件夹,执行脚本 cmake-linux-nvidia-jetson-vulkan-release.sh
./cmake-linux-nvidia-jetson-vulkan-release.sh
进入 build 文件夹,编译
cd ../build
make
安装完成后,还需要添加游戏 base 文件夹
用官方的原话:To play the game, you need the game data from a legal copy of the game.
所以,支持正版童鞋,强烈推荐在 GOG 或者 Stream 先买一份正版,再把游戏主目录内的 base 文件夹添加到 build 文件夹内
想省点钱的童鞋,我这有一份三大妈版的网盘链接,最关键的是这里还做了汉化(坏笑)
链接:https://pan.baidu.com/s/1SRbGiMgCeX-P6Vfu6lBPnQ
提取码:762p
将 base 文件夹拷贝到编译好的 build 文件夹后,打开终端运行 RBDoom3BFG
等灯等灯!!!是时候杀穿地狱了:)
如果想追求更高性能,使用以下命令进入最高性能模式
$ sudo nvpmodel -m 0
$ sudo jetson_clocks
以 Jetson nano 为例,在没有大量敌人或者复杂光影的情况下, 4K 分辨率下大概能有 20 帧或者 15 帧,在 1080p 分辨率下,大概能有 45 到 60 帧。(说明有显卡确实可以为所欲为)