#15669 closed defect (not a bug)
module 'xr' has no attribute 'GraphicsBindingOpenGLWin32KHR'
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | VR | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-6.9.9-1-default-x86_64-with-glibc2.39
ChimeraX Version: 1.8 (2024-06-10 23:15:52 UTC)
Description
Typed 'xr on' and hit enter
Log:
Startup Messages
---
note | available bundle cache has not been initialized yet
> set bgColor #80808000
> lighting soft
UCSF ChimeraX version: 1.8 (2024-06-10)
© 2016-2024 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> xr true
> lighting simple
Traceback (most recent call last):
File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/cmd_line/tool.py", line 319, in execute
cmd.run(cmd_text)
File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/core/commands/cli.py", line 3213, in run
result = ci.function(session, **kw_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/vive/xr.py", line 80, in vr
start_vr(session, multishadow_allowed, simplify_graphics)
File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/vive/xr.py", line 374, in start_vr
c.start_vr()
File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/vive/xr.py", line 509, in start_vr
xr.start_session()
File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/vive/openxr.py", line 49, in start_session
self._session = self._create_session() # Connect to headset
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/vive/openxr.py", line 171, in _create_session
gb = xr.GraphicsBindingOpenGLWin32KHR()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'xr' has no attribute 'GraphicsBindingOpenGLWin32KHR'
AttributeError: module 'xr' has no attribute 'GraphicsBindingOpenGLWin32KHR'
File "/usr/libexec/UCSF-ChimeraX/lib/python3.11/site-
packages/chimerax/vive/openxr.py", line 171, in _create_session
gb = xr.GraphicsBindingOpenGLWin32KHR()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
See log for complete Python traceback.
OpenGL version: 4.6 (Core Profile) Mesa 24.1.3
OpenGL renderer: AMD Radeon 780M (radeonsi, gfx1103_r1, LLVM 18.1.8, DRM 3.57, 6.9.9-1-default)
OpenGL vendor: AMD
Python: 3.11.4
Locale: en_US.UTF-8
Qt version: PyQt6 6.6.1, Qt 6.6.1
Qt runtime version: 6.6.3
Qt platform: xcb
XDG_SESSION_TYPE=wayland
DESKTOP_SESSION=plasmawayland
XDG_SESSION_DESKTOP=KDE
XDG_CURRENT_DESKTOP=KDE
DISPLAY=:1
WAYLAND_DISPLAY=wayland-0
Manufacturer: Framework
Model: Laptop 16 (AMD Ryzen 7040 Series)
OS: openSUSE Tumbleweed 20240716 n/a
Architecture: 64bit ELF
Virtual Machine: none
CPU: 16 AMD Ryzen 7 7840HS w/ Radeon 780M Graphics
Cache Size: 1024 KB
Memory:
total used free shared buff/cache available
Mem: 60Gi 4.3Gi 52Gi 74Mi 4.4Gi 56Gi
Swap: 0B 0B 0B
Graphics:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 33 [Radeon RX 7700S/7600/7600S/7600M XT/PRO W7600] [1002:7480] (rev c1)
DeviceName: Realtek
Subsystem: Framework Computer Inc. Device [f111:0007]
Installed Packages:
alabaster: 0.7.16
appdirs: 1.4.4
asttokens: 2.4.1
Babel: 2.15.0
beautifulsoup4: 4.12.3
blockdiag: 3.0.0
blosc2: 2.0.0
build: 1.2.1
certifi: 2024.6.2
cftime: 1.6.4
charset-normalizer: 3.3.2
ChimeraX-AddCharge: 1.5.17
ChimeraX-AddH: 2.2.6
ChimeraX-AlignmentAlgorithms: 2.0.2
ChimeraX-AlignmentHdrs: 3.5
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.12.7
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.1.1
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.57.1
ChimeraX-AtomicLibrary: 14.0.6
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.4
ChimeraX-BasicActions: 1.1.2
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.4.6
ChimeraX-BondRot: 2.0.4
ChimeraX-BugReporter: 1.0.1
ChimeraX-BuildStructure: 2.12.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.2.7
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.4
ChimeraX-ChemGroup: 2.0.1
ChimeraX-Clashes: 2.2.4
ChimeraX-Clipper: 0.23.1
ChimeraX-clix: 0.1.6
ChimeraX-ColorActions: 1.0.5
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.6
ChimeraX-CommandLine: 1.2.5
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.8
ChimeraX-CoreFormats: 1.2
ChimeraX-coulombic: 1.4.3
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.3
ChimeraX-Dicom: 1.2.4
ChimeraX-DiffPlot: 1.0
ChimeraX-DistMonitor: 1.4.2
ChimeraX-DockPrep: 1.1.3
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.1.1
ChimeraX-Hbonds: 2.4
ChimeraX-Help: 1.2.2
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.1
ChimeraX-ISOLDE: 1.8
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-IUPAC: 1.0
ChimeraX-Label: 1.1.10
ChimeraX-LinuxSupport: 1.0.1
ChimeraX-ListInfo: 1.2.2
ChimeraX-Log: 1.1.6
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.9.1
ChimeraX-Map: 1.2
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.1.3
ChimeraX-MCopy: 1.0
ChimeraX-MDcrds: 2.7.1
ChimeraX-MedicalToolbar: 1.0.3
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.14.1
ChimeraX-MMTF: 2.2
ChimeraX-Modeller: 1.5.17
ChimeraX-ModelPanel: 1.5
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
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.13.5
ChimeraX-PDB: 2.7.5
ChimeraX-PDBBio: 1.0.1
ChimeraX-PDBLibrary: 1.0.4
ChimeraX-PDBMatrices: 1.0
ChimeraX-PhenixUI: 1.3.2
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1.1
ChimeraX-PubChem: 2.2
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.2
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.4.1
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.2
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 4.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5.1
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0.2
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-Segmentations: 3.0.15
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.11.2
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.1.1
ChimeraX-ShowSequences: 1.0.3
ChimeraX-SideView: 1.0.1
ChimeraX-Smiles: 2.1.2
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.16.5
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
ChimeraX-TapeMeasure: 1.0
ChimeraX-TaskManager: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1.2
ChimeraX-ToolshedUtils: 1.2.4
ChimeraX-Topography: 1.0
ChimeraX-ToQuest: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.39.1
ChimeraX-uniprot: 2.3
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.4.3
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.4
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.2.2
contourpy: 1.2.1
cxservices: 1.2.2
cycler: 0.12.1
Cython: 3.0.10
debugpy: 1.8.1
decorator: 5.1.1
distro: 1.9.0
docutils: 0.20.1
executing: 2.0.1
filelock: 3.13.4
fonttools: 4.53.0
funcparserlib: 2.0.0a0
glfw: 2.7.0
grako: 3.16.5
h5py: 3.11.0
html2text: 2024.2.26
idna: 3.7
ihm: 1.0
imagecodecs: 2024.1.1
imagesize: 1.4.1
ipykernel: 6.29.2
ipython: 8.21.0
ipywidgets: 8.1.3
jedi: 0.19.1
jinja2: 3.1.4
jupyter-client: 8.6.0
jupyter-core: 5.7.2
jupyterlab-widgets: 3.0.11
kiwisolver: 1.4.5
line-profiler: 4.1.2
lxml: 5.2.1
lz4: 4.3.3
MarkupSafe: 2.1.5
matplotlib: 3.8.4
matplotlib-inline: 0.1.7
msgpack: 1.0.8
nest-asyncio: 1.6.0
netCDF4: 1.6.5
networkx: 3.3
nibabel: 5.2.0
nptyping: 2.5.0
numexpr: 2.10.0
numpy: 1.26.4
openvr: 1.26.701
packaging: 24.1
ParmEd: 4.2.2
parso: 0.8.4
pep517: 0.13.1
pexpect: 4.9.0
pillow: 10.3.0
pip: 24.0
pkginfo: 1.10.0
platformdirs: 4.2.2
prompt-toolkit: 3.0.47
psutil: 5.9.8
ptyprocess: 0.7.0
pure-eval: 0.2.2
py-cpuinfo: 9.0.0
pycollada: 0.8
pydicom: 2.4.4
pygments: 2.17.2
pynmrstar: 3.3.4
pynrrd: 1.0.0
PyOpenGL: 3.1.7
PyOpenGL-accelerate: 3.1.7
pyopenxr: 1.0.3401
pyparsing: 3.1.2
pyproject-hooks: 1.1.0
PyQt6-commercial: 6.6.1
PyQt6-Qt6: 6.6.3
PyQt6-sip: 13.6.0
PyQt6-WebEngine-commercial: 6.6.0
PyQt6-WebEngine-Qt6: 6.6.3
python-dateutil: 2.9.0.post0
pytz: 2024.1
pyzmq: 26.0.3
qtconsole: 5.5.1
QtPy: 2.4.1
RandomWords: 0.4.0
requests: 2.31.0
scipy: 1.13.0
setuptools: 69.5.1
sfftk-rw: 0.8.1
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
soupsieve: 2.5
sphinx: 7.2.6
sphinx-autodoc-typehints: 2.0.1
sphinxcontrib-applehelp: 1.0.8
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 1.0.6
sphinxcontrib-htmlhelp: 2.0.5
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.7
sphinxcontrib-serializinghtml: 1.1.10
stack-data: 0.6.3
superqt: 0.6.3
tables: 3.8.0
tcia-utils: 1.5.1
tifffile: 2024.1.30
tinyarray: 1.2.4
tornado: 6.4.1
traitlets: 5.14.2
typing-extensions: 4.12.2
tzdata: 2024.1
urllib3: 2.2.1
wcwidth: 0.2.13
webcolors: 1.13
wheel: 0.43.0
wheel-filename: 1.4.1
widgetsnbextension: 4.0.11
Change History (7)
comment:1 by , 16 months ago
| Component: | Unassigned → VR |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → module 'xr' has no attribute 'GraphicsBindingOpenGLWin32KHR' |
comment:2 by , 16 months ago
Hello, SteamVR was not running. After starting it, the error goes away. This report can be closed. Best Regards, Colin Gauvin On 7/25/24 11:15, ChimeraX wrote: > > > >
comment:3 by , 16 months ago
I have never tried the ChimeraX xr command on Linux, only on Windows. I would not expect it to work on Linux since the function that is giving the error
xr.GraphicsBindingOpenGLWin32KHR()
is specific to Windows (that is what the Win32 refers to in the name). And there are other Windows calls used to get an OpenGL context for the OpenXR rendering. Are you telling me this actually worked on Linux after starting SteamVR?
While it should be possible to add to the ChimeraX OpenXR code to support Linux I never had time to attempt that. Already the VR users on Windows which is where 99% of the PC VR market is hardly ever used, so it is hard for me to support Linux VR.
comment:4 by , 16 months ago
Hi Tom, The short answer is I don't know. The long answer is I need to reply to your reply about the "Xreality" glasses, but I'm still testing out all possible avenues. One pair of glasses I have (Xreal Air) have an OpenXR driver built into Monado, which detects them perfectly fine, and I can use them as XR glasses. However, that's only with Monado as the OpenXR provider. If I switch the provider to SteamVR, it can't detect the glasses. Since ChimeraX only seems to be able to do XR through SteamVR, not Monado, I don't know if they will work with OpenXR. I tried just 'xr on' and got this error. Then I realized SteamVR needed to be open, so I tried opening SteamVR and 'xr on' then gave the message about "VR headset not found, using SteamVR/OpenXR" etc. This is expected because SteamVR does not detect my glasses. Historically, the Valve Index has worked with ChimeraX VR mode on Linux, so if I can get SteamVR to detect my glasses, I'm wondering if VR mode will work. There is a custom driver for the glasses to let SteamVR detect them/use them, so if I can get that working, I will let you know how it fares in ChimeraX. P.S. - thanks for all the work you do, especially on the 3D rendering side. Stereo is dying tool but I can't get by without it. Best Regards, Colin Gauvin On 7/25/24 14:58, ChimeraX wrote: > > > > >
comment:5 by , 16 months ago
| Resolution: | → not a bug |
|---|---|
| Status: | assigned → closed |
Hi Colin,
The ChimeraX xr command uses OpenXR which in theory works with any OpenXR implementation. I have used it with Quest and the Oculus Windows PC app without SteamVR, and I have also used it with SteamVR, so at least those two OpenXR implementations work. But the OpenXR code requires specifying an OpenGL context and that is operating system dependent and I only added support for Windows.
So in summary I would expect the ChimeraX xr command to work with any compliant OpenXR library on Windows, but not work on Linux.
Tom
comment:6 by , 16 months ago
Thanks - that clarifies things. That's too bad since there's no XR driver for the glasses on Windows. Seems like getting SteamVR working on Linux is probably the only real shot. Best Regards, Colin Gauvin On 7/25/24 15:23, ChimeraX wrote: > > > > > > >
comment:7 by , 16 months ago
I wrote the ChimeraX VR and OpenXR code and I have only tested it on Windows for the past 5 years. Before that I had SteamVR working on Linux and Mac but since there is almost no support for VR on those operating systems I gave that up. But since that time SteamVR officially dropped support for Mac (that never really existed) and officially supported Linux. But I have not tried whether ChimeraX VR works on Linux with SteamVR. OpenXR could also work with Linux but as I said I did not add the custom Linux code to ChimeraX OpenXR to allow that.
VR and XR hardware is so bleeding edge it barely works on the platforms that the venders are targeting, so to try it on some other platform like Linux is insane. The question is what PC support does XReality offer? Maybe the answer is "none", and that is why you are trying these desperate measures.
Reported by Colin Gauvin