EGL需要GPU吗?

3
我正在尝试为我正在处理的问题进行服务器端渲染。EGL提供了一种定义OpenGL上下文而不需要窗口系统的方法。我已经成功地在我的笔记本电脑上使用EGL进行离屏渲染,但是当我尝试在digitalocean实例上运行代码时,EGL无法初始化。能够在云计算资源上运行此代码是我需要支持的用例之一。
我想知道EGL是否是可行的方法,但我不明白为什么它失败了。它需要GPU吗?这是在虚拟机上运行的问题吗?
以下代码重现了我遇到的问题:
#include <EGL/egl.h>
#include <assert.h>

int main(int argc, char** argv) {                                                  

    EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
    assert(display != EGL_NO_DISPLAY);

    EGLBoolean result = eglInitialize(display, NULL, NULL); 
    //assert(result != EGL_FALSE);              

    EGLint errcode = eglGetError();
    assert(errcode == EGL_SUCCESS);                             

    return 0;                                                                      
} 

调用eglInitialize后返回的错误代码是EGL_NOT_INITIALIZED,从头文件中得知这意味着“指定的EGL显示连接未被初始化或无法初始化。”默认显示没有错误返回,因此我认为问题可能是它无法被初始化。所以我正在努力找出为什么它没有被初始化。

我处于同样的情况。你是如何解决这个问题的? - Joachim Breitner
1个回答

3
如果您希望使用EGL实现硬件加速,您需要一张GPU显卡。因此,没有GPU的服务器几乎没有什么好处。
如果您仍然想在服务器上使用软件渲染并使用OpenGL API,您可以尝试使用mesaGL软件实现。
但是,如果您正在进行软件渲染,您可以开始使用其他方法,例如使用软件光线跟踪器,例如pov ray

我的目标是不需要修改渲染代码,而是使用EGL定义渲染输出是在屏幕上还是纹理上,因为我想支持这两种用例。 - jdowner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接