Opened 15 months ago

Last modified 15 months ago

#15610 assigned defect

glTexImage3D: out of memory

Reported by: chimerax-bug-report@… Owned by: Utz Ermel
Priority: normal Milestone:
Component: Volume Data 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-5.4.0-40-generic-x86_64-with-glibc2.31
ChimeraX Version: 1.6.1 (2023-05-09 17:57:07 UTC)
Description
(Describe the actions that caused this problem to occur here)

Log:
Startup Messages  
---  
warning | Replacing fetcher for 'pdb_nmr' and format NMRSTAR from NMRSTAR
bundle with that from NMRSTAR bundle  
  
UCSF ChimeraX version: 1.6.1 (2023-05-09)  
© 2016-2023 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> artiax start

Using preset: ArtiaX / Artiax Default  
Preset expands to these ChimeraX commands:

    
    
    set bgColor black
    lighting depthCue false
    camera ortho

  
Opened TS_01.mrc as #1.1.1, grid size 2048,2048,600, pixel 4.96,4.96,4.96,
shown at level 0.000172, step 1, values float32  

> artiax tomo #1.1.1 sliceDirection 0,0,1

> artiax view xy

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 = 1285,  
description = b'out of memory',  
baseOperation = glTexImage3D,  
pyArgs = (  
GL_TEXTURE_3D,  
0,  
GL_R32F,  
2048,  
2048,  
600,  
0,  
GL_RED,  
GL_FLOAT,  
array([[[ 3.89775960e-05, 4.19147582e-05, 3.73517032e-05, ...,  
2.63400252e-05, 2.67357627e-05, 3.238089...,  
),  
cArgs = (  
GL_TEXTURE_3D,  
0,  
GL_R32F,  
2048,  
2048,  
600,  
0,  
GL_RED,  
GL_FLOAT,  
array([[[ 3.89775960e-05, 4.19147582e-05, 3.73517032e-05, ...,  
2.63400252e-05, 2.67357627e-05, 3.238089...,  
),  
cArguments = (  
GL_TEXTURE_3D,  
0,  
GL_R32F,  
2048,  
2048,  
600,  
0,  
GL_RED,  
GL_FLOAT,  
array([[[ 3.89775960e-05, 4.19147582e-05, 3.73517032e-05, ...,  
2.63400252e-05, 2.67357627e-05, 3.238089...,  
)  
)  
  
Traceback (most recent call last):  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/core/updateloop.py", line 73, in draw_new_frame  
view.draw(check_for_changes = False)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 177, in draw  
self._draw_scene(camera, drawings)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 254, in _draw_scene  
draw_transparent(r, transparent_drawings)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1547, in draw_transparent  
r.draw_transparent(  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 1252, in draw_transparent  
draw()  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1549, in <lambda>  
lambda: _draw_multiple(drawings, r, Drawing.TRANSPARENT_DRAW_PASS))  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1555, in _draw_multiple  
d.draw(renderer, draw_pass)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/map/image3d.py", line 783, in draw  
pd = self._update_planes(renderer)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/map/image3d.py", line 548, in _update_planes  
pd = self._update_3d_texture_planes(view_dir)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/map/image3d.py", line 600, in _update_3d_texture_planes  
pd = self._texture_3d_planes()  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/map/image3d.py", line 610, in _texture_3d_planes  
pd = Texture3dPlanes(self)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/map/image3d.py", line 1147, in __init__  
self._fill_textures()  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/map/image3d.py", line 1243, in _fill_textures  
t.reload_texture(td, now = True)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 3073, in reload_texture  
self.fill_opengl_texture()  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 3083, in fill_opengl_texture  
self.initialize_texture(size, format, iformat, tdtype, ncomp, data)  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 2969, in initialize_texture  
GL.glTexImage3D(gl_target, 0, iformat, size[0], size[1], size[2],  
File "src/latebind.pyx", line 39, in
OpenGL_accelerate.latebind.LateBind.__call__  
File "src/wrapper.pyx", line 318, in
OpenGL_accelerate.wrapper.Wrapper.__call__  
File "src/wrapper.pyx", line 311, in
OpenGL_accelerate.wrapper.Wrapper.__call__  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/OpenGL/platform/baseplatform.py", line 415, in __call__  
return self( *args, **named )  
File "src/errorchecker.pyx", line 58, in
OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError  
OpenGL.error.GLError: GLError(  
err = 1285,  
description = b'out of memory',  
baseOperation = glTexImage3D,  
pyArgs = (  
GL_TEXTURE_3D,  
0,  
GL_R32F,  
2048,  
2048,  
600,  
0,  
GL_RED,  
GL_FLOAT,  
array([[[ 3.89775960e-05, 4.19147582e-05, 3.73517032e-05, ...,  
2.63400252e-05, 2.67357627e-05, 3.238089...,  
),  
cArgs = (  
GL_TEXTURE_3D,  
0,  
GL_R32F,  
2048,  
2048,  
600,  
0,  
GL_RED,  
GL_FLOAT,  
array([[[ 3.89775960e-05, 4.19147582e-05, 3.73517032e-05, ...,  
2.63400252e-05, 2.67357627e-05, 3.238089...,  
),  
cArguments = (  
GL_TEXTURE_3D,  
0,  
GL_R32F,  
2048,  
2048,  
600,  
0,  
GL_RED,  
GL_FLOAT,  
array([[[ 3.89775960e-05, 4.19147582e-05, 3.73517032e-05, ...,  
2.63400252e-05, 2.67357627e-05, 3.238089...,  
)  
)  
  
Exception ignored in: <function Drawing.__del__ at 0x7f6026063160>  
Traceback (most recent call last):  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1205, in __del__  
self.delete()  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1225, in delete  
raise RuntimeError("Don't have opengl context needed to delete texture from
drawing '%s' because drawing was never drawn" % self.name)  
RuntimeError: Don't have opengl context needed to delete texture from drawing
'Image3D 3d texture planes' because drawing was never drawn  
Exception ignored in: <function Texture.__del__ at 0x7f6022a734c0>  
Traceback (most recent call last):  
File "/usr/lib/ucsf-chimerax/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 3034, in __del__  
raise OpenGLError('OpenGL texture was not deleted before graphics.Texture
destroyed')  
chimerax.graphics.opengl.OpenGLError: OpenGL texture was not deleted before
graphics.Texture destroyed  




OpenGL version: 4.5 (Core Profile) Mesa 21.2.6
OpenGL renderer: llvmpipe (LLVM 12.0.0, 256 bits)
OpenGL vendor: Mesa/X.org

Python: 3.9.11
Locale: en_US.UTF-8
Qt version: PyQt6 6.4.2, Qt 6.4.2
Qt runtime version: 6.4.3
Qt platform: xcb

XDG_SESSION_TYPE=x11
DESKTOP_SESSION=xfce
XDG_SESSION_DESKTOP=
XDG_CURRENT_DESKTOP=XFCE
DISPLAY=:11.0
Manufacturer: RDO
Model: OpenStack Compute
OS: Ubuntu 20.04 Focal Fossa
Architecture: 64bit ELF
Virtual Machine: vm-other
CPU: 30 AMD EPYC 7452 32-Core Processor
Cache Size: 512 KB
Memory:
	              total        used        free      shared  buff/cache   available
	Mem:           98Gi        20Gi        53Gi       246Mi        24Gi        76Gi
	Swap:            0B          0B          0B

Graphics:
	00:01.0 VGA compatible controller [0300]: Cirrus Logic GD 5446 [1013:00b8]	
	Subsystem: Red Hat, Inc. QEMU Virtual Machine [1af4:1100]	
	Kernel modules: cirrusfb

Installed Packages:
    alabaster: 0.7.13
    appdirs: 1.4.4
    asttokens: 2.2.1
    Babel: 2.12.1
    backcall: 0.2.0
    beautifulsoup4: 4.11.2
    blockdiag: 3.0.0
    build: 0.10.0
    certifi: 2023.5.7
    cftime: 1.6.2
    charset-normalizer: 3.1.0
    ChimeraX-AddCharge: 1.5.9.1
    ChimeraX-AddH: 2.2.5
    ChimeraX-AlignmentAlgorithms: 2.0.1
    ChimeraX-AlignmentHdrs: 3.3.1
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.9.3
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.0.3
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.1
    ChimeraX-ArtiaX: 0.3
    ChimeraX-Atomic: 1.43.10
    ChimeraX-AtomicLibrary: 10.0.6
    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.1
    ChimeraX-BugReporter: 1.0.1
    ChimeraX-BuildStructure: 2.8
    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.2
    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.3
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.6.1
    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.1
    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.1
    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-Label: 1.1.7
    ChimeraX-LinuxSupport: 1.0.1
    ChimeraX-ListInfo: 1.1.1
    ChimeraX-Log: 1.1.5
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.8.2
    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.0.12
    ChimeraX-MDcrds: 2.6
    ChimeraX-MedicalToolbar: 1.0.2
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.12
    ChimeraX-MMTF: 2.2
    ChimeraX-Modeller: 1.5.9
    ChimeraX-ModelPanel: 1.3.7
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0
    ChimeraX-Mole: 1.0
    ChimeraX-Morph: 1.0.2
    ChimeraX-MouseModes: 1.2
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nifti: 1.0
    ChimeraX-NRRD: 1.0
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.10.1
    ChimeraX-PDB: 2.7.2
    ChimeraX-PDBBio: 1.0
    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.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.1
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 3.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.8.3
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.1.1
    ChimeraX-ShowSequences: 1.0.1
    ChimeraX-SideView: 1.0.1
    ChimeraX-Smiles: 2.1
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.10.3
    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.1
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1.2
    ChimeraX-ToolshedUtils: 1.2.1
    ChimeraX-Topography: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.28.4
    ChimeraX-uniprot: 2.2.2
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.2
    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.1
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.6
    comm: 0.1.3
    contourpy: 1.0.7
    cxservices: 1.2.2
    cycler: 0.11.0
    Cython: 0.29.33
    debugpy: 1.6.7
    decorator: 5.1.1
    distro: 1.7.0
    docutils: 0.19
    executing: 1.2.0
    filelock: 3.9.0
    fonttools: 4.39.3
    funcparserlib: 1.0.1
    geomdl: 5.3.1
    grako: 3.16.5
    h5py: 3.8.0
    html2text: 2020.1.16
    idna: 3.4
    ihm: 0.35
    imagecodecs: 2022.9.26
    imagesize: 1.4.1
    importlib-metadata: 6.6.0
    ipykernel: 6.21.1
    ipython: 8.10.0
    ipython-genutils: 0.2.0
    ipywidgets: 8.0.6
    jedi: 0.18.2
    Jinja2: 3.1.2
    jupyter-client: 8.0.2
    jupyter-core: 5.3.0
    jupyterlab-widgets: 3.0.7
    kiwisolver: 1.4.4
    line-profiler: 4.0.2
    lxml: 4.9.2
    lz4: 4.3.2
    MarkupSafe: 2.1.2
    matplotlib: 3.6.3
    matplotlib-inline: 0.1.6
    msgpack: 1.0.4
    nest-asyncio: 1.5.6
    netCDF4: 1.6.2
    networkx: 2.8.8
    nibabel: 5.0.1
    nptyping: 2.5.0
    numexpr: 2.8.4
    numpy: 1.23.5
    openvr: 1.23.701
    packaging: 23.1
    pandas: 2.2.2
    ParmEd: 3.4.3
    parso: 0.8.3
    pep517: 0.13.0
    pexpect: 4.8.0
    pickleshare: 0.7.5
    Pillow: 9.3.0
    pip: 23.0
    pkginfo: 1.9.6
    platformdirs: 3.5.0
    prompt-toolkit: 3.0.38
    psutil: 5.9.4
    ptyprocess: 0.7.0
    pure-eval: 0.2.2
    pyarrow: 16.1.0
    pycollada: 0.7.2
    pydicom: 2.3.0
    Pygments: 2.14.0
    pynrrd: 1.0.0
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 3.0.9
    pyproject-hooks: 1.0.0
    PyQt6-commercial: 6.4.2
    PyQt6-Qt6: 6.4.3
    PyQt6-sip: 13.4.1
    PyQt6-WebEngine-commercial: 6.4.0
    PyQt6-WebEngine-Qt6: 6.4.3
    python-dateutil: 2.8.2
    pytz: 2023.3
    pyzmq: 25.0.2
    qtconsole: 5.4.0
    QtPy: 2.3.1
    RandomWords: 0.4.0
    requests: 2.28.2
    scipy: 1.9.3
    setuptools: 67.4.0
    sfftk-rw: 0.7.3
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    soupsieve: 2.4.1
    sphinx: 6.1.3
    sphinx-autodoc-typehints: 1.22
    sphinxcontrib-applehelp: 1.0.4
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 2.0.1
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.5
    stack-data: 0.6.2
    starfile: 0.5.8
    superqt: 0.6.7
    tables: 3.7.0
    tcia-utils: 1.2.0
    tifffile: 2022.10.10
    tinyarray: 1.2.4
    tomli: 2.0.1
    tornado: 6.3.1
    traitlets: 5.9.0
    typing-extensions: 4.5.0
    tzdata: 2023.3
    urllib3: 1.26.15
    wcwidth: 0.2.6
    webcolors: 1.12
    wheel: 0.38.4
    wheel-filename: 1.4.1
    widgetsnbextension: 4.0.7
    zipp: 3.15.0

Change History (2)

comment:1 by Eric Pettersen, 15 months ago

Component: UnassignedVolume Data
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionglTexImage3D: out of memory

Possibly should be component "Third Party" and assigned to "artiax" instead...

comment:2 by Tom Goddard, 15 months ago

Cc: Tom Goddard added
Owner: changed from Tom Goddard to Utz Ermel

ArtiaX is trying volume rendering of a size 2048,2048,600 tomogram that would require about 10 Gbytes of graphics memory (4 bytes per voxel) and gets an OpenGL out of memory error. This is use Mesa software rendering. Even if Mesa allowed allocating that much memory the rendering speed would probably be less than 1 frame per second.

Since tomograms are often large ArtiaX should use some size limit and use step 2 if the size limit is exceeded.

Note: See TracTickets for help on using tickets.