Opened 4 years ago
Closed 3 years ago
#6554 closed defect (limitation)
VirtualGL: glClear: invalid operation
| Reported by: | Owned by: | Greg Couch | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Graphics | Version: | |
| Keywords: | Cc: | Tom Goddard | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-3.10.0-1062.12.1.el7.x86_64-x86_64-with-glibc2.17
ChimeraX Version: 1.3 (2021-12-08 23:08:33 UTC)
Description
Using chimerax with VirtualGL. Most of operations fail with GLError 1282.
Log:
UCSF ChimeraX version: 1.3 (2021-12-08)
© 2016-2021 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open /gstore/home/farim1/1MJC.pdb format pdb
1MJC.pdb title:
Crystal structure of CSPA, the major cold shock protein of escherichia coli
[more info...]
Chain information for 1MJC.pdb #1
---
Chain | Description | UniProt
A | major cold-shock protein 7.4 | CSPA_ECOLI
Traceback (most recent call last):
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/ui/widgets/htmlview.py", line 333, in interceptRequest
self._callback(info)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/ui/widgets/htmlview.py", line 92, in _intercept
return interceptor(request_info, *args)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/ui/widgets/htmlview.py", line 366, in intercept
chimerax_intercept(*args, view=view, session=session)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/ui/widgets/htmlview.py", line 468, in chimerax_intercept
session.ui.thread_safe(defer, session, qurl.url(no_formatting), from_dir)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/ui/gui.py", line 382, in thread_safe
func(*args, **kw)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/ui/widgets/htmlview.py", line 459, in defer
cxcmd(session, topic)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/ui/widgets/htmlview.py", line 477, in cxcmd
run(session, cmd)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/core/commands/run.py", line 36, in run
results = command.run(text, log=log, return_json=return_json)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/core/commands/cli.py", line 2856, in run
result = ci.function(session, **kw_args)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/open_command/cmd.py", line 118, in cmd_open
models = Command(session, registry=registry).run(provider_cmd_text,
log=log)[0]
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/core/commands/cli.py", line 2856, in run
result = ci.function(session, **kw_args)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/open_command/cmd.py", line 238, in provider_open
session.logger.status(status, log=status)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/core/logger.py", line 456, in status
StatusLogger.status(self, msg, **kw)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/core/logger.py", line 199, in status
if l.status(msg, color, secondary) and getattr(l, "excludes_other_logs",
True):
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/ui/gui.py", line 889, in status
sbar.status(msg, color, secondary)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/ui/statusbar.py", line 150, in status
r.draw_background()
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 1166, in draw_background
GL.glClear(flags)
File "src/errorchecker.pyx", line 58, in
OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError
OpenGL.error.GLError: GLError(
err = 1282,
description = b'invalid operation',
baseOperation = glClear,
cArguments = (16640,)
)
OpenGL.error.GLError: GLError(
err = 1282,
description = b'invalid operation',
baseOperation = glClear,
cArguments = (16640,)
)
File "src/errorchecker.pyx", line 58, in
OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError
See log for complete Python traceback.
An error occurred in drawing the scene. Redrawing graphics is now stopped to
avoid a continuous stream of error messages. To restart graphics use the
command "graphics restart" after changing the settings that caused the error.
GLError(
err = 1282,
description = b'invalid operation',
baseOperation = glGetString,
cArguments = (GL_VERSION,),
result = b'3.3.0 NVIDIA 510.39.01'
)
Traceback (most recent call last):
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/core/updateloop.py", line 73, in draw_new_frame
view.draw(check_for_changes = False)
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 139, in draw
if not self._use_opengl():
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 106, in _use_opengl
self._initialize_opengl()
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 117, in _initialize_opengl
r.check_opengl_version()
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 1052, in check_opengl_version
vmajor, vminor = self.opengl_version_number()
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 1038, in opengl_version_number
vs = self.opengl_version().split()[0].split('.')[:2]
File "/gstore/home/farim1/tmp/usr/libexec/UCSF-ChimeraX/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 1034, in opengl_version
return GL.glGetString(GL.GL_VERSION).decode('utf-8')
File "src/errorchecker.pyx", line 58, in
OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError
OpenGL.error.GLError: GLError(
err = 1282,
description = b'invalid operation',
baseOperation = glGetString,
cArguments = (GL_VERSION,),
result = b'3.3.0 NVIDIA 510.39.01'
)
> ui tool show "Selection Inspector"
> open /gstore/home/farim1/1MJC.pdb
1MJC.pdb title:
Crystal structure of CSPA, the major cold shock protein of escherichia coli
[more info...]
Chain information for 1MJC.pdb #2
---
Chain | Description | UniProt
A | major cold-shock protein 7.4 | CSPA_ECOLI
> lighting simple
OpenGL version: 3.3.0 NVIDIA 510.39.01
OpenGL renderer: Quadro P6000/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: BOXX Technologies
Model: GX8
OS: CentOS Linux 7 Core
Architecture: 64bit ELF
Virutal Machine: none
CPU: 24 Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
Cache Size: 30720 KB
Memory:
total used free shared buff/cache available
Mem: 503G 56G 302G 512M 145G 445G
Swap: 0B 0B 0B
Graphics:
04:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102GL [Quadro P6000] [10de:1b30] (rev a1)
Subsystem: NVIDIA Corporation Device [10de:11a0]
Kernel driver in use: nvidia
Locale: (None, None)
PyQt5 5.15.2, Qt 5.15.2
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
Babel: 2.9.1
backcall: 0.2.0
blockdiag: 2.0.1
certifi: 2021.10.8
cftime: 1.5.1.1
charset-normalizer: 2.0.9
ChimeraX-AddCharge: 1.2.2
ChimeraX-AddH: 2.1.11
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.2.3
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.1
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.31
ChimeraX-AtomicLibrary: 4.2
ChimeraX-AtomSearch: 2.0
ChimeraX-AtomSearchLibrary: 1.0
ChimeraX-AxesPlanes: 2.0
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.0
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.6.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.1
ChimeraX-ButtonPanel: 1.0
ChimeraX-CageBuilder: 1.0
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.2
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.2.2
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5
ChimeraX-CommandLine: 1.1.5
ChimeraX-ConnectStructure: 2.0
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.3
ChimeraX-CoreFormats: 1.1
ChimeraX-coulombic: 1.3.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0
ChimeraX-DataFormats: 1.2.2
ChimeraX-Dicom: 1.0
ChimeraX-DistMonitor: 1.1.5
ChimeraX-DistUI: 1.0
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0
ChimeraX-FunctionKey: 1.0
ChimeraX-Geometry: 1.1
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.1
ChimeraX-Hbonds: 2.1.2
ChimeraX-Help: 1.2
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.1
ChimeraX-ItemsInspection: 1.0
ChimeraX-Label: 1.1
ChimeraX-LinuxSupport: 1.0
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.4
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.1
ChimeraX-Map: 1.1
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1
ChimeraX-Markers: 1.0
ChimeraX-Mask: 1.0
ChimeraX-MatchMaker: 2.0.4
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.1
ChimeraX-mmCIF: 2.4
ChimeraX-MMTF: 2.1
ChimeraX-Modeller: 1.2.6
ChimeraX-ModelPanel: 1.2.1
ChimeraX-ModelSeries: 1.0
ChimeraX-Mol2: 2.0
ChimeraX-Morph: 1.0
ChimeraX-MouseModes: 1.1
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0.2
ChimeraX-OpenCommand: 1.7
ChimeraX-PDB: 2.6.5
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.0.1
ChimeraX-PubChem: 2.1
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-ResidueFit: 1.0
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0.1
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.4.6
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0
ChimeraX-Shortcuts: 1.1
ChimeraX-ShowAttr: 1.0
ChimeraX-ShowSequences: 1.0
ChimeraX-SideView: 1.0
ChimeraX-Smiles: 2.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.6.1
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-Struts: 1.0
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.1
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1
ChimeraX-ToolshedUtils: 1.2
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.13.7
ChimeraX-uniprot: 2.2
ChimeraX-UnitCell: 1.0
ChimeraX-ViewDockX: 1.0.1
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0
ChimeraX-WebServices: 1.0
ChimeraX-Zone: 1.0
colorama: 0.4.4
cxservices: 1.1
cycler: 0.11.0
Cython: 0.29.24
decorator: 5.1.0
distro: 1.6.0
docutils: 0.17.1
filelock: 3.0.12
funcparserlib: 0.3.6
grako: 3.16.5
h5py: 3.6.0
html2text: 2020.1.16
idna: 3.3
ihm: 0.21
imagecodecs: 2021.4.28
imagesize: 1.3.0
ipykernel: 5.5.5
ipython: 7.23.1
ipython-genutils: 0.2.0
jedi: 0.18.0
Jinja2: 3.0.1
jupyter-client: 6.1.12
jupyter-core: 4.9.1
kiwisolver: 1.3.2
line-profiler: 3.3.0
lxml: 4.6.3
lz4: 3.1.3
MarkupSafe: 2.0.1
matplotlib: 3.4.3
matplotlib-inline: 0.1.3
msgpack: 1.0.2
netCDF4: 1.5.7
networkx: 2.6.3
numexpr: 2.8.0
numpy: 1.21.2
openvr: 1.16.801
packaging: 21.3
ParmEd: 3.2.0
parso: 0.8.3
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 8.3.2
pip: 21.2.4
pkginfo: 1.7.1
prompt-toolkit: 3.0.23
psutil: 5.8.0
ptyprocess: 0.7.0
pycollada: 0.7.1
pydicom: 2.1.2
Pygments: 2.10.0
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.6
PyQt5-commercial: 5.15.2
PyQt5-sip: 12.8.1
PyQtWebEngine-commercial: 5.15.2
python-dateutil: 2.8.2
pytz: 2021.3
pyzmq: 22.3.0
qtconsole: 5.1.1
QtPy: 1.11.3
RandomWords: 0.3.0
requests: 2.26.0
scipy: 1.7.1
setuptools: 57.5.0
sfftk-rw: 0.7.1
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
Sphinx: 4.2.0
sphinx-autodoc-typehints: 1.12.0
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 2.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 2.0.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.5
suds-jurko: 0.6
tables: 3.6.1
tifffile: 2021.4.8
tinyarray: 1.2.3
tornado: 6.1
traitlets: 5.1.1
urllib3: 1.26.7
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.37.0
wheel-filename: 1.3.0
Change History (10)
comment:1 by , 4 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Graphics |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → VirtualGL: glClear: invalid operation |
comment:2 by , 4 years ago
| Resolution: | → nonchimerax |
|---|---|
| Status: | assigned → closed |
This OpenGL "invalid operation" error just means your VirtualGL is not working correctly. This is a VirtualGL problem not a ChimeraX issue. I don't know anything about configuring VirtualGL. In general technologies that try to send OpenGL commands from an application running on one computer, to another computer to do the rendering are fragile and often fail to work.
ChimeraX does indicate it sees your graphics driver
OpenGL version: 3.3.0 NVIDIA 510.39.01
OpenGL renderer: Quadro P6000/PCIe/SSE2
My only suggestion is to run ChimeraX without VirtualGL.
comment:3 by , 4 years ago
Which version of VirtualGL are you using? We have had reported issues with 3.0. But I would expect 2.5 and 2.6 to work.
comment:4 by , 4 years ago
| Resolution: | nonchimerax |
|---|---|
| Status: | closed → reopened |
Will try to help commercial license holder get ChimeraX running with VirtualGL.
comment:5 by , 4 years ago
| Cc: | added; removed |
|---|---|
| Owner: | changed from to |
| Status: | reopened → assigned |
follow-up: 6 comment:6 by , 4 years ago
Hello Greg and Tom, Thanks for your answer. We are using VirtualGL 3, I think we can try 2.5 or 2.6. On Wed, Apr 6, 2022 at 8:02 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:
comment:7 by , 4 years ago
Please let us know if reverting to an earlier version of VirtualGL works. Thanks.
follow-up: 8 comment:8 by , 4 years ago
Hello, we considered reverting to a previous VirtualGL version but we cannot use or make VirtualGL 2.5/2.6 available because these versions do not have EGL support. These older versions would require that we run a "shared", insecure NVIDIA x.org service on all of the compute nodes, which would be possible. What other approaches could we employ? We are available to make tests if you have some ideas. Best regards On Thu, Apr 7, 2022 at 10:24 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:
comment:9 by , 4 years ago
Have you filed a bug report with VirtualGL yet? You should also be aware that Ubuntu 22.04 (just came out) has dropped using Wayland (and EGL) for Nvidia graphics at this time in favor x.org. So the recommendation stands to switch back to VirtualGL 2.5/2.5 if you want ChimeraX to work. Depending on how you are using VirtualGL, it is not very insecure. The danger comes from someone being logged in at the console with x.org. If all use is remote, and you are using the vglusers group to limit access to trusted users, you should be fine.
comment:10 by , 3 years ago
| Resolution: | → limitation |
|---|---|
| Status: | assigned → closed |
Reported by Maicon Faria