Opened 3 years ago
Closed 3 years ago
#7237 closed defect (fixed)
colormapOnGpu shader error
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Graphics | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-5.4.0-120-generic-x86_64-with-glibc2.31
ChimeraX Version: 1.4 (2022-06-03 23:39:42 UTC)
Description
Setting a volume's colorMode to a non-transparent type (l8/12/16 or rgb8/12/16) while colormapOnGpu is 'true' and style is 'image' causes an OpenGL error. This happens in both ChimeraX 1.3 and ChimeraX 1.4, on Ubuntu 20.04 (NVIDIA Graphics) and on MacOS 11.6.7 (Intel Iris Plus Graphics). It does not occur with colorModes including a transparency parameter.
To reproduce:
Case 1 (colormapOnGpu before colorMode, crashes):
volume new zeros size 100
volume #1 style image imageMode "tilted slab"
volume #1 colormapOnGpu true
volume #1 colorMode l8
Case 2 (colorMode before colormapOnGpu, crashes):
volume new zeros size 100
volume #1 style image imageMode "tilted slab"
volume #1 colorMode l8
volume #1 colormapOnGpu true
Case 3 (colorMode before colormapOnGpu, does not crash):
volume new zeros size 100
volume #1 style image imageMode "tilted slab"
volume #1 colorMode la8
volume #1 colormapOnGpu true
Log:
> ui tool show Toolbar
UCSF ChimeraX version: 1.4 (2022-06-03)
© 2016-2022 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> volume new zeros size 100
Opened zeros as #1, grid size 100,100,100, pixel 1, shown at step 1, values
float32
> volume #1 style image imageMode "tilted slab"
> volume #1 colorMode l8
> volume #1 colormapOnGpu true
An OpenGL graphics error occurred. Most often this is caused by a graphics
driver bug. The only way to fix such bugs is to update your graphics driver.
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.
Shader does not have uniform variable "colormap"
shader capabilities SHADER_COLORMAP
Traceback (most recent call last):
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/core/updateloop.py", line 73, in draw_new_frame
view.draw(check_for_changes = False)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 165, in draw
self._draw_scene(camera, drawings)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 203, in _draw_scene
shadow, multishadow = self._compute_shadowmaps(opaque_drawings,
transparent_drawings, camera)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/view.py", line 597, in _compute_shadowmaps
multishadow_enabled = r.multishadow.use_multishadow_map(shadow_drawings)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 1595, in use_multishadow_map
draw_depth(r, sdrawings, opaque_only = not mat.transparent_cast_shadows)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1550, in draw_depth
draw_opaque(r, drawings)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1526, in draw_opaque
_draw_multiple(drawings, renderer, Drawing.OPAQUE_DRAW_PASS)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 1539, in _draw_multiple
d.draw(renderer, draw_pass)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/map/image3d.py", line 791, in draw
self._draw_planes(renderer, draw_pass, dtransp, pd)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/map/image3d.py", line 811, in _draw_planes
drawing.draw(r, draw_pass)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 752, in draw
self.draw_self(renderer, draw_pass)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 759, in draw_self
self._draw_geometry(renderer, opaque_only = any_transp)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/drawing.py", line 790, in _draw_geometry
shader = r.shader(sopt)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 648, in shader
p = self._opengl_shader(options)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 751, in _opengl_shader
self._use_shader(p)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 686, in _use_shader
shader.set_integer("colormap", self._colormap_texture_unit)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 2755, in set_integer
GL.glUniform1i(self.uniform_id(name), value)
File
"/home/uermel/chimerax_plugin/chimerax_1.4/chimerax-1.4/lib/python3.9/site-
packages/chimerax/graphics/opengl.py", line 2786, in uniform_id
raise OpenGLError('Shader does not have uniform variable "%s"\n shader
capabilities %s'
chimerax.graphics.opengl.OpenGLError: Shader does not have uniform variable
"colormap"
shader capabilities SHADER_COLORMAP
OpenGL version: 3.3.0 NVIDIA 470.129.06
OpenGL renderer: Quadro P5000/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Python: 3.9.11
Locale: en_US.UTF-8
Qt version: PyQt6 6.3.0, Qt 6.3.0
Qt runtime version: 6.3.0
Qt platform: xcb
XDG_SESSION_TYPE=x11
DESKTOP_SESSION=gnome
XDG_SESSION_DESKTOP=gnome
XDG_CURRENT_DESKTOP=GNOME
DISPLAY=:1
Manufacturer: Dell Inc.
Model: Precision 3630 Tower
OS: Ubuntu 20.04 focal
Architecture: 64bit ELF
Virtual Machine: none
CPU: 8 Intel(R) Xeon(R) E-2174G CPU @ 3.80GHz
Cache Size: 8192 KB
Memory:
total used free shared buff/cache available
Mem: 62Gi 37Gi 11Gi 1.3Gi 14Gi 23Gi
Swap: 0B 0B 0B
Graphics:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P5000] [10de:1bb0] (rev a1)
Subsystem: Dell GP104GL [Quadro P5000] [1028:11b2]
Kernel driver in use: nvidia
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
ArtiaX: 0.1
Babel: 2.10.1
backcall: 0.2.0
blockdiag: 3.0.0
certifi: 2022.5.18.1
cftime: 1.6.0
charset-normalizer: 2.0.12
ChimeraX-AddCharge: 1.2.3
ChimeraX-AddH: 2.1.11
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2.1
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.4.3
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.2
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.39.1
ChimeraX-AtomicLibrary: 7.0
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.1
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.1
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.7
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.4
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.1
ChimeraX-CommandLine: 1.2.3
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.4
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.1
ChimeraX-DistMonitor: 1.1.5
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0
ChimeraX-FunctionKey: 1.0
ChimeraX-Geometry: 1.2
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.1
ChimeraX-LinuxSupport: 1.0
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.5
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.6
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.1
ChimeraX-mmCIF: 2.7
ChimeraX-MMTF: 2.1
ChimeraX-Modeller: 1.5.5
ChimeraX-ModelPanel: 1.3.2
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.9
ChimeraX-PDB: 2.6.6
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.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.1
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.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.8
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.0.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.1.1
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1.1
ChimeraX-ToolshedUtils: 1.2.1
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.18.3
ChimeraX-uniprot: 2.2
ChimeraX-UnitCell: 1.0
ChimeraX-ViewDockX: 1.1.2
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.1.0
ChimeraX-Zone: 1.0
colorama: 0.4.4
cxservices: 1.2
cycler: 0.11.0
Cython: 0.29.26
debugpy: 1.6.0
decorator: 5.1.1
distro: 1.6.0
docutils: 0.17.1
entrypoints: 0.4
filelock: 3.4.2
fonttools: 4.33.3
funcparserlib: 1.0.0
grako: 3.16.5
h5py: 3.7.0
html2text: 2020.1.16
idna: 3.3
ihm: 0.27
imagecodecs: 2021.11.20
imagesize: 1.3.0
ipykernel: 6.6.1
ipython: 7.31.1
ipython-genutils: 0.2.0
jedi: 0.18.1
Jinja2: 3.0.3
jupyter-client: 7.1.0
jupyter-core: 4.10.0
kiwisolver: 1.4.2
line-profiler: 3.4.0
lxml: 4.7.1
lz4: 3.1.10
MarkupSafe: 2.1.1
matplotlib: 3.5.1
matplotlib-inline: 0.1.3
msgpack: 1.0.3
nest-asyncio: 1.5.5
netCDF4: 1.5.8
networkx: 2.6.3
numexpr: 2.8.1
numpy: 1.22.1
openvr: 1.16.802
packaging: 21.3
pandas: 1.4.2
ParmEd: 3.4.3
parso: 0.8.3
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 9.0.1
pip: 21.3.1
pkginfo: 1.8.2
prompt-toolkit: 3.0.29
psutil: 5.9.0
ptyprocess: 0.7.0
pycollada: 0.7.2
pydicom: 2.2.2
Pygments: 2.11.2
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.9
PyQt6-commercial: 6.3.0
PyQt6-Qt6: 6.3.0
PyQt6-sip: 13.3.1
PyQt6-WebEngine-commercial: 6.3.0
PyQt6-WebEngine-Qt6: 6.3.0
python-dateutil: 2.8.2
pytz: 2022.1
pyzmq: 23.1.0
qtconsole: 5.3.0
QtPy: 2.1.0
RandomWords: 0.3.0
requests: 2.27.1
scipy: 1.7.3
setuptools: 59.8.0
sfftk-rw: 0.7.2
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
Sphinx: 4.3.2
sphinx-autodoc-typehints: 1.15.2
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 3.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
starfile: 0.4.11
suds-community: 1.0.0
superqt: 0.3.2
tables: 3.7.0
tifffile: 2021.11.2
tinyarray: 1.2.4
tornado: 6.1
traitlets: 5.1.1
typing-extensions: 4.2.0
urllib3: 1.26.9
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.37.1
wheel-filename: 1.3.0
Change History (2)
comment:1 by , 3 years ago
| Component: | Unassigned → Graphics |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → colormapOnGpu shader error |
comment:2 by , 3 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed in tonight's daily builds (dated July 8).
The error was from computing the shadows when the volume rendering is changed to opaque. When the rendering is transparent, ChimeraX does not cast shadows for transparent models so the shadow calculation was not done. You can work around the problem in your current ChimeraX by switching to simple lighting (command "light simple") which casts no shadows.
Thanks for the detailed steps to produce the bug! It made my work so easy.
Note:
See TracTickets
for help on using tickets.
Reported by Utz Ermel