Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenGL error loading datasets that previously opened without issue #1291

Open
a-savoy opened this issue Jul 1, 2024 · 3 comments
Open

OpenGL error loading datasets that previously opened without issue #1291

a-savoy opened this issue Jul 1, 2024 · 3 comments

Comments

@a-savoy
Copy link

a-savoy commented Jul 1, 2024

Last Friday I loaded a KS4-sorted dataset into Phy2 within a dedicated conda environment without any trouble. Today, I can neither load that dataset nor any other due to the error below. I have changed nothing in the environment, data, or on my computer. My best guess is that there was an automatic update to my system, but I'm running Ubuntu 22.04.2 without automatic updates activated. So this is a mystery to me.

$ phy template-gui params.py
12:10:19.577 [W] model:625 Unreferenced clusters found in spike_clusters (generally not a problem)
12:10:21.100 [W] model:667 Skipping spike waveforms that do not exist, they will be extracted on the fly from the raw data as needed.
WebEngineContext used before QtWebEngine::initialize() or OpenGL context creation failed.
QGLXContext: Failed to create dummy context
0.00s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.
Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlagsQSurfaceFormat::FormatOption(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
Aborted (core dumped)

Here's the debug report:

$ phy template-gui params.py --debug
12:21:05.686 [D] init:68 Start capturing exceptions.
12:21:06.140 [D] model:619 Loading spike clusters.
12:21:06.334 [W] model:625 Unreferenced clusters found in spike_clusters (generally not a problem)
12:21:06.515 [D] model:569 No channel shank file found.
12:21:06.515 [D] model:692 Loading templates.
12:21:06.523 [D] model:724 Templates are dense.
12:21:07.692 [W] model:667 Skipping spike waveforms that do not exist, they will be extracted on the fly from the raw data as needed.
12:21:07.693 [D] model:730 Loading the whitening matrix.
12:21:07.694 [D] model:737 Loading the inverse of the whitening matrix.
12:21:07.696 [D] model:766 Loading features.
12:21:07.698 [D] model:781 Features are sparse.
12:21:07.698 [D] model:803 Loading template features.
12:21:07.703 [D] model:530 Load spike_detection_templates.npy.
12:21:07.726 [D] model:530 Load spike_positions.npy.
12:21:07.727 [D] model:504 Load cluster_group.tsv.
12:21:07.727 [D] model:504 Load cluster_KSLabel.tsv.
12:21:07.729 [D] model:504 Load cluster_Amplitude.tsv.
12:21:07.731 [D] model:504 Load cluster_ContamPct.tsv.
12:21:07.903 [D] context:100 Initialize joblib cache dir at .../kilosort4/.phy.
12:21:07.903 [D] context:101 Reducing the size of the cache if needed.
12:21:07.932 [D] base:102 Add filter high_pass.
12:21:07.932 [D] config:31 Load config file .../phy_config.py.
12:21:07.933 [D] plugin:146 Loading 0 plugins.
12:21:07.933 [D] context:126 Load memcache for phy.apps.base._get_mean_waveforms.
12:21:07.934 [D] context:126 Load memcache for phy.apps.base._get_mean_waveforms.
12:21:07.935 [D] context:126 Load memcache for phy.apps.base._get_template_waveforms.
12:21:07.936 [D] context:126 Load memcache for phy.apps.base.get_mean_spike_template_amplitudes.
12:21:07.936 [D] context:126 Load memcache for phy.apps.base.get_template_counts.
12:21:07.936 [D] context:126 Load memcache for phy.apps.base.get_template_for_cluster.
12:21:07.937 [D] context:126 Load memcache for phy.apps.template.gui.get_template_amplitude.
12:21:07.938 [D] context:126 Load memcache for phy.apps.base.get_cluster_amplitude.
12:21:07.938 [D] context:126 Load memcache for phy.apps.base.get_mean_firing_rate.
12:21:07.938 [D] context:126 Load memcache for phy.apps.base.get_best_channel.
12:21:07.939 [D] context:126 Load memcache for phy.apps.template.gui.get_best_channels.
12:21:07.940 [D] context:126 Load memcache for phy.apps.base.get_channel_shank.
12:21:07.940 [D] context:126 Load memcache for phy.apps.base.get_probe_depth.
12:21:07.941 [D] context:126 Load memcache for phy.apps.base.peak_channel_similarity.
12:21:08.041 [D] context:185 Save data to .../kilosort4/.phy/spikes_per_cluster.pkl.
12:21:08.303 [D] gui:463 Creating GUI.
12:21:08.317 [D] state:46 Load .../state.json for GUIState.
12:21:08.318 [D] state:46 Load .../state.json for GUIState.
WebEngineContext used before QtWebEngine::initialize() or OpenGL context creation failed.
QGLXContext: Failed to create dummy context
12:21:08.587 [D] gui:718 Add view ClusterView to GUI.
12:21:08.596 [D] gui:718 Add view SimilarityView to GUI.
12:21:08.662 [D] gui:718 Add view WaveformView to GUI.
12:21:08.668 [D] base:337 Set state for WaveformView.
12:21:08.692 [D] gui:718 Add view CorrelogramView to GUI.
12:21:08.695 [D] base:337 Set state for CorrelogramView.
12:21:08.740 [D] gui:718 Add view ISIView to GUI.
12:21:08.744 [D] base:337 Set state for ISIView.
12:21:08.786 [D] gui:718 Add view ISIView to GUI.
12:21:08.789 [D] base:337 Set state for ISIView (1).
12:21:08.812 [D] gui:718 Add view FeatureView to GUI.
12:21:08.815 [D] base:337 Set state for FeatureView.
12:21:08.859 [D] gui:718 Add view AmplitudeView to GUI.
12:21:08.862 [D] base:337 Set state for AmplitudeView.
12:21:08.904 [D] gui:718 Add view FiringRateView to GUI.
12:21:08.908 [D] base:337 Set state for FiringRateView.
12:21:08.950 [D] gui:718 Add view FiringRateView to GUI.
12:21:08.953 [D] base:337 Set state for FiringRateView (1).
12:21:08.994 [D] gui:718 Add view FiringRateView to GUI.
12:21:08.997 [D] base:337 Set state for FiringRateView (2).
12:21:09.037 [D] gui:718 Add view FiringRateView to GUI.
12:21:09.041 [D] base:337 Set state for FiringRateView (3).
12:21:10.217 [D] gui:718 Add view TraceView to GUI.
12:21:10.221 [D] base:337 Set state for TraceView.
12:21:10.221 [D] base:494 Set color scheme to random.
12:21:10.972 [D] base:1626 Adding default color schemes to TraceView.
12:21:11.725 [D] gui:718 Add view ProbeView to GUI.
12:21:11.728 [D] base:337 Set state for ProbeView.
12:21:11.793 [D] widgets:42 Starting the kernel.
0.00s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation.
12:21:12.026 [D] widgets:61 Injecting variables into the kernel: controller, c, m, s, emit, connect.
12:21:12.026 [D] gui:718 Add view IPythonView to GUI.
12:21:12.032 [D] widgets:42 Starting the kernel.
12:21:12.047 [D] widgets:61 Injecting variables into the kernel: gui.
12:21:12.047 [D] widgets:61 Injecting variables into the kernel: np.
12:21:12.047 [D] widgets:61 Injecting variables into the kernel: plt.
12:21:12.073 [D] gui:718 Add view SpikePositionsView to GUI.
12:21:12.076 [D] base:337 Set state for SpikePositionsView.
Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlagsQSurfaceFormat::FormatOption(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
Aborted (core dumped)

@a-savoy a-savoy changed the title Inexplicable OpenGL error loading datasets that previously opened without issue OpenGL error loading datasets that previously opened without issue Jul 1, 2024
@zm711
Copy link
Collaborator

zm711 commented Jul 1, 2024

@a-savoy, this is the third example of this happening. (2x on Windows--which has more aggressive updating) where Phy was working and then suddenly stopped without any user input. I'm still trying to figure out why... Thanks for the report, nothing has been changed in the opengl section of the code, so I honestly don't know how this could happen. Do you want to create an environment and try to install with just pip from #1289 ( I added a numpy limit to the requirements.txt) and see if that fixes it. The other folks (see #1288) couldn't get the conda to work anymore (so I wonder if conda-forge has a point release that is breaking stuff).

@a-savoy
Copy link
Author

a-savoy commented Jul 1, 2024

Good news: simply restarting the computer seems to have solved the problem. This is the second time for me that a restart has magically resolved a Phy issue.

@zm711
Copy link
Collaborator

zm711 commented Jul 2, 2024

Well let the record show that restarting the computer helps! :)

Unfortunately I know python more than I know any of the renderer stuff, so the opengl/qt is unknown to me. But since rendering communicates with OS there is probably some sort of cache issue etc and so a restart cleans that up. But I don't have a good reason.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants