问题标签 [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.
c++ - GLEW_VERSION_x_x 和 GL_VERSION_x_x 有什么区别?
我总是通过运行检查支持的 OpenGL 版本:
在我在另一台计算机上尝试之前,这似乎工作正常。这台计算机正在运行 Fedora 19,并且 glewinfo 可执行文件报告最高版本为 4.0。但是 GLEW_VERSION_3_0 是错误的。我将关键字切换到 GL_VERSION_3_0 ,这似乎效果更好。
那么这些变量之间有什么区别呢?
opengl - 带有软件光栅器的 Mesa 3D OpenGL 3.2
我正在尝试在运行 Ubuntu 13 的上网本上创建一个 OpenGL 上下文 3.2。由于硬件不支持硬件支持的 Opengl 3.2,我想知道软件光栅化器是否可以提供这样的功能。我知道软件模式可能非常慢,但我只需要测试和练习一些简单的例子。
我在互联网上找不到任何确切的信息来说明这是否可能,而且我对 Mesa 的了解非常有限。所以我的问题是,是否可以使用 Mesa 创建基于软件的 OpenGL 3.2 上下文?
c++ - Qt5 延迟加载 opengl32.dll 失败
我需要在 Windows 7 上的 Qt5 项目中使用 OpenGL 版本 2 功能(Qt 是使用桌面 OpenGL 而不是 ANGLE 构建的)。为了支持通过远程桌面运行应用程序,我想在必要时通过 Mesa 进行软件渲染。我的计划是在启动时检查 OpenGL 版本。如果它太低,我在应用程序设置中设置一个标志,打印一条消息并终止程序。当程序再次启动时,我可以读取标志并决定是否需要从 Mesa 而不是 Windows 的内置版本加载 opengl32.dll。
为了让它工作,我尝试通过设置/DELAYLOAD:opengl32.dll
链接器标志延迟加载 opengl32.dll,然后使用SetDllDierectoryW([path to dir with Mesa's opengl32.dll])
重定向 dll 查找。不幸的是,这不起作用,因为 opengl32.dll 的内置版本在进入后就已经在内存中main()
,因此SetDllDirectory
没有效果。
Dependency Walker 向我展示了 Qt5Gui.dll 本身与 opengl32.dll 相关联,我怀疑这会破坏延迟加载。但是,当我尝试延迟加载 Qt5Gui.dll 时,链接器由于导入的符号而失败"__declspec(dllimport) public: static struct QMetaObject const QWindow::staticMetaObject" (__imp_?staticMetaObject@QWindow@@2UQMetaObject@@B)
。我不知道如何摆脱这个。
我真的需要 OpenGL 2,所以似乎没有办法使用 Mesa 进行软件渲染。但我也想不出延迟加载的替代方案。每当我想在硬件和软件渲染之间切换时更改 PATH 设置似乎不起作用,并且通过将 Mesa 的 opengl32.dll 移入或移出应用程序目录进行切换不是一个选项,因为普通用户不应该有所需的写入权限。
有什么方法可以延迟加载使用 Qt5 的 opengl32.dll 吗?
c++ - glewInit() 在创建 osmesa (off-screen mesa) 上下文后崩溃 (segfault)
我正在尝试在远程计算集群上运行 opengl 应用程序。我正在使用 osmesa,因为我打算执行屏幕外软件渲染(无 x11 转发等)。我想使用 glew(让处理着色器和其他与扩展相关的调用更容易),而且我似乎已经构建并链接了 mesa 和 glew。
当我调用 mesa-create-context 时,glewinit 给出了一个 OPENGL 版本不可用的输出,这可能意味着尚未创建上下文。当我调用 glGetString(GL_EXTENSIONS) 时,我没有得到任何输出,这证实了这一点。这也表明 glew 本身运行良好。(其他 glew 命令,如 glew 版本等也可以使用)。
现在当我(如下所示)添加 mesa-make-context-current 函数时,glewinit 会因段错误而崩溃。运行 glGetString(GL_EXTENSIONS) 现在给我一个扩展列表(这意味着上下文创建成功!)
我花了几个小时试图解决这个问题,尝试修补,但没有任何效果。非常感谢您对此的任何帮助。也许你们中的一些人以前经历过类似的事情?再次感谢!
补充一下,osmesa 和 glew 实际上最初并没有编译。因为 glew 在它的最后一行取消定义 GLAPI 并且因为 osmesa 不会再次包含 gl.h,所以 GLAPI 保持未定义并导致 osmesa.h (119) 中的错误。我通过向 GLAPI 添加一个 extern 来解决这个问题,但不确定这是否相关。
c++ - opengl 程序编译但运行时出错 (UBUNTU 14.04)
我通过 Synaptics 包管理器安装以下包来编译 Opengl。
这是我运行程序时的输出。
X 请求失败错误:GLXBadFBConfig
失败请求的主要操作码:156 (GLX)
请求失败的次要操作码:34 ()
失败请求的序列号:42
输出流中的当前序列号:41
对此的输入
给这个输出
对于这个输入
这是输出
由于正文限制为 30000 个字符且输出超过 70000,我将其余部分切断
以下是所有源代码,我通过在终端中输入以下代码进行编译:
三角形.cpp:
vgl.h:
负载着色器.h:
加载着色器.cpp
build - 构建台面时生成文件错误
我收到以下错误:
视频卡 06:03.0 VGA
兼容控制器:Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (rev 0a)
构建命令
制作
opengl - 在 VmWare 中运行的 Ubuntu 12.04 上的 Opengl 3
问题很简单:有没有办法在 VmWare Fusion 上启动的 Ubuntu 12.04 上获得 OpenGL 3+ 支持?
现在我安装了 mesa 项目环境,它给了我 glxinfo | 的输出。grep -i opengl:
我知道有一个台面版本 10 应该支持 OpenGL 3+,我如何在 Ubuntu 12.04 上安装它?这个主题的建议没有帮助,我仍然得到 mesa 8。
google-chrome - 如何强制 chrome 使用 webgl 的 mesa 软件驱动程序
我想强制 chrome 使用软件驱动程序而不是硬件来呈现 WebGL。
我正在使用 Ubuntu Linux,并且我知道 Mesa GL 驱动程序可以通过在启动程序时指定环境变量LIBGL_ALWAYS_SOFTWARE=1来强制使用软件实现。我确认在指定环境变量时驱动程序发生了变化。
默认 GL 驱动提供 OpenGL 1.4 支持,软件驱动提供 OpenGL 2.1 支持。
我追踪了桌面启动器存在的位置(/usr/share/applications/)并对其进行了编辑以指定环境变量,但 chrome://gpu 仍然显示 GL 版本 1.4。Chrome GPU 信息包含一个有希望的价值:
命令行参数 --flag-switches-begin --disable-accelerated-2d-canvas --ignore-gpu-blacklist --flag-switches-end
我想知道是否可以自定义 --flag-switches-begin。
我还找到了“--use-gl”命令行开关,但我不确定如何利用它来强制驱动程序进入软件模式。
附带说明一下,我已经在 chrome://flags/ 中启用了“覆盖软件渲染列表”,这确实将我的模型从“黑名单”中删除,从而可以使用 WebGL,但 OpenGL 功能集仍然非常有限。
我有一台带有糟糕“gpu”的旧笔记本电脑,无论性能如何,我都想用它来开发一些着色器并在 WebGL 中进行测试。
是否可以告诉 Chrome 使用软件驱动程序?
ubuntu - 在 Ubuntu 14.04 中手动升级 Mesa3D
我正在尝试编译和构建Mesa3
D 版本10.2.
,但./configure抱怨libdrm_radeon >= 2.4.54
(目前安装了 2.4.52)。
所以我尝试手动升级libdrm
,按照http://www.linuxfromscratch.org/blfs/view/svn/x/libdrm.html中的步骤...
一切正常,但 Mesa 的配置仍然抱怨libdrm
我不是 linux 专家,所以我无法理解出了什么问题。一些帮助?谢谢!