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

Mixxx 2.4-beta crash on Windows 10 with No GL #11929

Closed
daschuer opened this issue Sep 7, 2023 · 9 comments · Fixed by #11963
Closed

Mixxx 2.4-beta crash on Windows 10 with No GL #11929

daschuer opened this issue Sep 7, 2023 · 9 comments · Fixed by #11963

Comments

@daschuer
Copy link
Member

daschuer commented Sep 7, 2023

Bug Description

Tested on Virtual Box 7.

EXCEPTION_ACCESS_VIOATION

At the beginning ther is a popup about missing OpenGL

Version

2.4-beta

OS

Windows 10

@daschuer daschuer added the bug label Sep 7, 2023
@daschuer daschuer added this to the 2.4.0 milestone Sep 7, 2023
@daschuer
Copy link
Member Author

daschuer commented Sep 7, 2023

Backtrace:

      0000003CAE1EB458 00007FF8327419EF 00007FF83275503F 70   Benutzer qt5gui.public: void __cdecl QOpenGLWindow::`default ctor closure'(void)+40F
      0000003CAE1EB4C8 00007FF83274165D 00007FF8327419EF 60   Benutzer qt5gui.public: bool __cdecl QPaintDeviceWindowPrivate::paint(class QRegion const &)+5F
      0000003CAE1EB528 00007FF83271BFCD 00007FF83274165D 60   Benutzer qt5gui.protected: virtual void __cdecl QPaintDeviceWindow::exposeEvent(class QExposeEvent *)+AD
      0000003CAE1EB588 00007FF77F2F77A4 00007FF83271BFCD 40   Benutzer qt5gui.protected: virtual bool __cdecl QWindow::event(class QEvent *)+26D
      0000003CAE1EB5C8 00007FF8345D5153 00007FF77F2F77A4 30   Benutzer mixxx.OpenGLWindow::event+24
      0000003CAE1EB5F8 00007FF8345D422F 00007FF8345D5153 550  Benutzer qt5widgets.public: bool __cdecl QApplicationPrivate::notify_helper(class QObject *, class QEvent *)+123
      0000003CAE1EBB48 00007FF8277A004B 00007FF8345D422F 70   Benutzer qt5widgets.public: virtual bool __cdecl QApplication::notify(class QObject *, class QEvent *)+198F
      0000003CAE1EBBB8 00007FF832713ABD 00007FF8277A004B A0   Benutzer qt5core.private: static bool __cdecl QCoreApplication::notifyInternal2(class QObject *, class QEvent *)+BB
      0000003CAE1EBC58 00007FF8326FECD2 00007FF832713ABD 30   Benutzer qt5gui.public: static void __cdecl QGuiApplicationPrivate::processExposeEvent(class QWindowSystemInterfacePrivate::ExposeEvent *)+11D
      0000003CAE1EBC88 00007FF8326FB5B5 00007FF8326FECD2 60   Benutzer qt5gui.public: static bool __cdecl QWindowSystemInterface::sendWindowSystemEvents(class QFlags<enum QEventLoop::ProcessEventsFlag>)+92
      0000003CAE1EBCE8 00007FF848C27019 00007FF8326FB5B5 E0   Benutzer qt5gui.public: static bool __cdecl QWindowSystemInterface::flushWindowSystemEvents(class QFlags<enum QEventLoop::ProcessEventsFlag>)+175
      0000003CAE1EBDC8 00007FF848C340D2 00007FF848C27019 1A0  Benutzer qwindows.00007FF848C27019
      0000003CAE1EBF68 00007FF848C35117 00007FF848C340D2 120  Benutzer qwindows.00007FF848C340D2
      0000003CAE1EC088 00007FF85DB2E858 00007FF848C35117 190  System   qwindows.00007FF848C35117
      0000003CAE1EC218 00007FF85DB2E3DC 00007FF85DB2E858 60   System   user32.CallWindowProcW+3F8
      0000003CAE1EC278 00007FF85DB40C33 00007FF85DB2E3DC 60   System   user32.DispatchMessageW+39C
      0000003CAE1EC2D8 00007FF85E590F34 00007FF85DB40C33 88   System   user32.SendMessageTimeoutW+143
      0000003CAE1EC360 00007FF85BEE1704 00007FF85E590F34 8    System   ntdll.KiUserCallbackDispatcher+24
      0000003CAE1EC368 00007FF85DB2E2EA 00007FF85BEE1704 80   System   win32u.NtUserDispatchMessage+14
      0000003CAE1EC3E8 00007FF8277E96DC 00007FF85DB2E2EA 3120 Benutzer user32.DispatchMessageW+2AA
      0000003CAE1EF508 00007FF848C854A9 00007FF8277E96DC 30   Benutzer qt5core.public: virtual bool __cdecl QEventDispatcherWin32::processEvents(class QFlags<enum QEventLoop::ProcessEventsFlag>)+5BC
      0000003CAE1EF538 00007FF82779C49F 00007FF848C854A9 60   Benutzer qwindows.qt_plugin_query_metadata+2029
      0000003CAE1EF598 00007FF82779F015 00007FF82779C49F 60   Benutzer qt5core.public: int __cdecl QEventLoop::exec(class QFlags<enum QEventLoop::ProcessEventsFlag>)+1BF
      0000003CAE1EF5F8 00007FF77EFCCE12 00007FF82779F015 1D0  Benutzer qt5core.public: static int __cdecl QCoreApplication::exec(void)+155
      0000003CAE1EF7C8 00007FF77EFCD089 00007FF77EFCCE12 2F0  Benutzer mixxx.`anonymous namespace'::runMixxx+2B2
      0000003CAE1EFAB8 00007FF77F51FBF4 00007FF77EFCD089 40   Benutzer mixxx.main+219
      0000003CAE1EFAF8 00007FF85C977614 00007FF77F51FBF4 30   System   mixxx.__scrt_common_main_seh+10C
      0000003CAE1EFB28 00007FF85E5426F1 00007FF85C977614 80   System   kernel32.BaseThreadInitThunk+14
      0000003CAE1EFBA8 0000000000000000 00007FF85E5426F1      Benutzer ntdll.RtlUserThreadStart+21

@daschuer
Copy link
Member Author

daschuer commented Sep 7, 2023

--safe-mode fixes the issue

So I guess there QOpenGLWindow is used even though we know, it is not available.

@daschuer
Copy link
Member Author

daschuer commented Sep 7, 2023

Debug [Main] Set root GL Context widget valid: WInitialGLWidget(0x19479a47900) false
Debug [Main] Displaying main window
Debug [Main] Running Mixxx
Warning [Main] QWindowsEGLContext: Failed to create context, eglError: 3004, this: 0x1947142bae0
Warning [Main] QOpenGLWindow::beginPaint: Failed to create context
Warning [Main] QOpenGLWindow::beginPaint: Failed to make context current
warning [Main] QOpenGLFunctions created with non-current context

@daschuer
Copy link
Member Author

daschuer commented Sep 7, 2023

Debug [Main] Loaded "qt" translations for locale "de_DE" from "C:/Program Files/Mixxx/translations"
Debug [Main] Loaded "mixxx" translations for locale "de_DE" from "C:/Program Files/Mixxx/translations/"
Debug [Main] Loading resources from  "C:/Program Files/Mixxx/"
Debug [Main] Found and will use default keyboard mapping "C:/Program Files/Mixxx/keyboard/de_DE.kbd.cfg"
Debug [Main] Loading resources from  "C:/Program Files/Mixxx/"
Info [Main] Loaded skin "LateNight"
Debug [Main] SoundSourceProxy - Registering SoundSource providers
Debug [Main] SoundSourceProxy - Registering platform and fallback SoundSource providers
Debug [Main] SoundSourceProviderRegistry - Registering provider "Microsoft Media Foundation 10.0.19041.746"
Debug [Main] SoundSourceProviderRegistry - Registering file type "aac" for provider "Microsoft Media Foundation 10.0.19041.746" with priority 4 (higher)
Debug [Main] SoundSourceProviderRegistry - Registering file type "m4a" for provider "Microsoft Media Foundation 10.0.19041.746" with priority 4 (higher)
Debug [Main] SoundSourceProviderRegistry - Registering file type "mp4" for provider "Microsoft Media Foundation 10.0.19041.746" with priority 4 (higher)
Debug [Main] SoundSourceProviderRegistry - Registering provider "MAD: MPEG Audio Decoder 0.15.1 (beta) NDEBUG FPM_64BIT ASO_ZEROCHECK"
Debug [Main] SoundSourceProviderRegistry - Registering file type "mp3" for provider "MAD: MPEG Audio Decoder 0.15.1 (beta) NDEBUG FPM_64BIT ASO_ZEROCHECK" with priority 3 (default)
Debug [Main] SoundSourceProviderRegistry - Registering provider "MODPlug"
Debug [Main] SoundSourceProviderRegistry - Registering file type "mod" for provider "MODPlug" with priority 3 (default)
Debug [Main] SoundSourceProviderRegistry - Registering file type "okt" for provider "MODPlug" with priority 3 (default)
Debug [Main] SoundSourceProviderRegistry - Registering file type "s3m" for provider "MODPlug" with priority 3 (default)
Debug [Main] SoundSourceProviderRegistry - Registering file type "stm" for provider "MODPlug" with priority 3 (default)
Debug [Main] SoundSourceProviderRegistry - Registering file type "xm" for provider "MODPlug" with priority 3 (default)
Debug [Main] SoundSourceProviderRegistry - Registering file type "it" for provider "MODPlug" with priority 3 (default)
Info [Main] SoundSourceSndFile - Disabling OGG decoding for "libsndfile-1.2.0"
Debug [Main] SoundSourceProviderRegistry - Registering provider "libsndfile"
Debug [Main] SoundSourceProviderRegistry - Registering file type "aiff" for provider "libsndfile" with priority 3 (default)
Debug [Main] SoundSourceProviderRegistry - Registering file type "caf" for provider "libsndfile" with priority 2 (lower)
Debug [Main] SoundSourceProviderRegistry - Registering file type "flac" for provider "libsndfile" with priority 2 (lower)
Debug [Main] SoundSourceProviderRegistry - Registering file type "wav" for provider "libsndfile" with priority 3 (default)
Debug [Main] SoundSourceProxy - Registering reference SoundSource providers
Debug [Main] SoundSourceProviderRegistry - Registering provider "Xiph.org libFLAC"
Debug [Main] SoundSourceProviderRegistry - Registering file type "flac" for provider "Xiph.org libFLAC" with priority 4 (higher)
Debug [Main] SoundSourceProviderRegistry - Registering provider "Xiph.org OggVorbis"
Debug [Main] SoundSourceProviderRegistry - Registering file type "ogg" for provider "Xiph.org OggVorbis" with priority 4 (higher)
Debug [Main] SoundSourceProviderRegistry - Registering provider "Xiph.org libopusfile"
Debug [Main] SoundSourceProviderRegistry - Registering file type "opus" for provider "Xiph.org libopusfile" with priority 4 (higher)
Debug [Main] SoundSourceProviderRegistry - Registering provider "WavPack"
Debug [Main] SoundSourceProviderRegistry - Registering file type "wv" for provider "WavPack" with priority 4 (higher)
Debug [Main] QMimeType("audio/aac") "aac"
Debug [Main] QMimeType("audio/x-aiff") "aiff"
Debug [Main] QMimeType("audio/flac") "flac"
Debug [Main] QMimeType("audio/x-it") "it"
Debug [Main] QMimeType("audio/mp4") "m4a"
Debug [Main] QMimeType("audio/x-mod") "mod"
Debug [Main] QMimeType("audio/mpeg") "mp3"
Debug [Main] QMimeType("video/mp4") "mp4"
Debug [Main] QMimeType("audio/ogg") "ogg"
Debug [Main] QMimeType("audio/x-flac+ogg") "ogg"
Debug [Main] QMimeType("audio/x-speex+ogg") "ogg"
Debug [Main] QMimeType("audio/x-vorbis+ogg") "ogg"
Debug [Main] QMimeType("video/ogg") "ogg"
Debug [Main] QMimeType("video/x-theora+ogg") "ogg"
Debug [Main] QMimeType("audio/x-opus+ogg") "opus"
Debug [Main] QMimeType("audio/x-s3m") "s3m"
Debug [Main] QMimeType("audio/x-stm") "stm"
Debug [Main] QMimeType("audio/x-wav") "wav"
Debug [Main] QMimeType("audio/x-wavpack") "wv"
Debug [Main] QMimeType("audio/x-xm") "xm"
Debug [Main] Mixxx 2.4.0-beta (git f7877f3372 (2.4); built on: Sep  6 2023 @ 18:54:41; flags: /UTF8;/fp:fast;/Gy;/W3;/WX) is starting...
Debug [Main] Compile time library versions:
Debug [Main] Qt: 5.15.8
Debug [Main] libshout: 2.4.1
Debug [Main] PortAudio: 1246976 PortAudio V19.7.0-devel, revision unknown
Debug [Main] RubberBand: 3.2.0
Debug [Main] SoundTouch: 2.3.1
Debug [Main] TagLib: 1.13.0
Debug [Main] ChromaPrint: 1.5.0
Debug [Main] Vorbis: Xiph.Org libVorbis 1.3.7
Debug [Main] libsndfile: libsndfile-1.2.0
Debug [Main] FLAC: 1.4.2
Debug [Main] libmp3lame: 3.100
Debug [Main] QStandardPaths::writableLocation(HomeLocation): "C:/Users/dasch"
Debug [Main] QStandardPaths::writableLocation(AppDataLocation): "C:/Users/dasch/AppData/Roaming/Mixxx"
Debug [Main] QCoreApplication::applicationDirPath() "C:/Program Files/Mixxx"
Debug [Main] Loading resources from  "C:/Program Files/Mixxx/"
Info [Main] DbConnection - Available drivers for database connections: ("QSQLITE", "QODBC", "QODBC3")
Info [Main] DbConnectionPool - Cloned thread-local database connection "MIXXX-1" QSqlDatabase(driver="QSQLITE", database="file:///C:/Users/dasch/AppData/Local/Mixxx/mixxxdb.sqlite", host="", port=-1, user="mixxx", open=true)
Info [Main] CoreServices - Connecting to database
Info [Main] CoreServices - Initializing or upgrading database schema
Info [Main] SchemaManager - Database schema is up-to-date at version 39
Debug [Main] EngineNetworkStream - addWorker: worker added
Debug [Main] EngineNetworkStream - worker slots used: "1 out of 16"
Debug [Main] BroadcastManager - addConnection: created connection for profile "Connection 1"
Debug [Main] screensaver inhibited
Info [Main] GlobalTrackCache - Creating instance
Info [Main] TrackCollection - Connecting database
Info [Main] TrackCollectionManager - Starting library scanner thread
Debug [LibraryScanner 1] LibraryScanner - Entering thread
Info [LibraryScanner 1] DbConnectionPool - Cloned thread-local database connection "MIXXX-2" QSqlDatabase(driver="QSQLITE", database="file:///C:/Users/dasch/AppData/Local/Mixxx/mixxxdb.sqlite", host="", port=-1, user="mixxx", open=true)
Debug [LibraryScanner 1] LibraryScanner - Event loop starting
Info [Main] TrackCollection - Connecting track source
Debug [Main] Committing transaction successfully on "MIXXX-1"
Debug [Main] PlaylistTableModel(0x194712c3c90) select() took 0 ms 0
Debug [Main] CrateFeature::rebuildChildModel() -1
Debug [Main] Default quick links: ("C:/Users/dasch/Music/", "C:/Users/dasch/Downloads/", "C:/Users/dasch/Desktop/", "C:/Users/dasch/OneDrive/Dokumente/")
Debug [Main] Appending Quick Link:  "Music" --- "C:/Users/dasch/Music/"
Debug [Main] Appending Quick Link:  "Downloads" --- "C:/Users/dasch/Downloads/"
Debug [Main] Appending Quick Link:  "Desktop" --- "C:/Users/dasch/Desktop/"
Debug [Main] Appending Quick Link:  "Dokumente" --- "C:/Users/dasch/OneDrive/Dokumente/"
Info [Main] Prepared deletion of 1 playlists of type 2 that contain fewer than 1 tracks
Info [Main] Deleting 1 playlists
Debug [Main] PlaylistDAO::getHiddenType returns PLHT_UNKNOWN for playlistId  -1
Debug [Main] PlaylistDAO::getHiddenType returns PLHT_UNKNOWN for playlistId  -1
Debug [Main] Committing transaction successfully on "MIXXX-1"
Debug [Main] Committing transaction successfully on "MIXXX-1"
Debug [Main] Committing transaction successfully on "MIXXX-1"
Debug [Main] Traktor Library Location=[ "C:/Users/dasch/collection.nml" ]
Debug [Main] Dropping Rekordbox table:  "rekordbox_playlist_tracks"
Debug [Main] Dropping Rekordbox table:  "rekordbox_playlists"
Debug [Main] Dropping Rekordbox table:  "rekordbox_library"
Debug [Main] Creating Rekordbox library table:  "rekordbox_library"
Debug [Main] Creating Rekordbox playlists table:  "rekordbox_playlists"
Debug [Main] Creating Rekordbox playlist tracks table:  "rekordbox_playlist_tracks"
Debug [Main] Committing transaction successfully on "MIXXX-1"
Debug [Main] Dropping Serato table:  "serato_playlist_tracks"
Debug [Main] Dropping Serato table:  "serato_playlists"
Debug [Main] Dropping Serato table:  "serato_library"
Debug [Main] Creating Serato library table:  "serato_library"
Debug [Main] Creating Serato playlists table:  "serato_playlists"
Debug [Main] Creating Serato playlist tracks table:  "serato_playlist_tracks"
Debug [Main] Committing transaction successfully on "MIXXX-1"
Info [Main] Library - Access to directory QFileInfo(C:\Users\dasch\Music) from sandbox granted
Debug [Main] TrackAnalysisScheduler - Starting 2 worker threads. Priority:  normal
Debug [AnalyzerThread 0 #1] AnalyzerThread 0 - Running
Debug [AnalyzerThread 1 #2] AnalyzerThread 1 - Running
Debug [Main] Creating ControllerManager
Info [AnalyzerThread 0 #1] DbConnectionPool - Cloned thread-local database connection "MIXXX-3" QSqlDatabase(driver="QSQLITE", database="file:///C:/Users/dasch/AppData/Local/Mixxx/mixxxdb.sqlite", host="", port=-1, user="mixxx", open=true)
Debug [Controller] ControllerManager:slotInitialize
Info [AnalyzerThread 1 #2] DbConnectionPool - Cloned thread-local database connection "MIXXX-4" QSqlDatabase(driver="QSQLITE", database="file:///C:/Users/dasch/AppData/Local/Mixxx/mixxxdb.sqlite", host="", port=-1, user="mixxx", open=true)
Debug [Controller] Extension .midi.xml total 0 mappings
Debug [Controller] Extension .hid.xml total 0 mappings
Debug [Controller] Extension .bulk.xml total 0 mappings
Debug [AnalyzerThread 0 #1] AnalyzerThread - Activated 5 analyzers
Debug [AnalyzerThread 1 #2] AnalyzerThread - Activated 5 analyzers
Debug [Main] Set root GL Context widget valid: WInitialGLWidget(0x19479a47900) false
Debug [Main] Displaying main window
Debug [Main] Running Mixxx
Warning [Main] QWindowsEGLContext: Failed to create context, eglError: 3004, this: 0x1947142bae0
Warning [Main] QOpenGLWindow::beginPaint: Failed to create context
Warning [Main] QOpenGLWindow::beginPaint: Failed to make context current
Debug [Main] ControllerManager::getControllerList
Info [Main] Loaded skin "LateNight"
Info [Main] Loaded skin "LateNight"
Debug [Main] Key plugin ID: "qm-keydetector:2"
Info [Main] Loaded skin "LateNight"
Debug [Main] LegacySkinParser loading skin: "C:/Program Files/Mixxx/skins/LateNight"
Debug [Main] Skin is a >=1.12.0 style skin.
Debug [Controller] Extension .midi.xml total 128 mappings
Debug [Controller] Extension .hid.xml total 15 mappings
Debug [Controller] Extension .bulk.xml total 1 mappings
Debug [Controller] ControllerManager: Setting up devices
Debug [Controller] Scanning PortMIDI devices:
Debug [Controller]  Found output device # 0 Microsoft MIDI Mapper
Debug [Controller]  Found output device # 1 Microsoft GS Wavetable Synth
Debug [Controller] Scanning HSS1394 devices:
Debug [Controller]    Nodes detected: 0
Info [Controller] Scanning USB HID devices
Info [Controller] Excluding HID device { 80ee:0021 r100 | Usage: 0001:0002 | Manufacturer: VirtualBox | Product: USB Tablet }
Debug [Controller] ControllerManager::getControllerList
Debug [Controller] Controller polling stopped.
Debug [Main] WSearchLineEdit - Background color: QColor(ARGB 1, 0, 0, 0)
Debug [Main] WTrackTableView::loadTrackModel() HiddenTableModel(0x1940825d210)
Debug [Main] HiddenTableModel(0x1940825d210) select() took 1 ms 0
Debug [Main] WTrackTableView::loadTrackModel() MissingTableModel(0x194069d9640)
Debug [Main] MissingTableModel(0x194069d9640) select() took 0 ms 0
Debug [Main] WTrackTableView::loadTrackModel() PlaylistTableModel(0x194712c3c90)
Debug [Main] Recordings folder set to "C:/Users/dasch/Music/Mixxx/Recordings"
Debug [Main] WTrackTableView::loadTrackModel() ProxyTrackModel(0x19408484a80)
Info [BrowseThread] MetadataSourceTagLib - No track metadata or cover art found in file "C:/Users/dasch/Music/Mixxx/Recordings/2015-11-18_21h42m53s.wav" with type 7
Warning [BrowseThread] Using type "aac" instead of "m4a" according to the detected MIME type QMimeType("audio/aac") of file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_21h55m46s.m4a"
Warning [BrowseThread] Using type "aac" instead of "m4a" according to the detected MIME type QMimeType("audio/aac") of file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_21h55m46s.m4a"
Warning [BrowseThread] TagLib - Cannot read audio properties from inaccessible/unreadable/invalid file: ""
Info [BrowseThread] MetadataSourceTagLib - No track metadata or cover art found in file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_21h55m46s.m4a" with type 4
Debug [Main] Recordings folder set to "C:/Users/dasch/Music/Mixxx/Recordings"
Debug [Main] WTrackTableView::loadTrackModel() AnalysisLibraryTableModel(0x194085520e0)
Warning [BrowseThread] Using type "aac" instead of "m4a" according to the detected MIME type QMimeType("audio/aac") of file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_23h37m41s.m4a"
Warning [BrowseThread] Using type "aac" instead of "m4a" according to the detected MIME type QMimeType("audio/aac") of file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_23h37m41s.m4a"
Warning [BrowseThread] TagLib - Cannot read audio properties from inaccessible/unreadable/invalid file: ""
Info [BrowseThread] MetadataSourceTagLib - No track metadata or cover art found in file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_23h37m41s.m4a" with type 4
Debug [Main] BaseTrackCache(0x1947128e960) updateIndexWithQuery took 3 ms
Debug [Main] AnalysisLibraryTableModel(0x194085520e0) select() took 5 ms 0
Warning [BrowseThread] Using type "aac" instead of "m4a" according to the detected MIME type QMimeType("audio/aac") of file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_23h38m13s.m4a"
Warning [BrowseThread] Using type "aac" instead of "m4a" according to the detected MIME type QMimeType("audio/aac") of file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_23h38m13s.m4a"
Warning [BrowseThread] TagLib - Cannot read audio properties from inaccessible/unreadable/invalid file: ""
Info [BrowseThread] MetadataSourceTagLib - No track metadata or cover art found in file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_23h38m13s.m4a" with type 4
Warning [BrowseThread] Using type "aac" instead of "m4a" according to the detected MIME type QMimeType("audio/aac") of file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_23h38m31s.m4a"
Warning [BrowseThread] Using type "aac" instead of "m4a" according to the detected MIME type QMimeType("audio/aac") of file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_23h38m31s.m4a"
Warning [BrowseThread] TagLib - Cannot read audio properties from inaccessible/unreadable/invalid file: ""
Info [BrowseThread] MetadataSourceTagLib - No track metadata or cover art found in file "C:/Users/dasch/Music/Mixxx/Recordings/2021-01-20_23h38m31s.m4a" with type 4
Debug [BrowseThread] Append last 6 tracks from "C:/Users/dasch/Music/Mixxx"
Debug [Main] WaveformWidgetFactory::setWaveformWidget - waveform widget added in factory, index 0
Debug [Main] WaveformWidgetFactory::setWaveformWidget - waveform widget added in factory, index 1
Debug [Main] WaveformWidgetFactory::setWaveformWidget - waveform widget added in factory, index 2
Debug [Main] WaveformWidgetFactory::setWaveformWidget - waveform widget added in factory, index 3
Debug [Main] WTrackTableView::loadTrackModel() LibraryTableModel(0x194712cbb20)
Debug [Main] LibraryTableModel(0x194712cbb20) select() took 2 ms 27
Debug [Main] SoundManager::setupDevices()

@Swiftb0y
Copy link
Member

Swiftb0y commented Sep 7, 2023

Looks like this is expected because the widget is created unconditionally. What is the Qt6 compatible counterpart to QGLFormat::hasOpenGL()? @m0dB

#ifndef MIXXX_USE_QOPENGL
// Before creating the first skin we need to create a QGLWidget so that all
// the QGLWidget's we create can use it as a shared QGLContext.
if (!CmdlineArgs::Instance().getSafeMode() && QGLFormat::hasOpenGL()) {

this might fix it...

diff --git a/src/mixxxmainwindow.cpp b/src/mixxxmainwindow.cpp
index df259b359d..7c84e42875 100644
--- a/src/mixxxmainwindow.cpp
+++ b/src/mixxxmainwindow.cpp
@@ -8,6 +8,7 @@
 #ifdef MIXXX_USE_QOPENGL
 #include "widget/tooltipqopengl.h"
 #include "widget/winitialglwidget.h"
+#include <QOpenGLContext>
 #else
 #include <QGLFormat>
 #endif
@@ -149,7 +150,7 @@ MixxxMainWindow::MixxxMainWindow(std::shared_ptr<mixxx::CoreServices> pCoreServi
 
 #ifdef MIXXX_USE_QOPENGL
 void MixxxMainWindow::initializeQOpenGL() {
-    if (!CmdlineArgs::Instance().getSafeMode()) {
+    if (!CmdlineArgs::Instance().getSafeMode() && QOpenGLContext::isValid()) {
         // This widget and its QOpenGLWindow will be used to query QOpenGL
         // information (version, driver, etc) in WaveformWidgetFactory.
         // The "SharedGLContext" terminology here doesn't really apply,

@m0dB
Copy link
Contributor

m0dB commented Sep 11, 2023

Not sure if that's the correct way. I will prepare a PR with a proposed fix.

@daschuer
Copy link
Member Author

I have already one in progress. Testing works. Only need some final look.

@daschuer
Copy link
Member Author

Here it is: #11963

@daschuer
Copy link
Member Author

QOpenGLContext::isValid() suffers the chicken egg issue. The returned value is currently only significant with a widget. But it crashes before we can check.

In the PR I have revived the QGLFormat::hasOpenGL() for the QT5 case (Mixxx 2.4 is Qt 5) and checked QOpenGLContext::create() of a dummy context in case of Qt 6.

This fixes the issue for 2.4 and the main branch.

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

Successfully merging a pull request may close this issue.

3 participants