不同版本的应用程序使用不同的OpenGL渲染器

不同版本的应用程序使用不同的OpenGL渲染器

我有同一应用程序的两个版本(相同的源代码,只是使用不同版本的 wxWidgets 库构建),由于某种原因使用不同的 OpenGL 渲染器。我使用它们运行

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ./wxTest_XX

它们打印 OpenGL 供应商、渲染器和版本字符串。版本 1(使用通过安装的 wxWidgets 版本 3.0.4 构建sudo apt install libwxgtk3.0-gtk3-dev)打印

Vendor: NVIDIA Corporation, Renderer: NVIDIA RTX A5000/PCIe/SSE2, Version: 4.6.0 NVIDIA 525.60.13

而版本 2(使用从源代码构建的 wxWidgets 3.2.1 构建)打印

libEGL warning: DRI2: failed to authenticate
Vendor: Mesa/X.org, Renderer: llvmpipe (LLVM 12.0.0, 256 bits), Version: 3.1 Mesa 21.2.6

(注意应用程序启动期间打印的警告消息)

由于我需要应用程序使用 NVidia GPU,因此我试图理解为什么它在一种情况下选择了错误的 OpenGL 渲染器。其他关于选择 OpenGL 渲染器的帖子大多提出__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia,或者涉及它根本不起作用的情况。但显然,系统能够使用正确的 GPU,只是一个应用程序不想这样做。我目前正在尝试理解为什么它在一种情况下有效,但在另一种情况下不起作用,到目前为止还没有任何运气。到目前为止,尝试搜索libEGL warning: DRI2: failed to authenticate警告消息也没有产生任何有用的结果。

我已经在 wxWidgets 库的论坛中,他们告诉我这与库本身无关,我应该看看系统的其余部分。

长话短说:在其他应用程序设法这样做的系统中,如何让我的应用程序使用专用的 NVidia GPU 作为 OpenGL 渲染器?

有关系统的一些详细信息:

  • 操作系统:Ubuntu 20.04.5 LTS

  • GPU:NVidia RTX A5000(驱动程序版本525.60.13)

  • 任何地方都没有插入屏幕,我通过远程桌面/xrdp 连接

  • 输出lspci | grep -i vga

    01:00.0 VGA compatible controller: NVIDIA Corporation Device 2231 (rev a1)
    43:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 41)
    

相关内容