问题标签 [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 回答
661 浏览

c - 在 GLSL 中使用多个纹理+过滤器

我正在尝试沿特定路径在 Opengl 中渲染点精灵。我将精灵定义为 2D 纹理并将其设置为使用 GL_NEAREST 作为 mag/min 过滤器。我还定义了一个包含一些 2D 坐标的 1D 纹理(这样我只需要每个精灵 1 个浮点数来确定它们的屏幕空间位置),我将其设置为 GL_LINEAR。

但是,当我在笔记本电脑上运行我的程序时,它总是使用精灵纹理的 mag 过滤器方法并忽略路径纹理上的设置。我的笔记本电脑在英特尔 Iris Pro 5200 上运行 Linux+mesa 9.2.1+Opengl 3.0。在我的桌面上一切正常,运行 Linux 并使用带有 opengl 4.2 的专有 Nvidia 驱动程序。

相关代码是

我的顶点着色器是

我的片段着色器是

我在这里粘贴的整个代码(单个文件),这里是我分别在 Nvidia 和 Intel 上看到的屏幕截图。

编辑:我在具有 3.0 上下文的 Nvidia 上得到相同的结果。

什么会导致这种情况?

0 投票
2 回答
2912 浏览

opengl - 精度限定符在 Mesa 9.2.1 下为 OpenGL 3.0 引发错误

在 Ubuntu 13.10(64 位)上的 Mesa 9.2.1 下观察到 OpenGL 3.0 的一个奇怪问题。具有显式精度的变量定义(如highp vec2 v;:)会产生错误:

由于某些原因,似乎在那里禁用了精度限定符。Mesa 发行说明没有明确这种情况——错误和通知都与主题无关。

带有 OpenGL ES 3.0 精度限定符的 PS 可以正常工作。

0 投票
2 回答
2128 浏览

opengl - 在 Mesa 10 和 GLFW3 中使用 OpenGL 核心配置文件

我在配备 Intel HD 3000 GPU 的 HP 笔记本电脑上运行带有 Mesa 10 的 Arch Linux。(还有一个 ATI 卡,但我在启动时将其关闭。)我正在尝试使用核心配置文件运行 OpenGL 代码。根据 glxinfo 应该支持 OpenGL 3.1 和 GLSL 1.4:

但是,当我编译 GLFW 程序时,尝试强制核心配置文件,并要求 OpenGL 版本,如下所示:

以及使用 GLSL #version 140 编译着色器,这是打印输出:

因此,似乎应该支持 OpenGL 3.1 和 GLSL 1.4,但它们没有在我的 GLFW 程序中使用。谁能告诉我可能出了什么问题?

0 投票
1 回答
6561 浏览

c - GBM 上的 EGLDisplay

我想通过 EGL 创建一个 OpenGL 上下文。由于我不会实际绘制,因此我想将 Pbuffers 与 GBM 平台结合使用。这是代码(C99):

它失败并出现以下错误:

是我作为示例的页面。

我很惊讶,因为我用 , 构建了 Mesa --with-egl-platforms=drm,wayland,x11,即使这里声明EGL_DEFAULT_DISPLAY映射到指定的第一个平台,它也是_XDisplay *我系统上的别名。

AFAIK,Weston 在 GBM 之上创建了一个 EGLDisplay,用于在裸 KMS 上绘图。我查看了它的代码,并且已经找到了相关的系统标头以寻找解决方案,但它似乎不存在。

FWIW,我在 Radeon HD 3200、Linux 3.12.6、GCC 4.8.2 上使用 Mesa 10.0。

0 投票
3 回答
10444 浏览

opengl - 在 Debian 上安装 Mesa 10

所以,这是我的问题——我想在一台装有运行 Kali *nix 的 HD4000 集成图形处理器的笔记本电脑上完成这些教程。问题是安装的 Mesa 3D 版本只有 8 版左右,因此只会运行太旧的 OpenGL 实现——本教程需要 OpenGL 3.3 或更高版本。然而,最近发布的 Mesa 10 通过提供对 OpenGL 3.3 的支持使这成为可能!

所以我要做的就是在我的系统上安装 Mesa 10,这样我就可以完成这些教程。我找到了这个答案,但它似乎只适用于 Ubuntu。我尝试运行建议的

但在2)之后。我得到了错误

我也是直接从网站下载了 tar.gz Mesa 10 文件,运行后配置

虽然这产生了错误;

0 投票
1 回答
537 浏览

opengl - 我可以在没有显卡或 MESA 的情况下在我的计算机上编程/编译 OpenGL 4.0 代码吗?

我最近开始使用 Redbook 第 8 版使用 Open GL 4.0。从早上到现在,我无法编译 OpenGL 程序的“HelloWorld”。

我配置了依赖项,将 freeGlut/GLEW/GLSL 的文件内容传输到我的 VS 2013 C++ IDE 的相应 VC 文件夹中。我最终确信,这种事件崩溃的催化剂发生了,因为 VS 引用了不同位置的多个 lib 文件,并且链接器无法对它所引用的内容进行正面连接。

然而,我意识到另一个我天真/无知的问题。我会不会因为我的依赖配置而遇到编译问题,而是因为我只有一个内置的芯片组而不是一个卡并且没有 MESA?

我不知道我的内置芯片组是否支持openGL 4.0

英特尔(R) 高清显卡 4000

编辑:我在 VS 2013 中的编译错误没有给出任何“线索”表明它是硬件问题。所有这些都是LNK2005问题。

0 投票
1 回答
614 浏览

tcp - tcp/ip 接收带有 tof 相机台面 sr4500 的 simulink

我通过simulink从飞行时间相机(mesa sr4500)的局域网连接到我的电脑接收原始数据流时遇到问题。simulink 块的 ip 地址和端口tcp/ip receive似乎选择正确(它是我的网卡的 ip 地址和端口)。这是 simulink 块的进一步设置的图片:

这是我收到的错误消息。

块错误 -> 在“解码/TCP/IP 接收”中评估 MATLAB S-Function“stciprb”的注册方法“输出”时出错

原因:在超时期限内未返回指定数量的数据。请确保将数据发送到指定更大的超时值的指定端口。

我认为更大的超时不会有帮助,因为相机已经以 10 fps 的速度流式传输。所以超时时间应该足够长。

我误解了任何设置选项吗?有人用过类似的相机吗?

0 投票
0 回答
193 浏览

opengl-es-2.0 - 使用 Mesa 的 OpenGL ES 2.0 的片段着色器的 glCompile() 上的段错误

我正在做一个项目,我想让 OpenGL 图形显示在 X11 窗口中。这需要在 Ubuntu 12.04 上完成,我使用的是 Mesa 的 OpenGL ES 2.0 和 egl 版本。有几个着色器被编译并且它们工作正常,但是当我到达一个时,gdb 显示glCompile()这个片段着色器正在发生段错误:

编辑:

这是另一个在上面编译之前编译的片段着色器,似乎没有引起任何问题:

PixmapShaderFrag着色器和其他着色器之间唯一的大区别是texture2D(),所以我认为这可能是导致段错误的原因。有谁知道 Mesa 和 using 是否有问题texture2D(),或者着色器是否有其他问题?texture2D()即使需要更多着色器代码,是否还有另一种方法可以做?

0 投票
2 回答
19580 浏览

opencl - 如何使用开源驱动程序在 AMD 显卡上设置 OpenCL?

我已阅读此链接 - https://wiki.debian.org/ru/AtiHowTo 并决定设置 OpenCL。

r600g 驱动程序仍然需要将专有微代码加载到 GPU 中以启用硬件加速。该固件通常包含在内核中,但在 Debian 中单独打包。

所以,我安装了固件:

然后我升级内核版本:

并检查内核标志:

我还设置了足够近的 xserver 版本:

我选择 radeon 作为驱动程序:

您肯定正在使用 wheezy 的 xserver-xorg-core,它不再提供 xorg-video-abi-6.0,并且 radeonhd 不适用于较新的 xorg-video-abi,因为它已从 Debian 中删除

这让我 OpenGL 工作:

我正在尝试使用适用于 OpenCL 的应用程序。

这个程序在 CPU 上运行正常:

但我无法检测到 GPU:

设备列表中没有 GPU:

我找不到有关如何设置 OpenCL 的说明:

启动应用程序后,我收到一个错误:

错误代码值在 opencl.h 中定义 看起来您的平台配置不正确。来自 clGetPlatformID 的 CL_PLATFORM_NOT_FOUND_KHR (-1001) 错误。那是因为你有调度程序,但没有真正的 OpenCL 驱动程序。”

在配置文件中应该有

错误是

如何使这项工作?

0 投票
2 回答
65864 浏览

opengl - 如何在 Ubuntu 上使用 Mesa 10.1 启用 OpenGL 3.3

radeon我正在尝试使用基于 OpenGL 3.3 和 GLSL 3.3 的基于 OpenGL 的渲染引擎使用 AMD Radeon 6950 在 Ubuntu 13.10 上运行。我想使用依赖 Mesa 实现 OpenGL的开源驱动程序 ( )。Ubuntu 13.10 仅提供“开箱即用”的 Mesa 9.2(实现 OpenGL 3.1)。但是,可以从此PPA安装 Mesa 10.1(实现 OpenGL 3.3),如该线程中所述:

StackOverflow:Ubuntu 12.04 下 HD Graphics 4000 上的 OpenGL 和 GLSL 3.3

我使用了与那里解释的完全相同的步骤:

Mesa 10.1 已成功安装。然而,glxinfo虽然它现在报告 Mesa 10.1 正在使用中,但仍然只报告 OpenGL 3.0(兼容配置文件)和 OpenGL 3.1(核心配置文件):

这是为什么?如何启用 OpenGL 3.3?通过我提到的 StackOverflow 线程中的比较可以看出,有可能glxinfo报告 OpenGL 3.3。我知道根据 Mesa 10.1 Release Notesglxinfo可能会报告错误的版本号,但是我尝试运行的渲染引擎因此而失败

我使用以下代码生成一个窗口:

当我尝试使用此设置运行渲染引擎时,会抛出上述异常,因为不支持 OpenGL 3.3。我可以设置GLFW_OPENGL_VERSION_MINOR0然后窗口可以正常打开,但是稍后会抛出异常,因为需要 GLSL 3.3 着色器。

另请注意,当我使用专有fglrx驱动程序时渲染引擎运行良好(然后glxinfo报告 OpenGL 版本 4.2),因此应用程序本身确实不是问题,但支持的 OpenGL 是。

那么我做错了什么?为什么 Mesa 10.1 不支持我的 OpenGL 3.3?我的显卡当然支持它。

以下是一些可能有用的附加信息。