内容字号:默认大号超大号

段落设置:取消段首缩进段首缩进

字体设置:切换到微软雅黑切换到宋体

业界资讯 软件之家
Win10之家 WP之家
iPhone之家 iPad之家
安卓之家 数码之家
评测中心 智能设备
精准搜索请尝试:精确搜索

IT之家学院:如何在双显卡Linux设备上运行Vulkan应用

2017-6-14 18:01:52来源:IT之家作者:鸢一雨音责编:仲平 评论:

感谢IT之家网友 鸢一雨音 的投稿

注意:禁用核心显卡是可行的,但不适用于便携式计算机。

我在上一篇《如何为Linux配置双显卡》的文章中提到,为Linux提供Optimus技术支持的Bumblebee项目并不支持Vulkan图形接口。但是在最近的众多测试里,Vulkan接口表现出来的性能确实高得令人咋舌。很多游戏在同等硬件条件下,使用Linux下的Vulkan接口运行甚至能吊打Windows下D3D的性能。这令很多Linux双显卡(特别是便携式计算机)用户不舒服:明明Vulkan性能很强,但是迫于日常节能的需求,不能用独立显卡渲染整个X;而实现了Optimus技术的Bumblebee项目又偏偏不支持Vulkan。

IT之家学院:如何在双显卡Linux设备上运行Vulkan应用

本教程在此提供一种解决方案。既然日常使用的X不能用独立显卡渲染,那我就在需要玩游戏的时候,在不退出日常使用的X会话的情况下,使用独立显卡渲染一个新的X会话;等到游戏玩完了,退出这个会话并关掉独立显卡。这样那个新的X会话就是完全采用独立显卡渲染的,也就不存在因为Bumblebee而无法兼容Vulkan接口的问题了;同时,和Optimus技术一样,在我们没有启动这个特殊的会话的时候,独立显卡是关闭的,也不会消耗额外的电量。

一、安装nvidia-xrun

这种解决方案可以手动实现,但是已经有大神将其整合为一个工具:nvidia-xrun项目。如果你是Arch Linux 64位版用户,你应该能很轻松地通过AUR安装这个包:

yaourt -S nvidia-xrun-git

安装完成之后,你应该可以使用nvidia-xrun指令。

先别着急,这个工具需要你安装好英伟达的官方驱动程序。安装官方驱动的方式和注意事项在上篇文章中已经提到过,这里不在赘述。

不要立即执行这个指令,先看完下面的步骤。

二、安装一个桌面环境

我们的最终目的是运行一个桌面应用,所以我们需要一个桌面环境来承载它。虽然你已经有了一个桌面环境,但考虑到我们只是为了承载某一个应用程序,所以桌面环境越轻便越好。理想的选择是openbox。如果你是Arch Linux 64位版用户,执行下面的指令:

sudo pacman -S openbox

就可以安装一个只有不到2MB的桌面环境。

为了让nvidia-xrun工具启动X的时候启动openbox,我们创建一个文件~/.nvidia-xinitrc,并在里面写入

openbox-session

这样通过nvidia-xrun启动的那个X就会自动启动openbox桌面环境。

三、配置nvidia-xrun

到目前为止,nvidia-xrun应该还是不能正常工作的。因为我们没有配置它所使用的X配置文件。从头安装过Arch Linux的朋友们应该清楚,配置X是一个怎么样的步骤。

nvidia-xrun包使用下面这些配置文件(配置文件目录):

1、/etc/X11/nvidia-xorg.conf:主要的X配置文件;

2、/etc/X11/nvidia-xorg.conf.d:自定义的X配置文件目录;

3、/etc/X11/xinit/nvidia-xinitrc:对应于普通xinitrc的配置文件;

4、/etc/X11/xinit/nvidia-xinitrc.d:自定义的xinitrc配置文件目录;

5、~/.nvidia-xinitrc:用户自己的xinitrc配置文件;

为了在双显卡计算机上正确使用独立显卡渲染X,我们需要找到nVidia设备正确的总线ID。我们使用lspci指令来查看所有的PCI设备,并筛选出我们的独立显卡。执行:

lscpi | grep NVIDIA

你应该会看到类似的输出:

IT之家学院:如何在双显卡Linux设备上运行Vulkan应用

由此可见,我的设备的独立显卡总线ID是4:0:0,那么我们修改(或新建)/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf文件,内容如下:

IT之家学院:如何在双显卡Linux设备上运行Vulkan应用

至此,配置基本完成了。你可以切换到一个新的终端(快捷键一般是Ctrl+Alt+F3~F5,之所以没有F1和F2是因为这两个终端一般都被默认桌面环境占了),登录进你的用户,并执行nvidia-xrun指令。它会询问你sudo密码,然后使用独立显卡启动一个独立的X会话,并启动openbox桌面环境。你可以在这个桌面环境里执行Steam和Steam游戏——它们都是被独立显卡直接渲染的,当然也就支持Vulkan。

当你不想再玩游戏的时候,退出桌面环境和X会话,nvidia-xrun会自动关掉你的独立显卡以省电,然后你可以登出你的账户,回到你原本的桌面环境所在的终端,继续你的日常工作。

采用这种方式不仅能支持Vulkan接口,渲染效率也会比Bumblebee高一些。但是缺点是你需要在一个新的终端上启动一个新的X服务器。即使如此,这也比使用英伟达提供的Prime选项方便得多:你不需要为了玩游戏而退出你日常使用的桌面环境重新登入;这同样也比禁用核心显卡这种相对暴力的手段合理,特别是对于便携式计算机,独立显卡功耗不可忽视的时候。

IT之家,软媒旗下科技门户网站 - 爱科技,爱这里。

Copyright (C) RuanMei.com, All Rights Reserved.

软媒公司 版权所有 鲁ICP备11016544号-10