我的任务是升级许多旧版本Matlab/Simulink中的遗留模型和脚本,并使其在R2018 b中顺利运行。除其他要求外,我不允许在执行.m脚本或Simulink模型时发出任何警告。这通常很繁琐,但很容易遵守。
但是,有一个具体的警告,Matlab没有给予我提示可能的来源:
警告:MATLAB切换到软件OpenGL后禁用了一些高级图形渲染功能。有关详细信息,请单击此处。
该链接打开Matlab帮助页面,标题为Resolving Low-Level Graphics Issues,其中描述了我没有发现(或至少没有注意到)的问题
我注意到我运行的许多脚本都会创建和关闭地物,但这是按程序完成的。我无法将此警告与某些特定函数或功能关联起来。我在Windows Server计算机上工作。
有人知道如何缩小Simulink块可能导致此警告的函数类型吗?
3条答案
按热度按时间h79rfbju1#
正如datenwolf和Ander所指出的,首先要尝试的是更新驱动程序,如果这不起作用,并且你唯一的问题是你得到了警告,但你的图形仍然渲染良好,那么你有两个其他的选择可以尝试。
首先,你可以使用
opengl
修改你的OpenGL渲染参数。下面的命令会将你的参数设置为'software'
,并保存该设置以备将来使用:或者,您也可以尝试suppress that particular warning message。在收到警告后,对
warning
函数发出以下调用:w.identifier
字段将为您提供警告消息的ID,我认为在本例中为'MATLAB:hg:AutoSoftwareOpenGL'
,然后您可以将以下行添加到您的startup.m文件中,以便每次打开MATLAB时都抑制此警告:nafvub8i2#
为您的GPU安装原始供应商驱动程序。默认情况下,Windows安装的驱动程序不完全支持OpenGL。根据您拥有的GPU,直接从Intel、AMD或NVidia的网站下载驱动程序包。
如果您没有GPU,例如在虚拟机中运行时,那么您无法避免该警告,因为Matlab没有其他选择,只能求助于它附带的软件OpenGL实现。
nx7onnlm3#
我花了很长时间才得到它,所以我把你放在这里,以防它帮助我如何设法在Linux中激活openGL:
1.如果您还没有这样做(这在其他问题中很常见),请从MATLAB中重命名libstdc++库:第一个月
1.创建此链接:
sudo ln -s /usr/lib/x86_64-linux-gnu/dri/ /usr/lib/
1.运行
export MESA_LOADER_DRIVER_OVERRIDE=YOUR_DRI_DRIVER;matlab -desktop -nosoftwareopeng
您的DRI驱动程序将是/usr/lib/dri
中的一个文件,删除“_dri”(在我的例子中是AMD Vega图形卡的“radeons”驱动程序)。1.使用以下命令从终端运行MATLAB:
export MESA_LOADER_DRIVER_OVERRIDE=_YOUR_DRIVER_HERE_;matlab -desktop -nosoftwareopengl
. YOUR_DRIVER_HERE 应该是您的驱动程序,在我的情况下radeonsi。1.使用
info = rendererinfo
检查openGL1.如果出现问题,您可以在终端中看到哪个库负责。执行4)和5)我发现了我必须纠正的问题,如果您有其他问题,我也可以这样做。
为了使它始终正确运行,我将
export MESA_LOADER_DRIVER_OVERRIDE=YOUR_DRI_DRIVER
放在运行matlab的脚本(_YOUR_MATLAB_FOLDER/bin/matlab)的开头,尽管我认为它也可以设置为环境变量。希望这对你有用。