Opened 5 years ago
Closed 5 years ago
#3760 closed defect (fixed)
Startup warning: Unable to load numpy_formathandler accelerator from OpenGL_accelerate
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | 1.2 |
| Component: | Graphics | Version: | |
| Keywords: | Cc: | Eric Pettersen | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: macOS-10.15.6-x86_64-i386-64bit
ChimeraX Version: 1.2.dev202009250242 (2020-09-25 02:42:18 UTC)
Description
Mac ChimeraX started from a shell gives a warning on startup
"Unable to load numpy_formathandler accelerator from OpenGL_accelerate"
This comes from PyOpenGL 3.1.5, OpenGL/arrays/numpymodule.py trying to import numpy_formathandler from OpenGL_accelerate. That module does not exist in PyOpenGL_accelerate 3.1.5 from PyPi on Mac.
Not sure if this degrades PyOpenGL performance.
Log:
UCSF ChimeraX version: 1.2.dev202009250242 (2020-09-25)
© 2016-2020 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> ui tool show Shell
OpenGL version: 4.1 ATI-3.10.16
OpenGL renderer: AMD Radeon Pro Vega 20 OpenGL Engine
OpenGL vendor: ATI Technologies Inc.Hardware:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: MacBookPro15,3
Processor Name: 8-Core Intel Core i9
Processor Speed: 2.4 GHz
Number of Processors: 1
Total Number of Cores: 8
L2 Cache (per Core): 256 KB
L3 Cache: 16 MB
Hyper-Threading Technology: Enabled
Memory: 32 GB
Boot ROM Version: 1037.147.4.0.0 (iBridge: 17.16.16610.0.0,0)
Software:
System Software Overview:
System Version: macOS 10.15.6 (19G2021)
Kernel Version: Darwin 19.6.0
Time since boot: 30 days 17:02
Graphics/Displays:
Intel UHD Graphics 630:
Chipset Model: Intel UHD Graphics 630
Type: GPU
Bus: Built-In
VRAM (Dynamic, Max): 1536 MB
Vendor: Intel
Device ID: 0x3e9b
Revision ID: 0x0002
Automatic Graphics Switching: Supported
gMux Version: 5.0.0
Metal: Supported, feature set macOS GPUFamily2 v1
Radeon Pro Vega 20:
Chipset Model: Radeon Pro Vega 20
Type: GPU
Bus: PCIe
PCIe Lane Width: x8
VRAM (Total): 4 GB
Vendor: AMD (0x1002)
Device ID: 0x69af
Revision ID: 0x00c0
ROM Revision: 113-D2060I-087
VBIOS Version: 113-D20601MA0T-016
Option ROM Version: 113-D20601MA0T-016
EFI Driver Version: 01.01.087
Automatic Graphics Switching: Supported
gMux Version: 5.0.0
Metal: Supported, feature set macOS GPUFamily2 v1
Displays:
Color LCD:
Display Type: Built-In Retina LCD
Resolution: 2880 x 1800 Retina
Framebuffer Depth: 24-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Automatically Adjust Brightness: No
Connection Type: Internal
PyQt version: 5.15.1
Compiled Qt version: 5.15.1
Runtime Qt version: 5.15.1
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
appnope: 0.1.0
Babel: 2.8.0
backcall: 0.2.0
blockdiag: 2.0.1
certifi: 2020.6.20
cftime: 1.2.1
chardet: 3.0.4
ChimeraX-AddH: 2.1.1
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.1
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.8.2
ChimeraX-AtomicLibrary: 1.0
ChimeraX-AtomSearch: 2.0
ChimeraX-AtomSearchLibrary: 1.0
ChimeraX-AxesPlanes: 2.0
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 1.1
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.2
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.0
ChimeraX-ButtonPanel: 1.0
ChimeraX-CageBuilder: 1.0
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.1
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.1
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-CommandLine: 1.1.3
ChimeraX-ConnectStructure: 2.0
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.2.dev202009250242
ChimeraX-CoreFormats: 1.0
ChimeraX-coulombic: 1.0.1
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-DataFormats: 1.0
ChimeraX-Dicom: 1.0
ChimeraX-DistMonitor: 1.1
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.0
ChimeraX-Hbonds: 2.1
ChimeraX-Help: 1.0
ChimeraX-HKCage: 1.0
ChimeraX-IHM: 1.0
ChimeraX-ImageFormats: 1.0
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0
ChimeraX-Label: 1.0
ChimeraX-ListInfo: 1.0
ChimeraX-Log: 1.1.1
ChimeraX-LookingGlass: 1.1
ChimeraX-Map: 1.0.1
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.0
ChimeraX-Markers: 1.0
ChimeraX-Mask: 1.0
ChimeraX-MatchMaker: 1.1
ChimeraX-MDcrds: 2.1
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.0
ChimeraX-mmCIF: 2.2
ChimeraX-MMTF: 2.0
ChimeraX-Modeller: 1.0
ChimeraX-ModelPanel: 1.0
ChimeraX-ModelSeries: 1.0
ChimeraX-Mol2: 2.0
ChimeraX-Morph: 1.0
ChimeraX-MouseModes: 1.0
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0
ChimeraX-OpenCommand: 1.2.1
ChimeraX-PDB: 2.1.1
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.0
ChimeraX-PubChem: 2.0.1
ChimeraX-Read-Pbonds: 1.0
ChimeraX-Registration: 1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-ResidueFit: 1.0
ChimeraX-RestServer: 1.0
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.2
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SeqView: 2.2.1
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0
ChimeraX-Shortcuts: 1.0
ChimeraX-ShowAttr: 1.0
ChimeraX-ShowSequences: 1.0
ChimeraX-SideView: 1.0
ChimeraX-Smiles: 2.0.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.1
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-Struts: 1.0
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.0
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.0
ChimeraX-ToolshedUtils: 1.0
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.3
ChimeraX-uniprot: 2.0
ChimeraX-ViewDockX: 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.3
comtypes: 1.1.7
cxservices: 1.0
cycler: 0.10.0
Cython: 0.29.21
decorator: 4.4.2
distlib: 0.3.1
docutils: 0.16
filelock: 3.0.12
funcparserlib: 0.3.6
grako: 3.16.5
h5py: 2.10.0
html2text: 2020.1.16
idna: 2.10
ihm: 0.17
imagecodecs: 2020.5.30
imagecodecs-lite: 2020.1.31
imagesize: 1.2.0
ipykernel: 5.3.4
ipython: 7.18.1
ipython-genutils: 0.2.0
jedi: 0.17.2
Jinja2: 2.11.2
jupyter-client: 6.1.7
jupyter-core: 4.6.3
kiwisolver: 1.2.0
line-profiler: 2.1.2
lxml: 4.5.2
MarkupSafe: 1.1.1
matplotlib: 3.3.2
msgpack: 1.0.0
netCDF4: 1.5.4
netifaces: 0.10.9
networkx: 2.5
numexpr: 2.7.1
numpy: 1.19.2
numpydoc: 1.1.0
openvr: 1.12.501
packaging: 20.4
parso: 0.7.1
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 7.2.0
pip: 20.2.3
pkginfo: 1.5.0.1
prompt-toolkit: 3.0.7
psutil: 5.7.2
ptyprocess: 0.6.0
pycollada: 0.7.1
pydicom: 2.0.0
Pygments: 2.7.1
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 2.4.7
PyQt5-commercial: 5.15.1
PyQt5-sip: 12.8.1
PyQtWebEngine-commercial: 5.15.1
python-dateutil: 2.8.1
pytz: 2020.1
pyzmq: 19.0.2
qtconsole: 4.7.7
QtPy: 1.9.0
RandomWords: 0.3.0
requests: 2.24.0
scipy: 1.5.2
setuptools: 50.3.0
sfftk-rw: 0.6.6.dev0
six: 1.15.0
snowballstemmer: 2.0.0
sortedcontainers: 2.2.2
Sphinx: 3.2.1
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 2.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 1.0.3
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.4
suds-jurko: 0.6
tables: 3.6.1
tifffile: 2020.9.3
tinyarray: 1.2.3
tornado: 6.0.4
traitlets: 5.0.4
urllib3: 1.25.10
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.34.2
Change History (12)
comment:1 by , 5 years ago
| Component: | Unassigned → Graphics |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Startup warning: Unable to load numpy_formathandler accelerator from OpenGL_accelerate |
comment:2 by , 5 years ago
comment:3 by , 5 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed.
PyOpenGL-accelerate only compiles the numpy_formathandler module if numpy is already installed. But it doesn't list any dependency on numpy. So our pip install ends up installing it before numpy. Fixed by pip installing PyOpenGL-accelerate after numpy.
comment:4 by , 5 years ago
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
On Windows binary wheel for PyOpenGL-accelerate for Python 3.8 is missing numpy_formathandler library. Maybe we can compile from the source package.
Also my fix on Mac and Linux of installing PyOpenGL-accelerate after numpy did not fix the problem because it used the cached compiled PyOpenGL-accelerate. Our builds are not clearing the pip cache.
comment:5 by , 5 years ago
I put in a temporary line in prereqs/pips/Makefile to clear PyOpenGL from the pip cache on the nightly build machines. Remove this line tomorrow after testing that the numpy_formathandler warning is gone.
On Windows may need to add "--no-binary PyOpenGL-accelerate" in prereqs/pips/Makefile.pip to try compiling on Windows. Should test if compile works on windows.
I've update the PyOpenGL bug report about this but don't have high hopes it will be fixed. We should probably abandon PyOpenGL since it is poorly supported and use the Qt OpenGL API.
comment:6 by , 5 years ago
Current macOS daily build (Dec 11) now has the numpy_formathandler library.
follow-up: 8 comment:8 by , 5 years ago
Actually Eric Pettersen said he saw this warning, but I do not see it in the April 1, 2021 daily build and that build has the numpy_formathandler dynamic library in OpenGL_accelerate. But I think the problem still exists on Windows.
comment:9 by , 5 years ago
I saw it in my personal build (once all the startup file/error handling got reworked). It's possible that if I updated some prerequisites it would go away?
follow-up: 10 comment:10 by , 5 years ago
I believe the problem is pip caches packages in some system location so your ChimeraX build uses the cached PyOpenGL_accelerate which is missing the library. If you remove that from the pip cache (I forget the voodoo for that), then make install in prereqs/pips then it will recompile PyOpenGL_accelerate and have the missing library. PyPi PyOpenGL_accelerate does not have macOS or Linux binary wheels, only source code, so it gets compiled when we do pip install. I had to do some gruesome hack to make sure numpy is pip installed first. In prior versions of PyOpenGL_accelerate there were binary wheels for Mac and Linux. Currently there is only a Windows binary wheel that is also missing the numpy_formathandler library so Windows ChimeraX still produces this warning.
comment:11 by , 5 years ago
Made Windows build compile PyOpenGL-accelerate from source instead of using binary wheel so that it gets the numpy_formathandler dynamic library. Worked in my test. Will wait to see that it works in the daily build before closing this ticket.
comment:12 by , 5 years ago
| Resolution: | → fixed |
|---|---|
| Status: | reopened → closed |
Fixed.
Made sure ChimeraX build compiles PyOpenGL-accelerate from source after numpy is installed.
Checked Windows build, has numpy_formathandler and no warning.
There is a PyOpenGL ticket for this problem
https://github.com/mcfletch/pyopengl/issues/46
I wonder if the trouble is because PyOpenGL-accelerate gets pip installed before numpy is pip installed.