Matlab openGL Warning



我的任务是升级许多在旧版本的Matlab/Simulink中制作的遗留模型和脚本,并使其在R2018b中平稳运行。在其他要求中,我不允许在执行.m脚本或Simulink模型时发出任何警告。这通常很乏味,但很容易遵守。

然而,有一个特别的警告,Matlab没有给我关于可能来源的提示:

警告:MATLAB已通过切换到OpenGL软件禁用了一些高级图形渲染功能。有关详细信息,请单击此处

链接打开名为"解决低级图形问题"的Matlab帮助页面,该页面描述了我没有发现(或至少没有注意到(的问题

我确实注意到,我运行的许多脚本都会创建和关闭图形,但这是按程序进行的。我无法将此警告与某些特定功能或特性联系起来。我在一台Windows Server机器上工作。

有人知道如何缩小Simulink块的哪种功能可能导致此警告吗?

datenwolf和Ander指出,首先要尝试的是更新驱动程序。如果这不起作用,而你唯一的问题是收到警告,但你的图形仍然渲染良好,那么你还有两个其他选项可以尝试。

首先,您可以使用opengl简单地修改OpenGL渲染首选项。以下将把您的首选项设置为'software',并将该设置保存到将来的会话中:

opengl('save', 'software');

或者,您可以尝试取消显示该特定的警告消息。收到警告后,向warning函数发出此调用:

w = warning('query', 'last');

w.identifier字段将为您提供警告消息的ID,我相信在这种情况下将是'MATLAB:hg:AutoSoftwareOpenGL'。然后,您可以在startup.m文件中添加以下行,以便每次打开MATLAB时都会抑制此警告:

warning('off', 'MATLAB:hg:AutoSoftwareOpenGL');

为您的GPU安装原始供应商驱动程序。默认情况下,Windows安装的驱动程序缺乏对OpenGL的完全支持。直接从英特尔、AMD或NVidia的网站下载驱动程序包,具体取决于您拥有的GPU。

如果你没有GPU,例如在虚拟机中运行时,那么你无法避免这种警告,因为Matlab除了依靠它附带的OpenGL软件实现之外别无选择。

除了确保运行Matlab的系统确实有适当的OpenGL支持之外,你对此无能为力

我花了很长时间才得到它,所以我会把你放在这里,以防它有助于我在Linux中激活openGL:

  1. 如果您还没有(这在其他问题中很常见(,请从MATLAB中重命名libstdc++库:mv _YOUR_MATLAB_ROOT_FOLDER_/sys/os/glnxa64/libstdc++.so.6 _YOUR_MATLAB_ROOT_FOLDER_/sys/os/glnxa64/libstdc++.so.6.bak

  2. 创建此链接:sudo ln -s /usr/lib/x86_64-linux-gnu/dri/ /usr/lib/

  3. 运行export MESA_LOADER_DRIVER_OVERRIDE=YOUR_DRI_DRIVER;matlab -desktop -nosoftwareopeng您的DRI驱动程序将是来自/usr/lib/dri的文件_dri";(在我的例子中是AMD Vega显卡的"radeons"驱动程序。

  4. 使用:export MESA_LOADER_DRIVER_OVERRIDE=_YOUR_DRIVER_HERE_;matlab -desktop -nosoftwareopengl从终端运行MATLABYOUR_DRIVER_HERE应该是你的司机,在我的情况下是radeonsi。

  5. 使用info = rendererinfo检查openGL

  6. 如果出了问题,你可以在航站楼里看到哪个图书馆负责。执行4(和5(时,我发现了我必须纠正的地方,如果你有另一个问题没有出现,你也可以这样做。

为了始终正确运行,我将export MESA_LOADER_DRIVER_OVERRIDE=YOUR_DRI_DRIVER放在运行matlab的脚本(_YOUR_matlab_FOLDER/bin/matlab(的开头,尽管我认为它也可以设置为环境变量。

我希望这对你有用。

相关内容

  • 没有找到相关文章

最新更新