Opened 3 weeks ago
Closed 3 weeks ago
#19830 closed defect (fixed)
Drag-select freezes graphics
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Graphics | Version: | |
| Keywords: | Cc: | Greg Couch, Zach Pearson | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-6.12.0-124.31.1.el10_1.x86_64-x86_64-with-glibc2.39
ChimeraX Version: 1.11.1 (2026-01-23 05:51:34 UTC)
Description
When I try to CTRL + drag cursor to select atoms, the GUI freezes. If I wait, the menu will unfreeze, but the rendered model stays stuck with a tiny green rectangle showing where I tried to start the selection
Log:
Startup Messages
---
warning | GBM is not supported with the current configuration. Fallback to Vulkan rendering in Chromium.
UCSF ChimeraX version: 1.11.1 (2026-01-23)
© 2016-2025 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
Desktop color scheme is dark
> open
> /home/sean/nac/ifnl1/ifnl1_complex_out/IFNl1_complex_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb
> format pdb
Chain information for
IFNl1_complex_unrelaxed_rank_001_alphafold2_multimer_v3_model_3_seed_000.pdb
#1
---
Chain | Description
A | No description available
B | No description available
C | No description available
Computing secondary structure
> select /B:238
9 atoms, 8 bonds, 1 residue, 1 model selected
> select clear
Drag select of 16 residues
OpenGL version: 3.3.0 NVIDIA 590.48.01
OpenGL renderer: NVIDIA GeForce RTX 4090/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Python: 3.11.13
Locale: en_CA.UTF-8
Qt version: PyQt6 6.9.1, Qt 6.9.0
Qt runtime version: 6.9.2
Qt platform: xcb
XDG_SESSION_TYPE=wayland
DESKTOP_SESSION=gnome
XDG_SESSION_DESKTOP=gnome
XDG_CURRENT_DESKTOP=GNOME
GNOME_SETUP_DISPLAY=:1
DISPLAY=:0
WAYLAND_DISPLAY=wayland-0
Manufacturer: ASUS
Model: System Product Name
OS: AlmaLinux 10.1
Architecture: 64bit ELF
Virtual Machine: none
CPU: 32 Intel(R) Core(TM) i9-14900KF
Cache Size: 36864 KB
Memory:
total used free shared buff/cache available
Mem: 125Gi 9.7Gi 110Gi 314Mi 6.8Gi 115Gi
Swap: 31Gi 0B 31Gi
Graphics:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD102 [GeForce RTX 4090] [10de:2684] (rev a1)
Subsystem: Gigabyte Technology Co., Ltd Device [1458:40bf]
Kernel driver in use: nvidia
Installed Packages:
aiohappyeyeballs: 2.6.1
aiohttp: 3.13.1
aiosignal: 1.4.0
alabaster: 1.0.0
annotated-types: 0.7.0
anyio: 4.12.1
appdirs: 1.4.4
asttokens: 3.0.1
attrs: 25.4.0
babel: 2.17.0
beautifulsoup4: 4.13.5
blockdiag: 3.0.0
blosc2: 3.12.2
build: 1.3.0
certifi: 2026.1.4
cftime: 1.6.5
charset-normalizer: 3.4.4
ChimeraX-AddCharge: 1.5.20
ChimeraX-AddH: 2.2.8
ChimeraX-AlignmentAlgorithms: 2.0.2
ChimeraX-AlignmentHdrs: 3.6.1
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 3.1.1
ChimeraX-AlphaFold: 1.0.1
ChimeraX-AltlocExplorer: 1.2
ChimeraX-AmberInfo: 1.0
ChimeraX-Animations: 1.0
ChimeraX-Aniso: 1.3.2
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.61.4
ChimeraX-AtomicLibrary: 14.2.1
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.4
ChimeraX-BasicActions: 1.1.3
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 3.0.0
ChimeraX-Boltz: 1.1
ChimeraX-BondRot: 2.0.4
ChimeraX-BugReporter: 1.0.2
ChimeraX-BuildStructure: 2.13.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.6.0
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.4
ChimeraX-ChangeChains: 1.1
ChimeraX-CheckWaters: 1.5
ChimeraX-ChemGroup: 2.0.2
ChimeraX-Clashes: 2.3
ChimeraX-ColorActions: 1.0.5
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.8
ChimeraX-CommandLine: 1.3.0
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.11.1
ChimeraX-CoreFormats: 1.2
ChimeraX-coulombic: 1.4.5
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.4
ChimeraX-Dicom: 1.2.7
ChimeraX-DistMonitor: 1.4.2
ChimeraX-DockPrep: 1.1.4
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ESMFold: 1.0
ChimeraX-FileHistory: 1.0.1
ChimeraX-FunctionKey: 1.0.1
ChimeraX-Geometry: 1.3
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.4.1
ChimeraX-Hbonds: 2.5.3
ChimeraX-Help: 1.3
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.4
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-IUPAC: 1.0
ChimeraX-KVFinder: 1.7.3
ChimeraX-Label: 1.2
ChimeraX-LinuxSupport: 1.0.1
ChimeraX-ListInfo: 1.2.2
ChimeraX-Log: 1.2.2
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.9.2
ChimeraX-Map: 1.3
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0.1
ChimeraX-MapFilter: 2.0.1
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1.1
ChimeraX-Markers: 1.0.1
ChimeraX-Mask: 1.0.2
ChimeraX-MatchMaker: 2.2.2
ChimeraX-MCopy: 1.0
ChimeraX-MCPServer: 0.1.0
ChimeraX-MDcrds: 2.17.2
ChimeraX-MedicalToolbar: 1.1
ChimeraX-Meeting: 1.0.1
ChimeraX-Minimize: 1.3.2
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.16
ChimeraX-MMTF: 2.2
ChimeraX-ModelArchive: 1.0
ChimeraX-Modeller: 1.5.22
ChimeraX-ModelPanel: 1.6
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0.3
ChimeraX-Mole: 1.0
ChimeraX-Morph: 1.0.2
ChimeraX-MouseModes: 1.2
ChimeraX-Movie: 1.0.1
ChimeraX-MutationScores: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nifti: 1.2
ChimeraX-NMRSTAR: 1.0.2
ChimeraX-NRRD: 1.2
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.15.2
ChimeraX-OrthoPick: 1.0.1
ChimeraX-PDB: 2.7.12
ChimeraX-PDBBio: 1.0.1
ChimeraX-PDBLibrary: 1.0.5
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1.4
ChimeraX-ProfileGrids: 1.4.2
ChimeraX-PubChem: 2.2
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.2
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.6.5
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.3.3
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 4.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5.2
ChimeraX-Scenes: 0.3.1
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0.3
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-Segmentations: 3.5.10
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.17.3
ChimeraX-Shape: 1.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.2.1
ChimeraX-ShowSequences: 1.0.3
ChimeraX-SideView: 1.0.1
ChimeraX-SimilarStructures: 1.0.1
ChimeraX-Smiles: 2.1.2
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.19.1
ChimeraX-STL: 1.0.1
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.2.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0.1
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.5.2
ChimeraX-TapeMeasure: 1.0
ChimeraX-TaskManager: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.2.3
ChimeraX-ToolshedUtils: 1.2.4
ChimeraX-Topography: 1.0
ChimeraX-ToQuest: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.49.1
ChimeraX-Umap: 1.0
ChimeraX-uniprot: 2.3.2
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDock: 1.5.2
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-vrml: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.2
ChimeraX-WebServices: 1.1.5
ChimeraX-Zone: 1.0.1
click: 8.3.1
colorama: 0.4.6
comm: 0.2.3
contourpy: 1.3.3
coverage: 7.13.1
cxservices: 1.2.3
cycler: 0.12.1
Cython: 3.1.4
debugpy: 1.8.19
decorator: 5.2.1
distro: 1.9.0
docutils: 0.21.2
executing: 2.2.1
filelock: 3.19.1
fonttools: 4.61.1
frozenlist: 1.8.0
funcparserlib: 2.0.0a0
glfw: 2.10.0
grako: 3.16.5
h11: 0.16.0
h5py: 3.15.1
html2text: 2025.4.15
httpcore: 1.0.9
httpx: 0.28.1
httpx-sse: 0.4.3
idna: 3.11
ihm: 2.2
imagecodecs: 2024.6.1
imagesize: 1.4.1
iniconfig: 2.3.0
ipykernel: 6.30.1
ipython: 9.5.0
ipython_pygments_lexers: 1.1.1
ipywidgets: 8.1.8
jedi: 0.19.2
Jinja2: 3.1.6
jsonschema: 4.26.0
jsonschema-specifications: 2025.9.1
jupyter_client: 8.6.3
jupyter_core: 5.9.1
jupyterlab_widgets: 3.0.16
kiwisolver: 1.4.9
line_profiler: 5.0.0
lxml: 6.0.2
lz4: 4.3.2
Markdown: 3.8.2
MarkupSafe: 3.0.3
matplotlib: 3.10.7
matplotlib-inline: 0.2.1
mcp: 1.18.0
msgpack: 1.1.1
multidict: 6.7.0
ndindex: 1.10.1
nest-asyncio: 1.6.0
netCDF4: 1.6.5
networkx: 3.3
nibabel: 5.2.0
nptyping: 2.5.0
numexpr: 2.14.1
numpy: 1.26.4
nvidia-nvjitlink-cu12: 12.9.86
OpenMM: 8.2.0
OpenMM-CUDA-12: 8.2.0
openvr: 1.26.701
packaging: 25.0
ParmEd: 4.2.2
parso: 0.8.5
pep517: 0.13.1
pexpect: 4.9.0
pickleshare: 0.7.5
pillow: 11.3.0
pip: 25.2
pkginfo: 1.12.1.2
platformdirs: 4.5.1
pluggy: 1.6.0
prompt_toolkit: 3.0.52
propcache: 0.4.1
psutil: 7.0.0
ptyprocess: 0.7.0
pure_eval: 0.2.3
py-cpuinfo: 9.0.0
pybind11: 3.0.1
pycollada: 0.8
pydantic: 2.12.5
pydantic-settings: 2.12.0
pydantic_core: 2.41.5
pydicom: 2.4.4
Pygments: 2.18.0
pynmrstar: 3.3.6
pynrrd: 1.0.0
PyOpenGL: 3.1.10
PyOpenGL-accelerate: 3.1.10
pyopenxr: 1.1.4501
pyparsing: 3.3.2
pyproject_hooks: 1.2.0
PyQt6: 6.9.1
PyQt6-Qt6: 6.9.2
PyQt6-WebEngine: 6.9.0
PyQt6-WebEngine-Qt6: 6.9.2
PyQt6_sip: 13.10.2
pytest: 9.0.2
pytest-cov: 7.0.0
python-dateutil: 2.9.0.post0
python-dotenv: 1.2.1
python-multipart: 0.0.21
pyzmq: 27.1.0
qtconsole: 5.7.0
QtPy: 2.4.3
qtshim: 1.2
RandomWords: 0.4.0
referencing: 0.37.0
requests: 2.32.5
roman-numerals: 4.1.0
roman-numerals-py: 4.1.0
rpds-py: 0.30.0
scipy: 1.14.0
setuptools: 80.9.0
sfftk-rw: 0.8.1
six: 1.17.0
snowballstemmer: 3.0.1
sortedcontainers: 2.4.0
soupsieve: 2.8.3
Sphinx: 8.2.3
sphinx-autodoc-typehints: 3.2.0
sphinxcontrib-applehelp: 2.0.0
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 2.0.0
sphinxcontrib-htmlhelp: 2.1.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 2.0.0
sphinxcontrib-serializinghtml: 2.0.0
sse-starlette: 3.2.0
stack-data: 0.6.3
starlette: 0.52.1
superqt: 0.7.6
tables: 3.10.2
tcia_utils: 1.5.1
tifffile: 2025.3.13
tinyarray: 1.2.5
tornado: 6.5.4
traitlets: 5.14.3
typing-inspection: 0.4.2
typing_extensions: 4.15.0
urllib3: 2.6.3
uvicorn: 0.40.0
wcwidth: 0.3.2
webcolors: 24.11.1
wheel: 0.45.1
wheel-filename: 1.4.2
widgetsnbextension: 4.0.15
yarl: 1.22.0
Change History (7)
comment:1 by , 3 weeks ago
| Component: | Unassigned → Graphics |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Drag-select freezes graphics |
comment:3 by , 3 weeks ago
| Cc: | added |
|---|
I think I need to put in some work-around since Wayland is becoming common now. Online posts about other Wayland Nvidia problems suggest there are many bugs for 3D rendering.
The best fix I found was swapping front to back, drawing the box, then swapping back to front, causing flicker. I can put a test for Wayland in and use that method of drawing the green selection rectangle.
Hopefully the Wayland and Nvidia developers will fix this front buffer drawing bug in a future release.
comment:4 by , 3 weeks ago
That makes sense to me.
Wayland really does cause more problems than it solves for desktop Linux IMO. I was hopeful that with Qt implementing xdg-toplevel-drag we'd be able to support it on the upcoming Ubuntu 26.04, but I tried an early build and discovered xdg-toplevel-drag still doesn't solve the docked window problem. It's essentially there so browser windows can trade tabs with each other. So we'll be stuck forcing Xwayland for the foreseeable future.
comment:6 by , 3 weeks ago
On Ubuntu 24.04 with a Wayland session and Nvidia driver 580.126.09 and Nvidia 4090 drag select does not hang, but it also does not show and green outline rectangle. So it is broken in a less serious way.
comment:7 by , 3 weeks ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed.
I added work-around code to so drag select draws the outline in the back buffer and swaps it to the front buffer if it detects Wayland and Nvidia graphics. Flicker is severe, but at least it doesn't hang. Hopefully Wayland/Nvidia will fix this bug and we can remove this ChimeraX work-around code.
As you noted in the ChimeraX Github issue about this bug
https://github.com/RBVI/ChimeraX/issues/221
it hangs even with no models open the problem is with the graphics drawing the green outline rectangle when your drag select. That code draws to the front buffer in OpenGL, a somewhat unusual operation, to invert the green channel of the pixels of the outline. My guess is with XWayland that drawing to the front buffer with Nvidia graphics is broken. I retested on my Ubuntu 25.10 system with Nvidia 580.48.01 driver and I can reproduce the hang.
I tried modifying the ChimeraX code so instead of drawing the OpenGL front buffer it draws the back buffer and it works correctly, although to make the green box visible I have to swap back and front buffers, then draw the box in the back buffer, then swap back and front buffers. This leads to unpleasant flicker.
Another work-around is just to not draw the box with the broken XWayland compositor. But when I tried that the lack of visual feedback when selecting makes it hard to select what you want.