可以在没有GPU存在的情况下运行opengl调用吗?

时间:2017-11-15 22:38:36

标签: c++ opengl gpu

我知道opengl是一个允许在GPU上执行某些任务/调用(如阴影)以便更快计算(硬件加速)的库。我一直在互联网上阅读它,我想知道如果没有GPU存在,对opengl的调用是否会运行。例如,此论坛上的某个人(https://www.gamedev.net/forums/topic/638883-will-opengl-3d-games-run-in-a-pc-without-a-dedicated-video-card/)提到它可以作为软件模拟运行。任何人都能说到这个吗?

2 个答案:

答案 0 :(得分:3)

是的,如果一切只取决于设备的供应商是否为他或她的系统编写OpenGL驱动程序而烦恼。所有OpenGL功能都可以在没有显卡的情况下实现,但当然还会带来性能损失。

答案 1 :(得分:2)

严格来说,OpenGL不是,而只是一个编程接口(API)。有关如何在特定计算机上实现此API的具体细节保持打开状态,可供系统实现者使用。它可能是一个软件光栅化器,它可能是专用硬件的接口。

OpenGL已成为Windows,LSB4 / Desktop(Linux标准基础/桌面要求)和MacOS的ABI(即应用程序可确保在系统上可用的一组内容)的一部分。因此,系统必须确保总是以某种方式至少拥有一组最小的OpenGL功能(我们在这里说OpenGL-1.x),即使不存在硬件加速。

应该注意的是,所有这些ABI都在反对这一假设,它用于向显示设备呈现内容:

Windows后备软件光栅化器实现(BTW非常慢)确实允许渲染到GDI位图,但不支持PBuffers;并且甚至不考虑帧缓冲对象。

Mesa软件光栅化器几乎完全是OpenGL-3.x功能。