gpt4 book ai didi

amazon-web-services - 在 AWS EC2 上运行 OpenGL + SDL2

转载 作者:行者123 更新时间:2023-12-02 03:13:59 25 4
gpt4 key购买 nike

我正在使用 AWS EC2 Ubuntu 14.04 来测试我的 OpenGL + SDL2 应用程序。我使用的是 SDL 2.0.2 版。因为 AWS EC2 是 headless 的,所以我使用 xvfb 并在/etc/init.d/xvfb 中使用这个脚本:

XVFB=/usr/bin/Xvfb
XVFBARGS=":99 -ac -screen 0 1024x768x24"
PIDFILE=/tmp/cucumber_xvfb_99.pid
case "$1" in
start)
echo -n "Starting virtual X frame buffer: Xvfb"
/sbin/start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS
echo "."
;;
stop)
echo -n "Stopping virtual X frame buffer: Xvfb"
/sbin/start-stop-daemon --stop --quiet --pidfile $PIDFILE
rm -f $PIDFILE
echo "."
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/xvfb {start|stop|restart}"
exit 1
esac
exit 0

这些是我运行应用程序之前的 linux 命令:

export DISPLAY=:99.0
sh -e /etc/init.d/xvfb start
sleep 3

但是调用 SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) 时出现“无法连接到 Mir 服务器”错误

我实际上这样做是因为我遵循 https://docs.travis-ci.com/user/gui-and-headless-browsers/ 的指示并想在我的 AWS 机器上做同样的事情。我也用 travis 尝试过,xvfb 脚本也取自 travis ci setup。

不确定这是否有帮助,但这些是 glxinfo | 的输出grep OpenGL:

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits)
OpenGL version string: 2.1 Mesa 10.1.3
OpenGL shading language version string: 1.30
OpenGL extensions:

所以,我想基本上我的问题是:如何在 headless Ubuntu 14.04 中设置 OpenGL(最好是版本 3)+ SDL2?

提前致谢

最佳答案

你有两个选择。

  1. 使用真正的 X11 服务器。大多数 OpenGL 实现不支持 Headless OpenGL。这将允许您使用硬件加速。您需要选择具有正确硬件支持的 EC2 实例。

  2. 使用 OSMesa。这将为您提供完全不需要 X11 或任何其他窗口服务器的纯软件实现。

当硬件加速不可用时,通常/期望获得 Gallium + llvmpipe 作为实现。这可以。如果您需要更新版本的 OpenGL,则需要安装更新版本的 Mesa。 Mesa 10.1.3 此时已有两年多的历史(从 2014 年 5 月开始)。获取更新版本的 Mesa 意味着使用备用存储库、安装不同版本的 Ubuntu 或自己编译 Mesa。

如果您自己编译 Mesa,您可以为 OSMesa(“屏幕外 Mesa”)配置它,这意味着它将不依赖于 X11。参见 Off-screen Rendering了解更多详情。

关于amazon-web-services - 在 AWS EC2 上运行 OpenGL + SDL2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38153660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com