Opened 2 years ago
Closed 12 months ago
#9825 closed defect (nonchimerax)
Quest VR is not smooth
| 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: Windows-10-10.0.22621
ChimeraX Version: 1.7.dev202309201855 (2023-09-20 18:55:20 UTC)
Description
Quest VR is not smooth.
As I move my head side to side 2 feet there are glitches where the molecule jumps every few seconds. Simply rotating my head does not produce glitches probably because reprojection does a good job of filling in missing frames for pure rotations.
Just tested this with Quest Pro with AirLink to vizvault Windows 11 machine with Nvidia 3070 connected by ethernet cable to wall port and by wifi to RBVIVR at 5 GHz. I tried the old OpenVR/SteamVR code and OpenXR directly to Oculus runtime, and OpenXR to SteamVR runtime, and all had similar frequency of glitches. Windows machine reports using wifi channel 48 with 574/459 Mbps receive/transmit using Intel(R) Wi-Fi 6E AX211 160MHz. I tried lowering the AirLink dynamic bandwidth target from 100 Mbps to 15 Mbps in the Quest headset settings and frequency of glitches was about the same, maybe slightly less. I was using stationary boundary (2 meter circle), seated, tried different viewing directions and all seemed similar.
I then tried a wired Vive Pro with cable using SteamVR in this same ChimeraX session with 60 seconds of head motion sideways 2 feet and not a single glitch with OpenVR/SteamVR. Also not a single glitch in 60 seconds of head motion with OpenXR/SteamVR. Completely rock solid.
Log:
UCSF ChimeraX version: 1.7.dev202309201855 (2023-09-20)
© 2016-2023 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open 8gia format mmcif fromDatabase pdb
8gia title:
Crystal structure of SARS-CoV-2 (Covid-19) Nsp3 macrodomain in complex with
TFMU-ADPr [more info...]
Chain information for 8gia #1
---
Chain | Description | UniProt
A C | Non-structural protein 3 | R1AB_SARS2 2-170
Non-standard residues in 8gia #1
---
ZJ3 — [(2R,3S,4R,5R)-5-(6-amino-9H-purin-9-yl)-3,4-dihydroxyoxolan-2-yl]methyl
[(2R,3S,4R,5R)-3,4-dihydroxy-5-{[2-oxo-4-(trifluoromethyl)-2H-1-benzopyran-7-yl]oxy}oxolan-2-yl]methyl
dihydrogen diphosphate
8gia mmCIF Assemblies
---
1| author_defined_assembly
2| author_defined_assembly
> xr true
started OpenXR rendering Meta Quest Pro
> xr mirror false
> xr false
> xr true
started OpenXR rendering SteamVR/OpenXR : oculus
> xr false
> vr true
started SteamVR rendering
> vr mirror false
> vr false
> vr true
started SteamVR rendering
> vr false
> xr true
started OpenXR rendering SteamVR/OpenXR : lighthouse
OpenGL version: 3.3.0 NVIDIA 536.19
OpenGL renderer: NVIDIA GeForce RTX 3070/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Python: 3.11.2
Locale: en_US.cp1252
Qt version: PyQt6 6.3.1, Qt 6.3.1
Qt runtime version: 6.3.2
Qt platform: windows
Manufacturer: Dell Inc.
Model: OptiPlex 7000
OS: Microsoft Windows 11 Pro (Build 22621)
Memory: 68,393,086,976
MaxProcessMemory: 137,438,953,344
CPU: 20 12th Gen Intel(R) Core(TM) i7-12700K
OSLanguage: en-US
Installed Packages:
alabaster: 0.7.13
appdirs: 1.4.4
asttokens: 2.4.0
Babel: 2.12.1
backcall: 0.2.0
beautifulsoup4: 4.11.2
blockdiag: 3.0.0
blosc2: 2.0.0
build: 0.10.0
certifi: 2023.7.22
cftime: 1.6.2
charset-normalizer: 3.2.0
ChimeraX-AddCharge: 1.5.11
ChimeraX-AddH: 2.2.5
ChimeraX-AlignmentAlgorithms: 2.0.1
ChimeraX-AlignmentHdrs: 3.4
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.9.3
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.1.1
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.47.2
ChimeraX-AtomicLibrary: 10.0.8
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.3.2
ChimeraX-BasicActions: 1.1.2
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.2
ChimeraX-BondRot: 2.0.4
ChimeraX-BugReporter: 1.0.1
ChimeraX-BuildStructure: 2.10.5
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.2.2
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.3.2
ChimeraX-ChangeChains: 1.0.3
ChimeraX-CheckWaters: 1.3.1
ChimeraX-ChemGroup: 2.0.1
ChimeraX-Clashes: 2.2.4
ChimeraX-ColorActions: 1.0.3
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.4
ChimeraX-CommandLine: 1.2.5
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.7.dev202309201855
ChimeraX-CoreFormats: 1.1
ChimeraX-coulombic: 1.4.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.3
ChimeraX-Dicom: 1.2
ChimeraX-DistMonitor: 1.4
ChimeraX-DockPrep: 1.1.2
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-ItemsInspection: 1.0.1
ChimeraX-IUPAC: 1.0
ChimeraX-Label: 1.1.8
ChimeraX-ListInfo: 1.2.1
ChimeraX-Log: 1.1.5
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.9.1
ChimeraX-Map: 1.1.4
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.2
ChimeraX-MCopy: 1.0
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.2
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.12.1
ChimeraX-MMTF: 2.2
ChimeraX-Modeller: 1.5.12
ChimeraX-ModelPanel: 1.4
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.1
ChimeraX-NRRD: 1.1
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.10.2
ChimeraX-PDB: 2.7.2
ChimeraX-PDBBio: 1.0.1
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1
ChimeraX-PubChem: 2.1
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.2
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.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.1
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.9.1
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.1.1
ChimeraX-ShowSequences: 1.0.2
ChimeraX-SideView: 1.0.1
ChimeraX-Smiles: 2.1.2
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.12.2
ChimeraX-STL: 1.0.1
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.1.2
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0.1
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.2.2
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.31.5
ChimeraX-uniprot: 2.3
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.3
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.2
ChimeraX-WebServices: 1.1.2
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.1.4
comtypes: 1.1.14
contourpy: 1.1.1
cxservices: 1.2.2
cycler: 0.11.0
Cython: 0.29.33
debugpy: 1.8.0
decorator: 5.1.1
docutils: 0.19
executing: 1.2.0
filelock: 3.9.0
fonttools: 4.42.1
funcparserlib: 1.0.1
glfw: 2.6.2
grako: 3.16.5
h5py: 3.9.0
html2text: 2020.1.16
idna: 3.4
ihm: 0.38
imagecodecs: 2023.7.10
imagesize: 1.4.1
ipykernel: 6.23.2
ipython: 8.14.0
ipython-genutils: 0.2.0
ipywidgets: 8.1.1
jedi: 0.18.2
Jinja2: 3.1.2
jupyter-client: 8.2.0
jupyter-core: 5.3.1
jupyterlab-widgets: 3.0.9
kiwisolver: 1.4.5
line-profiler: 4.0.2
lxml: 4.9.2
lz4: 4.3.2
MarkupSafe: 2.1.3
matplotlib: 3.7.2
matplotlib-inline: 0.1.6
msgpack: 1.0.4
nest-asyncio: 1.5.8
netCDF4: 1.6.2
networkx: 3.1
nibabel: 5.0.1
nptyping: 2.5.0
numexpr: 2.8.6
numpy: 1.25.1
openvr: 1.23.701
packaging: 23.1
ParmEd: 3.4.3
parso: 0.8.3
pep517: 0.13.0
pickleshare: 0.7.5
Pillow: 10.0.0
pip: 23.0
pkginfo: 1.9.6
platformdirs: 3.10.0
prompt-toolkit: 3.0.39
psutil: 5.9.5
pure-eval: 0.2.2
py-cpuinfo: 9.0.0
pycollada: 0.7.2
pydicom: 2.3.0
Pygments: 2.16.1
pynrrd: 1.0.0
PyOpenGL: 3.1.7
PyOpenGL-accelerate: 3.1.7
pyopenxr: 1.0.2801
pyparsing: 3.0.9
pyproject-hooks: 1.0.0
PyQt6: 6.3.1
PyQt6-Qt6: 6.3.2
PyQt6-sip: 13.4.0
PyQt6-WebEngine: 6.3.1
PyQt6-WebEngine-Qt6: 6.3.2
python-dateutil: 2.8.2
pytz: 2023.3.post1
pywin32: 305
pyzmq: 25.1.1
qtconsole: 5.4.3
QtPy: 2.4.0
RandomWords: 0.4.0
requests: 2.31.0
scipy: 1.11.1
setuptools: 67.4.0
sfftk-rw: 0.7.3
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
soupsieve: 2.5
sphinx: 6.1.3
sphinx-autodoc-typehints: 1.22
sphinxcontrib-applehelp: 1.0.7
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 1.0.5
sphinxcontrib-htmlhelp: 2.0.4
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.6
sphinxcontrib-serializinghtml: 1.1.9
stack-data: 0.6.2
superqt: 0.5.0
tables: 3.8.0
tcia-utils: 1.5.1
tifffile: 2023.7.18
tinyarray: 1.2.4
tomli: 2.0.1
tornado: 6.3.3
traitlets: 5.9.0
typing-extensions: 4.8.0
tzdata: 2023.3
urllib3: 2.0.5
wcwidth: 0.2.6
webcolors: 1.12
wheel: 0.38.4
wheel-filename: 1.4.1
widgetsnbextension: 4.0.9
WMI: 1.5.1
Change History (8)
comment:1 by , 2 years ago
| Component: | Unassigned → VR |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Quest VR is not smooth |
comment:2 by , 2 years ago
The RBVIVR access point is a Ubiquiti UniFi6 Lite with a single power-over-ethernet connection which goes to a POE adapter that plugs into wall power and an 8 port switch. The switch is plugged into a wall ethernet port. The Windows 11 machine is plugged into the switch. This is not exactly the preferred configuration Meta describes for AirLink where they describe a home wifi router with the Windows PC plugged directly into the router by ethernet. But it seems quite close. This access point as 1.2 Gbps bandwidth at 5 GHz with channel widths up to 160Hz. The Quest Pro says signal strength is excellent, connected at 5 GHz with 573 Mbps receive and transmit speeds. It looks like that corresponds to 80MHz channel width.
comment:3 by , 2 years ago
The PDB file I was looking at for all this testing was 8gia, 720,000 triangles in its default rendering on opening. Should be no trouble for the graphics card. SteamVR Performance Graph shows rendering in 1.5 ms with 11.1 ms frame time at 90 Hz with Vive Pro using OpenVR. With Quest Pro using OpenVR/SteamVR at 72 Hz using 1.3-1.9 ms rendering out of 13.9 ms per frame. Didn't see any rendering spikes or any dropped frames in performance graph although glitches in headset were as usual every few seconds. Render resolution listed in the Oculus App was 4128 x 2096. Same glitchiness at 90Hz frame rate with 3712 x 1872 render size using 1.1-1.2 ms render time out of 11.1 ms frame time, no dropped frames seen in performance monitor. Same glitches at 72 Hz and reduced resolution (0.7x) 2700x1350 with openxr/oculus. Does not seem to have anything to do with render speed.
These tests were all done with the Quest Pro v57 runtime.
comment:4 by , 2 years ago
Same glitches on cmbruns/pyopenxr_examples github hello_xr.py example which just shows a few cubes.
comment:5 by , 2 years ago
Quest 2 headset, v57 runtime, 72 Hz default graphics settings, same glitches in ChimeraX with 8gia.
comment:6 by , 2 years ago
Tried Beat Saber on Quest 2 using OpenVR/SteamVR. Same glitchiness if I set the hand controllers on a table within the room bounds and move my head side to side they glitch about every 2 seconds. Playing the game was fine and the glitches were not noticeable with all the dynamic elements of the game. The glitches become much more noticeable when everything is static like in ChimeraX.
comment:7 by , 2 years ago
Conclusion so far is it does not seem to be a problem with the specific application, Beat Saber, ChimeraX and hello_xr.py all exhibit the same glitches. It also does not seem to be a problem with the specific headset as the same glitches are on the Quest Pro and Quest 2. It does not seem specific to the computer or graphics card since the same glitches appear on the Windows 10 Quadro P6000 machine and Windows 11 RTX 3070. It could be an issue with the wifi setup. But I saw the same glitches at home on my older wifi 5 (802.11ac) router using the headset in the same room as the router with Windows 10 GTX 1080 Ti computer plugged in by ethernet. It does not look to be at all effected by rendering speed, or video compression level (15 Mbps vs 100 Mbps).
So it looks to me this is a fundamental problem of AirLink and the Quest v57 runtime. It could be that wifi simply is not designed to deliver the uninterrupted realtime data stream with 11 msec frame times. It is also possible it is a tracking problem with the headsets where no frames are dropped but the reported headset position jitters. I don't think that is the case because using the link cable I think reduces the problem greatly.
Next step is to run the tests with the link cable.
comment:8 by , 12 months ago
| Resolution: | → nonchimerax |
|---|---|
| Status: | assigned → closed |
This appeared to be a problem with Meta Quest AirLink.
Next I turned of the wifi on the Windows 11 machine and plugged the ethernet into the switch connected to the RBVIVR wifi router, restarted AirLink, and the glitches were back to one every 2 seconds. This test and the previous ones in the description after I said I turned mirroring to the desktop off were all with mirroring off (ChimeraX camera remembers that setting).