Details
-
Bug
-
Resolution: Incomplete
-
P1: Critical
-
None
-
6.5.6
-
macOS Monterey, Ventura, Sonoma but on on Intel Macs. Qt 6.5.6 built with Xcode 14.2 and macOS SDK 13.1 minimum deployment OS 11.
Description
Our application is running in a loop playing video through a custom video player. Periodically, the playback engine gives time back to the main thread to update the UI. At some point the application crashes in QWidgetRepaintManager::flush(), but only in Intel Macs with AMD graphics. Macs with Apple SoC and Windows systems run for many hours without any issues.
Here is a snippet from a typical stack where the failure is happening on all Intel-based Macs
50 libsystem_platform.dylib 0x7ff815aebe9d _sigtramp + 29\ 51 ??? 0x0 ???\ 52 AMDRadeonX5000MTLDriver 0x7ffb1a6fa97f amdMtl_CmdBuffer_BeginEncoder(GFX9AMD_MtlCmdBuffer*) + 117\ 53 AMDRadeonX5000MTLDriver 0x7ffb1a79ca63 -[GFX9_MtlRenderCmdEncoder initWithCommandBuffer:descriptor:] + 2236\ 54 AMDRadeonX5000MTLDriver 0x7ffb1a767363 -[GFX9_MtlCmdBuffer renderCommandEncoderWithDescriptor:] + 57\ 55 QtGui 0x114a4cebb QRhiMetal::beginPass(QRhiCommandBuffer*, QRhiRenderTarget*, QColor const&, QRhiDepthStencilClearValue const&, QRhiResourceUpdateBatch*, QFlags<QRhiCommandBuffer::BeginPassFlag>) + 2299\ 56 QtGui 0x11481305b QRhiCommandBuffer::beginPass(QRhiRenderTarget*, QColor const&, QRhiDepthStencilClearValue const&, QRhiResourceUpdateBatch*, QFlags<QRhiCommandBuffer::BeginPassFlag>) + 43\ 57 QtGui 0x1146b3048 QBackingStoreDefaultCompositor::flush(QPlatformBackingStore*, QRhi*, QRhiSwapChain*, QWindow*, double, QRegion const&, QPoint const&, QPlatformTextureList*, bool)::$_0::operator()(std::__1::optional<QRhiSwapChain::StereoTargetBuffer>) const + 120\ 58 QtGui 0x1146b2b77 QBackingStoreDefaultCompositor::flush(QPlatformBackingStore*, QRhi*, QRhiSwapChain*, QWindow*, double, QRegion const&, QPoint const&, QPlatformTextureList*, bool) + 5495\ 59 QtGui 0x1147d4649 QPlatformBackingStore::rhiFlush(QWindow*, double, QRegion const&, QPoint const&, QPlatformTextureList*, bool) + 105\ 60 QtWidgets 0x1167a97da QWidgetRepaintManager::flush(QWidget*, QRegion const&, QPlatformTextureList*) + 1738\ 61 QtWidgets 0x1167abea0 QWidgetRepaintManager::flush() + 576\ 62 QtWidgets 0x1167aae48 QWidgetRepaintManager::paintAndFlush() + 5096\ 63 QtWidgets 0x1167ab10f QWidgetRepaintManager::sync() + 255\ 64 QtWidgets 0x116798825 QWidget::event(QEvent*) + 1813\
This is a critical issue that is blocking us from upgrading our applications from Qt 5.15 to 6.5.