Opened 9 months ago

Closed 9 months ago

#16772 closed defect (fixed)

OpenGL on Ubuntu doesn't like the raycasting shader

Reported by: Zach Pearson Owned by: Zach Pearson
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-6.8.0-52-generic-x86_64-with-glibc2.35
ChimeraX Version: 1.10.dev202502031946 (2025-02-03 19:46:17 UTC)
Description
Replace this text with list of actions that caused this problem to occur

Log:
Startup Messages  
---  
note | available bundle cache has not been initialized yet  
  
UCSF ChimeraX version: 1.10.dev202502031946 (2025-02-03)  
© 2016-2025 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open 1.3.6.1.4.1.9328.50.1.83304264089411327530730818890072724533 format
> dicom fromDatabase tcia

Summary of feedback from opening
1.3.6.1.4.1.9328.50.1.83304264089411327530730818890072724533 fetched from tcia  
---  
note | Opened 4 CT (No Description) as #1.1.1, grid size 512,512,236, pixel 0.576,0.576,1.24, shown at step 1, values int16  
  
Images from TCIA may be rotated so that flat planes appear invisible. If the
screen looks black but no error message has been issued, try rotating the
model into view with your mouse.  

> volume projectionMode rays

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.  
  
Link failure (0): b"error: uniform `step_size' declared as type `float' and
type `vec3'\n"  
  
Traceback (most recent call last):  
File "/home/zjp/git/rbvi/ChimeraX/ChimeraX.app/lib/python3.11/site-
packages/chimerax/core/updateloop.py", line 84, in draw_new_frame  
view.draw(check_for_changes = False)  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/view.py", line 188,
in draw  
self._draw_scene(camera, drawings)  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/view.py", line 266,
in _draw_scene  
draw_transparent(r, transparent_drawings)  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/drawing.py", line
1564, in draw_transparent  
r.draw_transparent(  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/opengl.py", line
1312, in draw_transparent  
draw()  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/drawing.py", line
1566, in <lambda>  
lambda: _draw_multiple(drawings, r, Drawing.TRANSPARENT_DRAW_PASS))  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/drawing.py", line
1572, in _draw_multiple  
d.draw(renderer, draw_pass)  
File "/home/zjp/git/rbvi/ChimeraX/ChimeraX.app/lib/python3.11/site-
packages/chimerax/map/image3d.py", line 944, in draw  
self._draw_planes(renderer, draw_pass, dtransp, drawing)  
File "/home/zjp/git/rbvi/ChimeraX/ChimeraX.app/lib/python3.11/site-
packages/chimerax/map/image3d.py", line 963, in _draw_planes  
drawing.draw(r, draw_pass)  
File "/home/zjp/git/rbvi/ChimeraX/ChimeraX.app/lib/python3.11/site-
packages/chimerax/map/image3d.py", line 1281, in draw  
Drawing.draw(self, renderer, draw_pass)  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/drawing.py", line
784, in draw  
self.draw_self(renderer, draw_pass)  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/drawing.py", line
795, in draw_self  
self._draw_geometry(renderer, transparent_only = any_opaque)  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/drawing.py", line
822, in _draw_geometry  
shader = r.shader(sopt)  
^^^^^^^^^^^^^^  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/opengl.py", line
703, in shader  
p = self._opengl_shader(options)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/opengl.py", line
805, in _opengl_shader  
p = Shader(capabilities = capabilities, max_shadows =
self.multishadow.max_multishadows())  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/opengl.py", line
2886, in __init__  
self.program_id = self.compile_shader(vertex_shader_path,
fragment_shader_path,  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/opengl.py", line
2950, in compile_shader  
prog_id = self.compile_program(vs, fs)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File "/home/zjp/git/rbvi/ChimeraX/src/bundles/graphics/src/opengl.py", line
2978, in compile_program  
raise OpenGLError( 'Link failure (%s): %s'  
chimerax.graphics.opengl.OpenGLError: Link failure (0): b"error: uniform
`step_size' declared as type `float' and type `vec3'\n"  
  




OpenGL version: 4.6 (Core Profile) Mesa 23.2.1-1ubuntu3.1~22.04.3
OpenGL renderer: AMD Radeon RX 480 Graphics (polaris10, LLVM 15.0.7, DRM 3.57, 6.8.0-52-generic)
OpenGL vendor: AMD

Python: 3.11.4
Locale: en_US.UTF-8
Qt version: PyQt6 6.7.1, Qt 6.7.1
Qt runtime version: 6.7.3
Qt platform: xcb

XDG_SESSION_TYPE=wayland
DESKTOP_SESSION=ubuntu
XDG_SESSION_DESKTOP=ubuntu
XDG_CURRENT_DESKTOP=ubuntu:GNOME
WAYLAND_DISPLAY=wayland-0
GNOME_SETUP_DISPLAY=:1
DISPLAY=:0
Manufacturer: Gigabyte Technology Co., Ltd.
Model: To be filled by O.E.M.
OS: Ubuntu 22.04
Architecture: 64bit ELF
Virtual Machine: none
CPU: 8 Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
Cache Size: 8192 KB
Memory:
	               total        used        free      shared  buff/cache   available
	Mem:            60Gi       2.6Gi        54Gi       107Mi       3.1Gi        57Gi
	Swap:          7.5Gi          0B       7.5Gi

Graphics:
	01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev c7)	
	Subsystem: ASUSTeK Computer Inc. Radeon RX 480 [1043:04a8]	
	Kernel driver in use: amdgpu

Installed Packages:
    alabaster: 1.0.0
    anyio: 4.8.0
    appdirs: 1.4.4
    asttokens: 3.0.0
    auditwheel: 6.2.0
    babel: 2.17.0
    beautifulsoup4: 4.12.3
    blockdiag: 3.0.0
    blosc2: 3.0.0
    build: 1.2.1
    certifi: 2025.1.31
    cftime: 1.6.4.post1
    charset-normalizer: 3.4.1
    ChimeraX-AddCharge: 1.5.18
    ChimeraX-AddH: 2.2.6
    ChimeraX-AlignmentAlgorithms: 2.0.2
    ChimeraX-AlignmentHdrs: 3.6
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.18.1
    ChimeraX-AlphaFold: 1.0.1
    ChimeraX-AltlocExplorer: 1.1.2
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Aniso: 1.0
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.60.2
    ChimeraX-AtomicLibrary: 14.1.13
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.4
    ChimeraX-BasicActions: 1.1.2
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 3.0.0
    ChimeraX-BondRot: 2.0.4
    ChimeraX-BugReporter: 1.0.2
    ChimeraX-BuildStructure: 2.13.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.4.0
    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.3
    ChimeraX-ColorActions: 1.0.5
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.8
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.10.dev202502031946
    ChimeraX-CoreFormats: 1.2
    ChimeraX-coulombic: 1.4.4
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.3
    ChimeraX-Dicom: 1.2.7
    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.4.1
    ChimeraX-Hbonds: 2.5
    ChimeraX-Help: 1.3
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.3
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-IUPAC: 1.0
    ChimeraX-KVFinder: 1.5.1
    ChimeraX-Label: 1.1.14
    ChimeraX-LinuxSupport: 1.0.1
    ChimeraX-ListInfo: 1.2.2
    ChimeraX-Log: 1.2
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.9.1
    ChimeraX-Map: 1.3
    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.7
    ChimeraX-MCopy: 1.0
    ChimeraX-MDcrds: 2.7.2
    ChimeraX-MedicalToolbar: 1.1
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.14.2
    ChimeraX-MMTF: 2.2
    ChimeraX-ModelArchive: 1.0
    ChimeraX-Modeller: 1.5.18
    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-MutationScores: 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.14
    ChimeraX-OrthoPick: 1.0.1
    ChimeraX-PDB: 2.7.7
    ChimeraX-PDBBio: 1.0.1
    ChimeraX-PDBLibrary: 1.0.4
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1.2
    ChimeraX-ProfileGrids: 1.0.1
    ChimeraX-PubChem: 2.2
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.2
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.6.3
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.3.1
    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.3
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0.1
    ChimeraX-Segmentations: 3.5.7
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.15
    ChimeraX-Shape: 1.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.2.0
    ChimeraX-ShowSequences: 1.0.3
    ChimeraX-SideView: 1.0.1
    ChimeraX-SimilarStructures: 1.0.1
    ChimeraX-Smiles: 2.1.2
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.19.1
    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.1
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-TaskManager: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.2.3
    ChimeraX-ToolshedUtils: 1.2.4
    ChimeraX-Topography: 1.0
    ChimeraX-ToQuest: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.43
    ChimeraX-Umap: 1.0
    ChimeraX-uniprot: 2.3.1
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.4.4
    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.3.1
    cxservices: 1.2.3
    cycler: 0.12.1
    Cython: 3.0.10
    debugpy: 1.8.12
    decorator: 5.1.1
    distro: 1.9.0
    docutils: 0.21.2
    executing: 2.2.0
    filelock: 3.15.4
    fonttools: 4.55.8
    funcparserlib: 2.0.0a0
    glfw: 2.8.0
    grako: 3.16.5
    h11: 0.14.0
    h5py: 3.12.1
    html2text: 2024.2.26
    httpcore: 1.0.7
    httpx: 0.28.1
    idna: 3.10
    ihm: 1.3
    imagecodecs: 2024.6.1
    imagesize: 1.4.1
    ipykernel: 6.29.5
    ipython: 8.26.0
    ipywidgets: 8.1.5
    jedi: 0.19.1
    Jinja2: 3.1.5
    jupyter_client: 8.6.2
    jupyter_core: 5.7.2
    jupyterlab_widgets: 3.0.13
    kiwisolver: 1.4.8
    line_profiler: 4.1.3
    lxml: 5.2.2
    lz4: 4.3.3
    MarkupSafe: 3.0.2
    matplotlib: 3.9.2
    matplotlib-inline: 0.1.7
    msgpack: 1.0.8
    ndindex: 1.9.2
    nest-asyncio: 1.6.0
    netCDF4: 1.6.5
    networkx: 3.3
    nibabel: 5.2.0
    nptyping: 2.5.0
    numexpr: 2.10.2
    numpy: 1.26.4
    OpenMM: 8.2.0
    openvr: 1.26.701
    packaging: 23.2
    ParmEd: 4.2.2
    parso: 0.8.4
    pep517: 0.13.1
    pexpect: 4.9.0
    pickleshare: 0.7.5
    pillow: 10.4.0
    pip: 24.2
    pkginfo: 1.11.1
    platformdirs: 4.3.6
    prompt_toolkit: 3.0.50
    psutil: 6.0.0
    ptyprocess: 0.7.0
    pure_eval: 0.2.3
    py-cpuinfo: 9.0.0
    pycollada: 0.8
    pydicom: 2.4.4
    pyelftools: 0.31
    Pygments: 2.18.0
    pynmrstar: 3.3.5
    pynrrd: 1.0.0
    PyOpenGL: 3.1.7
    PyOpenGL-accelerate: 3.1.7
    pyopenxr: 1.0.3401
    pyparsing: 3.2.1
    pyproject_hooks: 1.2.0
    PyQt6: 6.7.1
    PyQt6-Qt6: 6.7.3
    PyQt6-WebEngine: 6.7.0
    PyQt6-WebEngine-Qt6: 6.7.3
    PyQt6-WebEngineSubwheel-Qt6: 6.7.3
    PyQt6_sip: 13.8.0
    python-dateutil: 2.9.0.post0
    pytz: 2025.1
    pyzmq: 26.2.1
    qtconsole: 5.5.2
    QtPy: 2.4.2
    qtshim: 1.1
    RandomWords: 0.4.0
    requests: 2.32.3
    scipy: 1.14.0
    setuptools: 72.1.0
    sfftk-rw: 0.8.1
    six: 1.16.0
    sniffio: 1.3.1
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    soupsieve: 2.6
    Sphinx: 8.0.2
    sphinx-autodoc-typehints: 2.2.3
    sphinxcontrib-applehelp: 2.0.0
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 2.0.0
    sphinxcontrib-htmlhelp: 2.1.0
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 2.0.0
    sphinxcontrib-serializinghtml: 2.0.0
    stack-data: 0.6.3
    superqt: 0.6.3
    tables: 3.10.2
    tcia_utils: 1.5.1
    tifffile: 2024.7.24
    tinyarray: 1.2.4
    tornado: 6.4.2
    traitlets: 5.14.3
    typing_extensions: 4.12.2
    tzdata: 2025.1
    urllib3: 2.3.0
    wcwidth: 0.2.13
    webcolors: 24.6.0
    wheel: 0.43.0
    wheel-filename: 1.4.1
    widgetsnbextension: 4.0.13

Change History (2)

comment:1 by Zach Pearson, 9 months ago

Component: UnassignedGraphics
Owner: set to Zach Pearson
Platform: all
Project: ChimeraX
Reporter: changed from chimerax-bug-report@… to Zach Pearson
Status: newassigned
Summary: ChimeraX bug report submissionOpenGL on Ubuntu doesn't like the raycasting shader

comment:2 by Zach Pearson, 9 months ago

Resolution: fixed
Status: assignedclosed

Fixed in this commit. As that commit's message reads: Some OpenGL implementations are stricter than others it seems. On my Mac, the previous shader happily compiles. On my Ubuntu machine, GL complains that the same uniform has a different data type in the two shaders.

Note: See TracTickets for help on using tickets.