如何在无头 GPU 上枚举和使用 OpenGL?

Moo*_*oys 6 linux x11 opengl

尽管进行了数天的研究,但我似乎找不到一种可靠的方法来在辅助 GPU 上以编程方式创建 GL[ES] 上下文。例如,在我的笔记本电脑上,我有英特尔 GPU 驱动面板,还有一个辅助 NVIDIA 卡没有连接到任何东西。 optirunprimusrun让我在NVIDIA显卡上运行,但我无法检测到英特尔GPU。我也不想要求更改 xorg.conf 来添加虚拟显示。

我尝试了许多扩展,但似乎没有一个可以正常工作:

  • glXEnumerateVideoDevicesNV 返回 0 个设备。
  • eglQueryDevicesEXT 返回 0 个设备。
  • eglGetPlatformDisplay 仅适用于主面板并为我提供英特尔上下文

我很乐意弄脏我的手,例如滚动我自己的装载机,但我似乎找不到任何关于从哪里开始的文档。我已经查看了源代码,optirun但它似乎只是在进行重定向。显然,相当于 Windows 的东西IDXGIFactory::EnumAdapters是理想的,但我对任何不需要额外系统配置的东西都很好。