我正在尝试使其正常工作。 我的设置是带有两个图形卡的Ubuntu 18.04,一个是板载的,另一个是NVIDIA GPU。我已连接监视器,并且$ DISPLAY设置为:0 我的应用程序是使用puppeteer headless使用node-js自动从webgl-context(BABYLON.js)网页中获取自动化屏幕截图。 硬件在我们的数据中心中运行,板载GPU在物理上连接到管理员使用的监督工具。
但是,无论我怎么做,我都无法使puppeteer / chromium在nvidia GPU上建立上下文,它似乎仅将板载GPU用于所有内容。
我尝试的方法是运行以下代码:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: true,
args: ['--use-gl=desktop'],
});
const page = await browser.newPage();
await page
.goto('https://codepen.io/BabylonJS/pen/QxzBPd', { waitUntil: 'networkidle0', timeout: 20 * 60 * 1000 })
.catch(e => console.log(e));
await page.screenshot({
path: 'webgl_test.png'
});
await browser.close();
})();
我得到了渲染的输出,但是它似乎并没有使用nvidia GPU,因为我使用watch -n 0.1 nvidia-smi
监视的nvidia-smi没有显示任何进程在运行。
是否有任何方法可以强制伪装者使用GPU渲染页面?还是我必须首先在此GPU上创建X服务器?