无法在 WSL2 上运行 OpenGL

2024-05-13

我尝试在 WSL2 上运行 OpenGL 代码,但在尝试运行可执行文件时出现以下错误:

GLFW error 65543: GLX: Failed to create context: GLXBadFBConfig
Unable to create GLFW window

这是我用来创建窗口的代码:

....
GLFWwindow* initialize() {
      int glfwInitRes = glfwInit();
      if (!glfwInitRes) {
         fprintf(stderr, "Unable to initialize GLFW\n");
         return nullptr;
      }

      glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
      glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
      glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
      glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);

      GLFWwindow* window = glfwCreateWindow(1280, 720, "InitGL", nullptr, nullptr);
      if (!window) {
         fprintf(stderr, "Unable to create GLFW window\n");
         glfwTerminate();
         return nullptr;
      }

      glfwMakeContextCurrent(window);

      ....
      return window;
   }
   ....

GLFWwindow* window = initialize();

我使用 VcxSrv 作为我的 X 服务器。

以下是输出glxinfo

direct rendering: No (LIBGL_ALWAYS_INDIRECT set)
server glx vendor string: SGI
server glx version string: 1.4
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
GLX version: 1.4
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 940MX/PCIe/SSE2
OpenGL version string: 1.4 (4.6.0 NVIDIA 457.30)

以下修复对我有用。

As @dratenik https://stackoverflow.com/users/14215102/dratenik如上所述,问题仍然存在,因为direct rendering: No。要解决此问题,请执行以下操作:

在 bashrc/zshrc 文件中添加以下内容:

export LIBGL_ALWAYS_INDIRECT=0

或者你可以删除export LIBGL_ALWAYS_INDIRECT=1bashrc/zshrc 文件中的行(如果您已添加)。

Then, start a new instance of VcxSrv with and unselect the Native opengl box on the Extra Settings page, and select the Disable access control box. VcxSrv Extra Settings

完成此操作后,应该打开直接渲染,并且您应该在运行时得到以下结果glxinfo:

direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 WSL2 上运行 OpenGL 的相关文章

随机推荐

  • Scala 2.9 无法在 Windows XP 上运行“hello world”示例

    我正在尝试在 Windows XP 上使用 scala 2 9 1 Final 运行 HelloWorld 示例 object HelloWorld extends App println Hello World 文件另存为Hello sc
  • 您将如何创建“手动”django 迁移?

    我发现我可以使用 django 项目中的 postgres 数据库设置列的默认值migrations RunSQL some sql 我目前正在通过添加列 makemigrations 然后删除列 makemigrations 然后手动修改
  • jQuery hide() 动画向右滑动

    使用 jQuery 的hide 使用可选的持续时间参数的函数 我可以在我的网站上获得一些警报框 以优雅地滑出屏幕并消失 隐藏动画的默认方向似乎是向左滑动 尽管此行为未在hide 定义页 http api jquery com hide 我需
  • 我应该在我的 iOS Objective-C 项目中使用它吗?

    Xcode 中的 构建设置 中的 Mach O 类型是什么 应该设置什么 它有这些选项 可执行文件 动态库 捆绑包 静态库 可重定位对象文件 自从我将其从可执行文件更改为静态库以来 我遇到了错误 Apple Mach O 链接器错误组 我的
  • Google Tag Assistant 询问 Feed ID

    我被要求使用旧的再营销跟踪代码升级现有网站 如下所示
  • 用于选择矩形内文本的编辑器

    我经常发现自己在处理某些文本时想要排除文本的特定部分 例如 40 行的前三个字符 我能想到的最快方法是绘制一个矩形并复制文本 我主要使用 Windows 但我确信 grep 或类似的东西可以用少量代码来完成此操作 我最好的方法是打开命令提示
  • ggplot2 中的小时刻度

    我正在处理就寝时间和醒来时间 因此我想创建一个具有 24 小时 x 轴的图表 从第一天中午 12 点开始 到第二天中午 12 点结束 这意味着晚上 11 59 之后 它应该再次从 0 开始 同样的问题 仅涉及数字 我想创建一个从 10 到
  • Windows Phone 后台任务过早停止

    我正在开发一个 WP8 1 SL 应用程序 它使用后台任务 不是代理 我的任务由 TimerTrigger 触发 每 30 分钟一次 我相信这是 Windows Phone 的最小间隔 对吧 它正在做很多工作 并且由于某种原因 有时它会被中
  • GoQt 致命错误:QAbstractAnimation:没有这样的文件或目录

    我尝试编译 Qt 来开发桌面应用程序 我按照 Qt 网站上的官方 wiki 指南的说明进行操作 当我尝试go run示例文件夹中的示例 我收到错误 去运行 home pinkya rabbit workspace go1programs s
  • 在python中组合2个列表

    我有 2 个列表 每个列表大小相同 并且有兴趣将这两个列表组合起来并将其写入文件中 alist 1 2 3 5 blist 2 3 4 5 结果列表应该是这样的 1 2 2 3 3 4 5 5 之后我希望将其写入文件 我怎样才能做到这一点
  • 使用 Swift 3 和 Realm 同步 Apple Watch 和 iPhone

    我需要从 Apple Watch 和 iPhone 显示和修改我的数据结构 数据库 我目前正在使用一个简单的领域结构 其中有一个对象 A 和一个可以容纳大量 A 的对象 B 因此 在 iPhone 上 用户可以创建 B 并添加 A 当然还可
  • 带 NestedScrollview 的 RefreshIndicator

    我想要 2 个带有 ListView 的选项卡页共享一个 RefreshIndicator 但是 RefreshIndicator 必须具有 Scrollable 作为子级 TabBarView 则不然 因此我尝试为每个选项卡创建 2 个
  • C# 'if' 绑定值

    我有一个列表视图 由名为 Binding 的类填充House 这是我的代码的示例
  • 打开对话框时,Material-UI 会向 body 标记添加填充

    我在我的 React 应用程序中使用 Material UI 最近 我将我的软件包更新到了 最新版本 现在 当我在应用程序中打开一个对话框时 padding right 17px 将被添加到 body 标签中 我还检查了 Material
  • 在 iOS 中,http 204 响应返回空白页面,有办法阻止这种情况吗?

    以前可能有人问过这个问题 但我似乎找不到解决方案 所以如果是这种情况 我深表歉意 我正在开发一个使用express的简单节点应用程序 其中一个帖子路由返回 http 204 并发送它 下面是我的代码 router post id funct
  • com.netflix.zuul.exception.ZuulException:Hystrix 读取超时

    我正在尝试使用 eureka 和 zuul 进行微服务 而且所有请求都有问题 耗时超过1秒 据我了解 1秒是默认的hystrix超时 为了在Zuul中配置超时 我必须配置这些属性 hystrix command default execut
  • 通过托管环境进行自托管

    我正在尝试通过以下方式将 ASP NET Core NET 4 6 1 应用程序作为自托管运行网络监听器 https docs asp net en latest fundamentals servers html weblistener
  • NSString 上的 stringWithFormat 与 initWithFormat

    我想知道以这种方式声明 NSString 有什么区别 例如缺点和 或优点 NSString noInit NSString stringWithFormat lolcatz d i 与以下相反 NSString withInit NSStr
  • 如何向离子推送通知添加操作按钮?

    我想向离子推送通知添加一些操作按钮 我正在使用科尔多瓦pushv5 通知工作正常 但我不知道如何添加这些按钮 如何添加这些按钮 应在 POST 请求中添加操作按钮 registration ids my device id data tit
  • 无法在 WSL2 上运行 OpenGL

    我尝试在 WSL2 上运行 OpenGL 代码 但在尝试运行可执行文件时出现以下错误 GLFW error 65543 GLX Failed to create context GLXBadFBConfig Unable to create