问题标签 [mesa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
580 浏览

opengl - VxWorks 5.5 上的硬件加速 OpenGL

我需要在 VxWorks5.5 平台上进行硬件加速的 OpenGL 渲染。经过几天的谷歌搜索,我对以下问题感到困惑:

  1. 单机 Mesa3D 只能在 VxWorks 上做软件渲染?(前提是我把 Mesa3D 移植到 VxWorks 上)

  2. Mesa3d 结合 DRI 可以在 VxWorks 上做硬件加速渲染吗?如果是这样,除了 Mesa3d+DRI 之外,我还需要额外的 OpenGL 硬件驱动程序吗?(Mesa 只提供 gl API,而 DRI 是实现具体硬件渲染的,对吗?)

  3. 是否有任何商业解决方案?

0 投票
4 回答
989 浏览

opengl - Windows 中的 OpenGL

  1. Windows 只提供了 GL v1.1 ;如何下载最新版本的 OpenGL 二进制文件 (+hearders) 以开始在 Windows 中编码,以及在哪里可以找到它们?
  2. 哪个版本的 OpenGL 是所有三个 MacOS、Linux 和 Windows 平台完全支持的最新版本?
0 投票
1 回答
116 浏览

visual-studio - 以编程方式为 MESA 软件渲染器切换 dll

我想将命令行选项添加到我的应用程序中,该选项会切换到子文件夹(例如)--software-rendering中的 MESA opengl32.dll 。mesa\opengl32.dll如何以编程方式切换到此 dll?

到目前为止,我知道当我将 opengl32.dll 移动到我的主文件夹时,渲染使用这个,但我希望根据命令行选项加载它

0 投票
1 回答
358 浏览

opengl - 为什么 glDrawArrays 在 Intel Mesa 10.3 上失败,同时使用 OpenGL 3.3 与 nVidia 一起工作

我正在尝试在 Intel GPU 上运行Piccante图像处理库。该库使用 OpenGL 着色器在图像上应用过滤器。该库根据其文档使用 OpenGL 4.0,因此我必须进行一些小修改才能使其在 Intel Mesa 10.3 驱动程序支持的 OpenGL 3.3 上下文中运行。

创建着色器时,我更改了以下行(在 buffer_op.hpp 中):

在此修改之后,我的程序在 nVidia GPU 上仍然可以正常工作,即使将 OpenGL 上下文初始化为 OpenGL 3.3(核心配置文件)。

在英特尔 GPU 上,该程序部分工作。只要图像是单通道的,它似乎就可以正常工作。当图像是 RGB 时,绘图现在更有效,我的图像最终变成黑色。

我已将错误追溯到(quad.hpp)中的以下行:

这是 Vertex Array Object 和 Vertex Buffer Object 的初始化:

这是我正在尝试运行的生成片段着色器:

我检查了顶点着色器和片段着色器是否成功编译和链接。这是否意味着着色器应该与 GLSL 3.3 兼容并且问题不在着色器内,而是在其他地方?

什么可能导致程序在 RGB 图像上失败,而它在单通道图像上运行良好?

当上下文在两者上都被初始化为 OpenGL 3.3 时,什么可能导致程序在 Intel Mesa 10.3 驱动程序上失败,而在 nVidia 驱动程序上正常工作?

渲染时似乎有很多原因可能导致GL_INVALID_OPERATION 。为了追查错误,我还可以检查哪些其他内容?

非常感谢您的帮助!

0 投票
1 回答
176 浏览

opengl - 使用 Mesa OpenGL 获取带有模板缓冲区的像素格式/上下文

我需要更改一个非常旧的应用程序才能通过远程桌面连接工作(它只支持 opengl 1.1 的子集)。它只需要各种 opengl 1.x 函数,所以我尝试使用在应用程序文件夹中放置 mesa opengl32.dll 文件的技巧。该应用程序仅少量使用 opengl,因此可以使用低性能软件渲染器。

无论如何,我从https://wiki.qt.io/Cross_compiling_Mesa_for_Windows获得了一个预编译的 mesa opengl32.dll 文件,但我无法获得启用模板缓冲区的像素格式/上下文。如果我禁用模板缓冲区使用,那么其他一切都可以正常工作,但如果我能弄清楚如何在启用模板缓冲区的情况下获得像素格式/上下文,那将是最好的。

这是上下文创建代码的 pixelformat 部分:

错误发生在 (pfd.cStencilBits>pfd2.cStencilBits) 行,我似乎无法通过 mesa 找到 cStencilBits 不为 0 的像素格式,因此我无法获得支持模板的上下文。

0 投票
0 回答
576 浏览

ubuntu - OpenGL 不支持带有英特尔 4000 图形和 Mesa 11 的 GLSL 3.30

您好,我在 Ubuntu 15.04 上使用英特尔笔记本电脑(i5-3317U -> HD 4000)编译着色器时遇到了一些问题

来自的日志信息glGetShaderInfoLog

根据 mesa 11,我应该能够运行 3.30 (www.mesa3d.org/shading.html),并且据我了解,我的系统应该能够处理这些着色器。

那么有人知道问题可能是什么吗?是时候换个新系统了吗??

顺便说一句,如果它有助于glxinfo | grep OpenGL在我的系统上运行的结果是

0 投票
2 回答
397 浏览

opengl - OpenGL:Mesa3D:如何禁用抖动、动画等以加速静态渲染?

我正在使用 Mesa3d opengl 库并仅使用 SW 渲染器。是否可以修改 Mesa3D 库源以禁用所有动画、阴影、抖动等,以最大限度地提高显示静态图像的性能?我正在尝试使用一个应用程序,我希望禁用它的所有动态 2D/3D 效果(例如动画、滑动等)并使其运行得更快并优化它以显示静态图像。

我该怎么做呢?

0 投票
2 回答
1347 浏览

linux - 强制现有的 OpenGL 应用程序在无头机器上渲染屏幕外

我想为视频游戏的自动渲染测试创建一个框架。

我想测试一个通常使用 OpenGL 渲染到窗口的应用程序。相反,我希望它渲染成图像文件以供进一步评估。我想在没有 GPU 的 Linux 服务器上执行此操作。

我怎样才能在对评估的应用程序影响最小的情况下做到这一点?

为了清楚起见,一些注释:

  • OpenGL 版本是 2.1,因此应该可以使用 Mesa 进行软件渲染。
  • 最好,我不想更改任何应用程序代码。如果有一个解决方案可以让我模拟 X 服务器或类似的东西,我会更喜欢它。
  • 我不想更改任何渲染代码。如果真的有必要,我可以改变我初始化 OpenGL 的方式,但在那之后,我想执行任意的 OpenGL 代码。

理想情况下,您的答案将解释如何在无头 Linux 服务器上设置环境,该服务器允许我启动任意 OpenGL 二进制文件并将其输出呈现为图像。如果那不可能,我愿意接受任何建议。

0 投票
2 回答
1549 浏览

ubuntu - apt-get 无法安装“libgl1-mesa-dev-lts-vivid”依赖项

我正在尝试使用 apt-get 在 ubuntu 14.04 LTS 上安装“libgl1-mesa-dev-lts-vivid”,但我收到以下错误消息:

我尝试单独安装每个列出的软件包,而 apt-get 只抱怨 mesa-common-dev-lts-vivid。当我尝试手动安装那个时,我得到:

我已经运行了 apt-get update 和 upgrade。我在几乎全新安装的 ubuntu 14.04 LTS 上运行,只安装了一些 nvidia 图形驱动程序和另一个图形程序。我还在所有涉及的软件包上运行了 apt-show-versions:

它们似乎都是安装的有效版本

0 投票
2 回答
13619 浏览

opengl - 如何使用 CMake 在 Ubuntu 中查找和链接 OpenGL(mesa) 包

我是CMakeOpenGL的新手。我现在需要在我的 Ubuntu 15.04 64 位 PC 上的项目中使用OpenGL作为库,该 PC 由CMake 3.0.2构建。

我已经为此工作了几天,几乎感到沮丧。我对一堆问题感到困惑。


台面和 OpenGL

首先,我用 command 安装了mesasudo apt-get install mesa-common-dev,得到mesa 10.5.2

然后我浏览包文件dpkg -L mesa-common-dev

问题 1:共享库 (.so) 和静态库 (.a) 在哪里?


制作

我现在有一个CMakeLists.txt名为 OpenGL 的模块OPENGL

所以我肯定需要一个 cmake 文件,比如说FindOPENGL.cmake,像这样(以GLEW的 cmake 文件为模板):

问题 2:如何在 cmake 文件中链接静态库和共享库,第 17/23/29 行有什么区别?

然后我运行 cmake 并得到以下错误:

问题 3:我怎么会收到这个错误,我该如何解决?我在整个过程中做错了吗?


更新

感谢@usr1234567 的回答,然后我删除我的FindOPENGL.cmake并尝试使用/usr/share/cmake-3.0/Modules/FindOpenGL.cmake。我仍然得到错误missing: OPENGL_gl_LIBRARY。我查看这个 cmake 文件中的定义OPENGL_gl_LIBRARY,并手动检查其中的 lib 路径,不幸的是,列出的路径都不存在。

我是否正确安装了台面?