Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
None
-
5.11.0, 5.12.2, 5.12.4
-
None
-
macOS SDK 10.14, macOS SDK 10.15, macOS 10.15 public beta 3, macOS 10.15 public beta 4
Description
Having a QPushButton in a QSplashScreen (or a QDialog with Qt::SplashScreen set) results in the following exception and hard crash when running on macOS 10.15 public beta 3:
"The window has been marked as needing another Display Window pass, but it has already had more Display Window passes than there are views in the window."
See the attached crash report and minimal test case that reproduces the issue, tested with Qt 5.11.0, 5.12.2, and 5.12.4.
This exception arises only when an application is built with Xcode 10 (SDK 10.14) or Xcode 11 (SDK 10.15) and then run on the 10.15 beta.
An app built with Xcode 9 (SDK 10.13) runs without issue on the 10.15 beta.
An app built with Xcode 10 or Xcode 11 runs without issue on 10.14 and earlier.
Based on exception call stack and the connection to the 10.14 or later SDK, it seems likely to be related to the use of CoreAnimation for drawing windows as described in the 10.14 AppKit release notes. As mentioned in Qt's blog post regarding Mojave, the current workaround seems to be to build using Xcode 9, or to use a different window type.
But why it would be a problem in 10.15 and not 10.14 is a mystery. It could be a bug in macOS 10.15, but I don't understand Qt's internals well enough to chase that down. If it's an Apple bug, you're probably best suited to report it.
Attachments
Issue Links
- relates to
-
QTBUG-76365 [REG 5.12->5.13]: When causing an update 200ms apart it seems that they end up being combined so there is no visible difference from the first to the second
-
- Closed
-
- replaces
-
QTBUG-77068 Often crashes in MacOS 10.15 Beta when editing C++ code
-
- Closed
-