Opened 4 years ago

Closed 3 years ago

#6554 closed defect (limitation)

VirtualGL: glClear: invalid operation

Reported by: farim1@… 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 Eric Pettersen, 4 years ago

Cc: Greg Couch added
Component: UnassignedGraphics
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionVirtualGL: glClear: invalid operation

Reported by Maicon Faria

comment:2 by Tom Goddard, 4 years ago

Resolution: nonchimerax
Status: assignedclosed

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 Greg Couch, 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 Tom Goddard, 4 years ago

Resolution: nonchimerax
Status: closedreopened

Will try to help commercial license holder get ChimeraX running with VirtualGL.

comment:5 by Tom Goddard, 4 years ago

Cc: Tom Goddard added; Greg Couch removed
Owner: changed from Tom Goddard to Greg Couch
Status: reopenedassigned

in reply to:  6 ; comment:6 by faria.maicon@…, 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 Greg Couch, 4 years ago

Please let us know if reverting to an earlier version of VirtualGL works. Thanks.

in reply to:  8 ; comment:8 by faria.maicon@…, 3 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 Greg Couch, 3 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 Greg Couch, 3 years ago

Resolution: limitation
Status: assignedclosed
Note: See TracTickets for help on using tickets.