Details
-
Bug
-
Resolution: Duplicate
-
P2: Important
-
5.12.3, 5.13.0
-
None
-
Win x64, Visual Studio 2017
Description
Ever since I moved from Qt5.10 to Qt5.12.3, I started getting occasional floating point invalid operation exceptions while moving the mouse. In Qt5.12.3, the exceptions were related to calls to OpenGLFunctions_4_2_Compatibility::glPixelStorei.
I then added a patch in my code that ignored the exception and was able to temporarily continue running my app.
I since switched to Qt5.13.0 and it seems that that exception is now gone, but I now get another one like that, and also from Qt5Guid.dll.
Here's an excerpt from my code that handles that exception to illustrate:
const QString qsInfo = rException.what();
{{// Patch for intermittent invalid floating point exception with }}
{{ // Qt5.12.3 and OpenGL when moving/clicking the mouse.}}
{{ // This ignores the exception.}}
{{ if ( qsInfo.contains( }}
"QOpenGLFunctions_4_2_Compatibility::glPixelStorei", Qt::CaseInsensitive ) ) {
bShowException = false;
bDebug() << qsInfo;
{{ }}}
{{ else {}}
{{ // Patch for intermittent invalid floating point exception with }}
{{ // Qt5.13.0 and OpenGL when moving/clicking the mouse. }}
// This ignores the exception.
if ( qsInfo.contains( "Qt5Guid.dll", Qt::CaseInsensitive ) &&
qsInfo.contains( "SE EXCEPTION_FLT_INVALID_OPERATION", Qt::CaseInsensitive ) ) {
bShowException = false;
bDebug() << qsInfo;
{{ }}}
{{ }}}
And here's a call stack that I captured in Visual Studio to show how it is getting there:
Qt5Guid.dll!reciprocal_mul_ps(__m128 a, float mul) Line 150 C++
Qt5Guid.dll!convertARGBFromARGB32PM_sse4<0,0>(unsigned int * buffer, const unsigned int * src, int count) Line 171 C++
Qt5Guid.dll!storeARGB32FromARGB32PM_sse4(unsigned char * dest, const unsigned int * src, int index, int count, const QVector<unsigned int> * __formal, QDitherInfo * __formal) Line 377 C++
Qt5Guid.dll!convert_generic(QImageData * dest, const QImageData * src, QFlags<enum Qt::ImageConversionFlag> flags) Line 217 C++
Qt5Guid.dll!QImage::convertToFormat_helper(QImage::Format format, QFlags<enum Qt::ImageConversionFlag> flags) Line 2105 C++
Qt5Guid.dll!QImage::convertToFormat(QImage::Format f, QFlags<enum Qt::ImageConversionFlag> flags) Line 185 C++
Qt5Guid.dll!qt_imageToWinHBITMAP(const QImage & imageIn, int hbitmapFormat) Line 280 C++
Qt5Guid.dll!qt_pixmapToWinHBITMAP(const QPixmap & p, int hbitmapFormat) Line 360 C++
qwindowsd.dll!00007ff98d347f02() Unknown
qwindowsd.dll!00007ff98d34b2f0() Unknown
qwindowsd.dll!00007ff98d3483b0() Unknown
qwindowsd.dll!00007ff98d3485d9() Unknown
qwindowsd.dll!00007ff98d34b381() Unknown
qwindowsd.dll!00007ff98d347a88() Unknown
Qt5Guid.dll!QWindowPrivate::applyCursor() Line 2805 C++
Qt5Guid.dll!QWindowPrivate::setCursor(const QCursor * newCursor) Line 2785 C++
Qt5Guid.dll!QWindow::setCursor(const QCursor & cursor) Line 2746 C++
Qt5Widgetsd.dll!applyCursor(QWidget * w, const QCursor & c) Line 5037 C++
Qt5Widgetsd.dll!qt_qpa_set_cursor(QWidget * w, bool force) Line 5074 C++
Qt5Widgetsd.dll!QWidgetPrivate::setCursor_sys(const QCursor & cursor) Line 5010 C++
Qt5Widgetsd.dll!QWidget::setCursor(const QCursor & cursor) Line 5001 C++
Qt5Widgetsd.dll!QHeaderView::mouseMoveEvent(QMouseEvent * e) Line 2719 C++
Qt5Widgetsd.dll!QWidget::event(QEvent * event) Line 8937 C++
Qt5Widgetsd.dll!QFrame::event(QEvent * e) Line 550 C++
Qt5Widgetsd.dll!QAbstractScrollArea::viewportEvent(QEvent * e) Line 1221 C++
Qt5Widgetsd.dll!QAbstractItemView::viewportEvent(QEvent * event) Line 1754 C++
Qt5Widgetsd.dll!QHeaderView::viewportEvent(QEvent * e) Line 2902 C++
Qt5Widgetsd.dll!QAbstractScrollAreaPrivate::viewportEvent(QEvent * event) Line 113 C++
Qt5Widgetsd.dll!QAbstractScrollAreaFilter::eventFilter(QObject * o, QEvent * e) Line 129 C++
Qt5Cored.dll!QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject * receiver, QEvent * event) Line 1191 C++
Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3734 C++
Qt5Widgetsd.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3200 C++
c-spawner.dll!StsApplication::notify(QObject * receiver, QEvent * event) Line 3086 C++
Qt5Cored.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1065 C++
Qt5Cored.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver, QEvent * event) Line 1473 C++
Qt5Widgetsd.dll!QApplicationPrivate::sendMouseEvent(QWidget * receiver, QMouseEvent * event, QWidget * alienWidget, QWidget * nativeWidget, QWidget * * buttonDown, QPointer<QWidget> & lastMouseReceiver, bool spontaneous, bool onlyDispatchEnterLeave) Line 2686 C++
Qt5Widgetsd.dll!QWidgetWindow::handleMouseEvent(QMouseEvent * event) Line 664 C++
Qt5Widgetsd.dll!QWidgetWindow::event(QEvent * event) Line 282 C++
Qt5Widgetsd.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3740 C++
Qt5Widgetsd.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3096 C++
c-spawner.dll!StsApplication::notify(QObject * receiver, QEvent * event) Line 3086 C++
Qt5Cored.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1065 C++
Qt5Cored.dll!QCoreApplication::sendSpontaneousEvent(QObject * receiver, QEvent * event) Line 1473 C++
Qt5Guid.dll!QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent * e) Line 2112 C++
Qt5Guid.dll!QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent * e) Line 1847 C++
Qt5Guid.dll!QWindowSystemInterface::sendWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 1154 C++
qwindowsd.dll!00007ff98d3d0da2() Unknown
Qt5Cored.dll!qt_internal_proc(HWND__ * hwnd, unsigned int message, unsigned __int64 wp, __int64 lp) Line 247 C++
[External Code]
Qt5Cored.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 640 C++
qwindowsd.dll!00007ff98d3d0d54() Unknown
Qt5Cored.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 139 C++
Qt5Cored.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 225 C++
Qt5Cored.dll!QCoreApplication::exec() Line 1373 C++
Qt5Guid.dll!QGuiApplication::exec() Line 1789 C++
Qt5Widgetsd.dll!QApplication::exec() Line 2897 C++
c-spawner.dll!AtsRunParent(QLibrary & rSystemDll, HWND__ * * const pHwndMainWidget) Line 796 C++
c-ats.exe!main(int argc, char * * argv) Line 854 C++
c-ats.exe!WinMain(HINSTANCE__ * _formal, HINSTANCE_ * __formal, char * __formal, int __formal) Line 97 C++
Attachments
Issue Links
- duplicates
-
QTBUG-75592 Floating-point invalid operation in QIcon::pimap() / reciprocal_mul_ps()
-
- Closed
-