google-deepmind / google-deepmind/mujoco

mjUI rendering corruption on Windows with recent AMD graphics driver

Open
#3,577 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
15.2k
Forks
1.8k
Avg merge
10d 16h
Merged PRs (30d)
25

Description

### Intro

Hi,

I encountered this issue while using MuJoCo for a robotics simulation project on Windows.

### My setup

- MuJoCo: 3.13.0
- API: Python
- Python: 3.13.15
- glfw: 2.10.2
- OS: Windows 11 64-bit
- Laptop: Lenovo IdeaPad 3 15ABA7
- GPU: AMD Radeon(TM) Graphics
- Display: 1920x1080
- AMD display driver: 31.0.21925.1001
- OpenGL: 4.6.0 Compatibility Profile Context 26.5.2.260413

### What's happening? What did you expect?

With AMD display driver 31.0.21925.1001, MuJoCo's native UI is rendered incorrectly on this laptop.

The issue occurs in both `simulate.exe` and `python -m mujoco.viewer`.

Observed behavior:
- UI elements can be rendered at incorrect positions or disappear into black areas.
- The invisible controls are still clickable at their expected logical positions.
- Loading an MJCF model makes the corruption worse and can cause the side panels to become black.

I tested the exact same MuJoCo 3.13.0 setup on the same laptop after downgrading only the AMD display driver to Lenovo OEM driver 30.0.13040.1002.

With the older driver, the UI renders correctly at both 150% and 100% font scale, including after loading the same MJCF model.

Expected behavior:
The MuJoCo UI should render correctly with current AMD graphics drivers, as it does with the older Lenovo OEM driver.

I found #639 and #1837 while searching existing issues. There are some similarities, but neither appears to describe exactly the same behavior. In particular, this issue is reproducibly fixed by changing only the AMD graphics driver on the same machine.

### Steps for reproduction

1. Install/run MuJoCo 3.13.0 on Windows with AMD display driver 31.0.21925.1001.

2. Create a minimal MJCF file named `minimal.xml`.

3. Run:

python -m mujoco.viewer --mjcf minimal.xml

4. Observe the native UI. UI elements are rendered incorrectly; after the model is loaded, the side panels can become black while the invisible controls remain clickable.

5. On the same machine, downgrade the AMD display driver to 30.0.13040.1002 and run exactly the same command with the same `minimal.xml`.

6. Observe that the UI now renders and operates normally.

### Minimal model for reproduction
```xml







```
### Code required for reproduction

No additional Python code is required.

The issue reproduces with the built-in viewer:

python -m mujoco.viewer --mjcf minimal.xml

It also reproduces with the native simulate.exe when loading the same minimal.xml.

### Confirmations

- [x] I searched the [latest documentation](https://mujoco.readthedocs.io/en/latest/overview.html) thoroughly before posting.
- [x] I searched previous [Issues](https://github.com/google-deepmind/mujoco/issues) and [Discussions](https://github.com/google-deepmind/mujoco/discussions), I am certain this has not been raised before.

Contributor guide

Open the contributing guide

Research direction

Reproduce the corruption with minimal.xml using `python -m mujoco.viewer --mjcf minimal.xml` and the native `simulate.exe` on the listed AMD driver. Start by tracing the native UI rendering path and compare behavior with driver 30.0.13040.1002; done means the UI renders correctly with driver 31.0.21925.1001, including after loading the model.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
computer-graphics, desktop-dev, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.