how can figure renderer be changed in Matlab 2025a?

481 vues (au cours des 30 derniers jours)
Oleg S
Oleg S le 19 Juin 2025
Modifié(e) : James Richard le 8 Oct 2025 à 0:36
Hi all,
I have recently updaged to 2025a from 2024b and immediately noticed a rather degraded figure quality. They look like some very pixelated plots from the 90s. Even the buttons on the axes within the figure are pixely and clipped. Matlab's main window looks fine.
rendererinfo tells me that the GPU (RendererDevice) used for figures is the internal Intel UHD Graphics, despite Windows expliciely set to use the dedicated NVIDIA GPU for Matlab 2025a.
gpuDevice is set to NVIDIA, I know this is for computing on gpu, not rendering figures, but it does tell me that Matlab can see the NVIDIA GPU.
I could not find any information on how to change the RendererDevice through commands or settings - is this a bug or a known issue?
Has anyone encountered this? Are there any solutions or workarounds?
Here's a screenshot from 2025a:
2025a version
and here's the same figure in 2024b:
Note the much smoother lines in 2024b and axes controls not clipped and not pixelated. Both figures were set to same size (Position) and screenshot on the same screen.
  4 commentaires
Benjamin Kraus
Benjamin Kraus le 30 Sep 2025 à 20:06
I'm sorry I dropped the ball on this.
A colleague of mine has tried to reproduce this issue using the reproduction steps you mentioned, but they cannot reproduce the issue. They would like to learn more about this issue you are having.
If you are still having this issue and are interested in engaging directly with my colleague, please send me a message directly (via MATLAB Answers) with your email address (or perferred contact method), and I will give that information to my colleague.
Antonio Sala
Antonio Sala le 6 Oct 2025 à 18:57
I don't know if this is related but in my case, the figure quality in standalone windows is OK, but when plotting inside an MLX, it renders at "100%" resolution, a small plot... If I increase the zoom factor and rerun, resolution is still low and it looks pixelated, whereas in 2024b, increasing live editor zoom and rerunning did plot larger full-res plots.

Connectez-vous pour commenter.

Réponses (4)

Ray
Ray le 3 Oct 2025 à 19:58
Hi Oleg,
This is a known issue with MATLAB R2025a/b, You can switch the GPU for graphics rendering through the following steps:
  1. Open Windows Settings System Display Graphics Settings
  2. Under "Custom options for apps", Click "Browse" and navigate to: C:\Program Files\MATLAB\R2025a\bin\win64\matlabwindowhelper.exe (Path may differ on Win32 systems)
  3. Click "Options" and select "High performance" with your Nvidia GPU
  4. Save the settings
We’re aware of this and are preparing an External Bug Report so users can follow updates. We’re also working on a mitigation to guide users in selecting the GPU they want MATLAB to use for graphics.

James Richard
James Richard le 3 Oct 2025 à 9:34
Modifié(e) : James Richard le 3 Oct 2025 à 10:02
MATLAB R2025a is build on top of CEF that uses ANGLE.
---
Although with ANGLE we could choose the backend (e.g., D3D11, OpenGL, or Vulkan) to run WebGL 2.0.
But just like any Chromium-based browser, there are no direct flags or switches to choose a specific GPU to use.
It is handled by external settings, such as those of the operating system, driver, or environment variables.
P.S. Perhaps it would be possible to use a DLL hook as a last resort, but that is beyond a layman.
  6 commentaires
Oleg S
Oleg S le 7 Oct 2025 à 12:38
Right, tried that, does not make the figures any prettier. In fact the --use-angle=OpenGL option got them very wonky and laggy (but different result, heh), with markers shifting between squares and circles (!) when zooming. Option --use-angle=Vulkan had no visible effect at all.
As a sidenote, just restarting Matlab was not enough, a full system reboot was needed (because Windows).
For reference, here are the rendererinfo outputs.
after --use-angle=OpenGL (+ reboot):
GraphicsRenderer: 'WebGL'
Vendor: 'Google Inc. (Google)'
Version: 'WebGL 2.0 (OpenGL ES 3.0 Chromium)'
RendererDevice: 'ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0DE)), SwiftShader driver)'
after --use-angle=Vulkan (+ reboot):
GraphicsRenderer: 'WebGL'
Vendor: 'Google Inc. (NVIDIA)'
Version: 'WebGL 2.0 (OpenGL ES 3.0 Chromium)'
RendererDevice: 'ANGLE (NVIDIA, Vulkan 1.4.312 (NVIDIA NVIDIA RTX A4500 Laptop GPU (0x000024BA)), NVIDIA)'
James Richard
James Richard il y a environ 15 heures
Modifié(e) : James Richard il y a environ 13 heures
Weird, here with Win11 25H2 Pro for Workstation x64, I don't need to reboot, just restart the matlab is sufficient.
Anyways, that is interesting that the use of OpenGL backend makes it fallback to cpu/software rendering and causes artifacts with the markers, furthermore the Vulkan backend has no effect.
Try to use D3D9 backend, D3D9 doesn't support WebGL2 (rendererinfo will be blank) but might worth the experiment.
--use-angle=D3D9
---
Else, then we may need to have a new experiment.
Since simulink scope and figure container might have different rendering.
Try to plot your data with simulink scope and see whether the graphics aliasing (pixelated) is present.
For example,
---
Else again, in the comments above you've shown the code only to plot but not with the data. Please also post the sample data codes and I'll try to reproduce.

Connectez-vous pour commenter.


Suman
Suman le 20 Juin 2025
Modifié(e) : Suman le 20 Juin 2025
For plotting and MATLAB graphics, you cannot currently choose which GPU is used from within MATLAB. MATLAB makes a call to the system through OpenGL and uses the device that the system provides.
Please make sure you have NVIDIA Opengl drivershttps://www.nvidia.com/en-us/drivers/ installed on your system.
Then you can follow the steps mentioned here to switch the default graphics card: https://www.mathworks.com/matlabcentral/answers/322105-how-can-i-change-the-opengl-renderer
Hope that helps!
  1 commentaire
Walter Roberson
Walter Roberson le 20 Juin 2025
The question is specifically about R2025a. As of R2025a, OpenGL is no longer used and the opengl() command has no effect. From the release notes:
The following options for querying or setting the graphics renderer have no effect. MATLAB no longer uses OpenGL® technology to render graphics, and you no longer need to set the renderer in your graphics workflows.
Calling the opengl function has no effect. To query the graphics renderer, use the rendererinfo function instead.
The Renderer property of a figure has no effect.
The MATLAB startup options -softwareopengl, -nosoftwareopengl, -softwareopenglmesa, and -noopengl have no effect.
The opengl function, Renderer property, and startup options will be removed in a future release.

Connectez-vous pour commenter.


Walter Roberson
Walter Roberson le 20 Juin 2025
The figure renderer cannot be changed in R2025a. This is a fundamental change in R2025a, that OpenGL is no longer used and WebGL is used instead.
  2 commentaires
Benjamin Kraus
Benjamin Kraus le 20 Juin 2025
@Walter Roberson: Despite the wording of the question title, I think @Oleg S was asking whether you can change what graphics card is used by MATLAB, not the value of the Renderer property on figures.
Oleg S
Oleg S le 24 Juin 2025
To clarify, the figure renderer ("painters" etc) is not the issue. I did try to change them though, to no effect.
I suppose I was confused myself between the renderer device and the renderer, my bad.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graphics Performance dans Help Center et File Exchange

Produits


Version

R2025a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by