我正在编写一个非常基本的 OpenGL C++ 程序(Linux 64 位)。
事实上,我有3个程序:
- 一个主要的 C++ 程序
- 顶点着色器
- 片段着色器
这 2 个着色器是在运行时编译的。我想这些程序是由 GPU 在视频卡上并行运行的。
我的问题是,如果我的计算机包含没有 GPU 的非常基本的视频卡,会发生什么情况?
我曾尝试在禁用“3d 加速”的情况下在 VirtualBox 上运行我的程序,但程序运行正常!
这是否意味着如果没有 GPU,opengl 会检测视频卡并自动在 CPU 上运行着色器?
最佳答案
OpenGL 只是一个标准,该标准有不同的实现。通常,您会依赖图形驱动程序提供的实现,这显然会使用 GPU。
但是,大多数桌面 Linux 发行版还包括 OpenGL 的软件实现,称为 Mesa,如果您没有安装支持 OpenGL 的视频驱动程序,可以使用它。 (如今很少能找到不支持 OpenGL 着色器的任何视频硬件,甚至是 CPU 上的集成视频,但在 Linux 驱动程序上可能会出现问题,在这种情况下,VM 无法提供硬件加速。 )
所以,简短的回答是你的着色器可以在 CPU 上运行,但这可能会或不会发生,它可能会或可能不会自动,这取决于你安装的视频驱动程序(或其他 OpenGL 实现) .
关于c++ - 如果没有显卡,谁来运行 OpenGL 着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46506685/