OSPRay support checked at creation of RenderView, even if it is not enabled
Version: 5.12.0
Operating system: x86_64 binary operating on a Mac with an arm64 chip
What happens
When ParaView starts, it creates a new RenderView. If OSPRay is enabled in the build but not supported by the CPU, then we get a warning message:
( 1.050s) [paraview ] vtkPVRenderView.cxx:3438 WARN| vtkPVRenderView (0x7fd378a39c70): Refusing to enable OSPRay because it is not supported running in this configuration.
What should happen
This warning should only be produced when OSPRay rendering is requested.
Steps to reproduce
- Install the Intel binary for ParaView 5.12.0 (x86_64) on a Mac with an M1, M2, or M3 chip.
- Start ParaView
- If all goes well, you see this warning once and ParaView runs normally. If not, ParaView will hang trying to report the error.
Stack trace
Heaviest stack for the main thread of the target process:
13 start + 1942 (dyld + 25446) [0x202f0a366]
13 main + 467 (paraview + 92003) [0x102ceb763]
13 pqparaviewInitializer::Initialize(int, char**) + 1029 (paraview + 93541) [0x102cebd65]
13 ParaViewMainWindow::ParaViewMainWindow() + 2111 (paraview + 76399) [0x102ce7a6f]
13 pqParaViewBehaviors::pqParaViewBehaviors(QMainWindow*, QObject*) + 527 (libpqApplicationComponents-pv5.12.5.12.dylib + 996031) [0x10bcd42bf]
13 pqAlwaysConnectedBehavior::pqAlwaysConnectedBehavior(QObject*) + 387 (libpqApplicationComponents-pv5.12.5.12.dylib + 221315) [0x10bc17083]
13 pqObjectBuilder::createServer(pqServerResource const&, int, vtkNetworkAccessManager::ConnectionResult&) + 1109 (libpqCore-pv5.12.5.12.dylib + 756053) [0x10c3d1955]
13 vtkSMSession::ConnectToSelf() + 62 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 1099486) [0x10f7cc6de]
13 vtkProcessModule::RegisterSession(vtkSession*) + 287 (libvtkRemotingCore-pv5.12.5.12.dylib + 129663) [0x10e30ca7f]
13 vtkSubjectHelper::InvokeEvent(unsigned long, void*, vtkObject*) + 1344 (libvtkCommonCore-pv5.12.5.12.dylib + 17649600) [0x11f481fc0]
13 vtkCallbackCommand::Execute(vtkObject*, unsigned long, void*) + 33 (libvtkCommonCore-pv5.12.5.12.dylib + 15706913) [0x11f2a7b21]
13 vtkQtConnection::EmitExecute(vtkObject*, unsigned long, void*, void*, vtkCommand*) + 108 (libvtkGUISupportQt-pv5.12.5.12.dylib + 59004) [0x10c86e67c]
13 void doActivate<false>(QObject*, int, void**) + 1477 (QtCore + 2277589) [0x11a0dc0d5]
13 pqServerManagerObserver::connectionCreated(long long) + 63 (libpqCore-pv5.12.5.12.dylib + 153519) [0x10c33e7af]
13 void doActivate<false>(QObject*, int, void**) + 1477 (QtCore + 2277589) [0x11a0dc0d5]
13 pqServerManagerModel::onConnectionCreated(long long) + 728 (libpqCore-pv5.12.5.12.dylib + 993912) [0x10c40ba78]
13 pqServerManagerModel::serverAdded(pqServer*) + 63 (libpqCore-pv5.12.5.12.dylib + 147599) [0x10c33d08f]
13 void doActivate<false>(QObject*, int, void**) + 1477 (QtCore + 2277589) [0x11a0dc0d5]
13 pqDefaultViewBehavior::onServerCreation(pqServer*) + 432 (libpqApplicationComponents-pv5.12.5.12.dylib + 673088) [0x10bc85540]
13 pqObjectBuilder::createView(QString const&, pqServer*) + 266 (libpqCore-pv5.12.5.12.dylib + 747834) [0x10c3cf93a]
13 vtkSMParaViewPipelineController::PreInitializeProxy(vtkSMProxy*) + 53 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 807525) [0x10f785265]
13 vtkSMParaViewPipelineController::SetupGlobalPropertiesLinks(vtkSMProxy*) + 12 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 792524) [0x10f7817cc]
13 vtkSMSettingsProxy::ProcessPropertyLinks(vtkSMProxy*) + 1096 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 1245880) [0x10f7f02b8]
13 vtkSMSettingsProxy::AddLink(char const*, vtkSMProxy*, char const*, bool) + 217 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 1241097) [0x10f7ef009]
13 vtkSMRenderViewProxy::UpdateVTKObjects() + 289 (libvtkRemotingViews-pv5.12.5.12.dylib + 1164625) [0x11b530551]
13 vtkSMProxy::UpdateVTKObjects() + 32 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 911232) [0x10f79e780]
13 vtkSMRenderViewProxy::CreateVTKObjects() + 49 (libvtkRemotingViews-pv5.12.5.12.dylib + 1157249) [0x11b52e881]
13 vtkSMViewProxy::CreateVTKObjects() + 29 (libvtkRemotingViews-pv5.12.5.12.dylib + 1401997) [0x11b56a48d]
13 vtkSMProxy::CreateVTKObjects() + 1907 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 914355) [0x10f79f3b3]
13 vtkPVSessionBase::PushState(paraview_protobuf::Message*) + 38 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 118166) [0x10f6dcd96]
13 vtkPVSessionCore::PushState(paraview_protobuf::Message*) + 48 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 127984) [0x10f6df3f0]
13 vtkPVSessionCore::PushStateInternal(paraview_protobuf::Message*) + 2625 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 127633) [0x10f6df291]
13 vtkSIProxy::Push(paraview_protobuf::Message*) + 39 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 237591) [0x10f6fa017]
13 vtkSIProxy::InitializeAndCreateVTKObjects(paraview_protobuf::Message*) + 2244 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 240692) [0x10f6fac34]
13 vtkSIProxy::ReadXMLAttributes(vtkPVXMLElement*) + 913 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 248625) [0x10f6fcb31]
13 vtkSIProxy::ReadXMLProperty(vtkPVXMLElement*) + 804 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 250404) [0x10f6fd224]
13 vtkSIVectorPropertyTemplate<int, int>::ReadXMLAttributes(vtkSIProxy*, vtkPVXMLElement*) + 274 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 228290) [0x10f6f7bc2]
13 vtkSIVectorPropertyTemplate<int, int>::Push(int*, int) + 719 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 229967) [0x10f6f824f]
13 vtkSIProperty::ProcessMessage(vtkClientServerStream&) + 52 (libvtkRemotingServerManager-pv5.12.5.12.dylib + 235540) [0x10f6f9814]
13 vtkClientServerInterpreter::ProcessStream(vtkClientServerStream const&) + 61 (libvtkRemotingClientServerStream-pv5.12.5.12.dylib + 28909) [0x10e1ca0ed]
13 vtkClientServerInterpreter::ProcessOneMessage(vtkClientServerStream const&, int) + 511 (libvtkRemotingClientServerStream-pv5.12.5.12.dylib + 29471) [0x10e1ca31f]
13 vtkClientServerInterpreter::ProcessCommandInvoke(vtkClientServerStream const&, int) + 277 (libvtkRemotingClientServerStream-pv5.12.5.12.dylib + 32229) [0x10e1cade5]
13 vtkClientServerInterpreter::CallCommandFunction(char const*, vtkObjectBase*, char const*, vtkClientServerStream const&, vtkClientServerStream&) + 657 (libvtkRemotingClientServerStream-pv5.12.5.12.dylib + 37585) [0x10e1cc2d1]
13 vtkPVRenderViewCommand(vtkClientServerInterpreter*, vtkObjectBase*, char const*, vtkClientServerStream const&, vtkClientServerStream&, void*) + 21859 (libvtkRemotingApplication-pv5.12.5.12.dylib + 1183507) [0x124fe1f13]
13 vtkPVRenderView::SetEnableOSPRay(bool) + 404 (libvtkRemotingViews-pv5.12.5.12.dylib + 788532) [0x11b4d4834]
13 vtkOutputWindowDisplayWarningText(char const*, int, char const*, vtkObject*) + 499 (libvtkCommonCore-pv5.12.5.12.dylib + 17669827) [0x11f486ec3]
13 vtkOutputWindow::DisplayWarningText(char const*) + 37 (libvtkCommonCore-pv5.12.5.12.dylib + 17673077) [0x11f487b75]
13 OutputWidgetInternals::OutputWindow::DisplayText(char const*) + 154 (libpqCore-pv5.12.5.12.dylib + 777914) [0x10c3d6eba]
13 MessageHandler::handlerVTK(QtMsgType, QString const&) + 67 (libpqCore-pv5.12.5.12.dylib + 768803) [0x10c3d4b23]
13 MessageHandler::showMessage(QString, QtMsgType) + 66 (libpqCore-pv5.12.5.12.dylib + 126322) [0x10c337d72]
13 void doActivate<false>(QObject*, int, void**) + 1157 (QtCore + 2277269) [0x11a0dbf95]
13 pqOutputWidget::displayMessage(QString const&, QtMsgType) + 132 (libpqCore-pv5.12.5.12.dylib + 768532) [0x10c3d4a14]
13 pqOutputWidget::messageDisplayed(QString const&, int) + 63 (libpqCore-pv5.12.5.12.dylib + 127327) [0x10c33815f]
13 void doActivate<false>(QObject*, int, void**) + 1477 (QtCore + 2277589) [0x11a0dc0d5]
13 ParaViewMainWindow::handleMessage(QString const&, int) + 329 (paraview + 88313) [0x102cea8f9]
13 QWidgetPrivate::setVisible(bool) + 806 (QtWidgets + 305798) [0x10c9a6a86]
13 QWidgetPrivate::show_helper() + 73 (QtWidgets + 302329) [0x10c9a5cf9]
13 QWidgetPrivate::showChildren(bool) + 359 (QtWidgets + 303255) [0x10c9a6097]
13 QWidgetPrivate::show_helper() + 73 (QtWidgets + 302329) [0x10c9a5cf9]
13 QWidgetPrivate::showChildren(bool) + 352 (QtWidgets + 303248) [0x10c9a6090]
13 QWidgetPrivate::setVisible(bool) + 806 (QtWidgets + 305798) [0x10c9a6a86]
13 QWidgetPrivate::show_helper() + 73 (QtWidgets + 302329) [0x10c9a5cf9]
13 QWidgetPrivate::showChildren(bool) + 359 (QtWidgets + 303255) [0x10c9a6097]
13 QWidgetPrivate::show_helper() + 73 (QtWidgets + 302329) [0x10c9a5cf9]
13 QWidgetPrivate::showChildren(bool) + 352 (QtWidgets + 303248) [0x10c9a6090]
13 QWidgetPrivate::setVisible(bool) + 806 (QtWidgets + 305798) [0x10c9a6a86]
13 QWidgetPrivate::show_helper() + 73 (QtWidgets + 302329) [0x10c9a5cf9]
13 QWidgetPrivate::showChildren(bool) + 352 (QtWidgets + 303248) [0x10c9a6090]
13 QWidgetPrivate::setVisible(bool) + 806 (QtWidgets + 305798) [0x10c9a6a86]
13 QWidgetPrivate::show_helper() + 73 (QtWidgets + 302329) [0x10c9a5cf9]
13 QWidgetPrivate::showChildren(bool) + 352 (QtWidgets + 303248) [0x10c9a6090]
13 QWidgetPrivate::setVisible(bool) + 806 (QtWidgets + 305798) [0x10c9a6a86]
13 QWidgetPrivate::show_helper() + 39 (QtWidgets + 302295) [0x10c9a5cd7]
13 QWidgetPrivate::sendPendingMoveAndResizeEvents(bool, bool) + 268 (QtWidgets + 278396) [0x10c99ff7c]
13 QCoreApplication::notifyInternal2(QObject*, QEvent*) + 212 (QtCore + 2066996) [0x11a0a8a34]
13 QApplication::notify(QObject*, QEvent*) + 497 (QtWidgets + 73233) [0x10c96de11]
13 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 245 (QtWidgets + 68053) [0x10c96c9d5]
13 QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 155 (QtCore + 2067691) [0x11a0a8ceb]
13 QFrame::event(QEvent*) + 45 (QtWidgets + 996749) [0x10ca4f58d]
13 QWidget::event(QEvent*) + 1135 (QtWidgets + 307375) [0x10c9a70af]
13 QTextEdit::resizeEvent(QResizeEvent*) + 181 (QtWidgets + 1932293) [0x10cb33c05]
13 QTextEditPrivate::relayoutDocument() + 453 (QtWidgets + 1924117) [0x10cb31c15]
13 QTextDocumentLayout::documentChanged(int, int, int) + 1239 (QtGui + 1551047) [0x10e858ac7]
13 QTextDocumentLayout::doLayout(int, int, int) + 536 (QtGui + 1552344) [0x10e858fd8]
13 QTextDocumentLayoutPrivate::layoutFrame(QTextFrame*, int, int, QFixed) + 1129 (QtGui + 1535177) [0x10e854cc9]
13 QTextDocumentLayoutPrivate::layoutFrame(QTextFrame*, int, int, QFixed, QFixed, QFixed) + 3419 (QtGui + 1538827) [0x10e855b0b]
13 QTextDocumentLayoutPrivate::layoutFlow(QTextFrame::iterator, QTextLayoutStruct*, int, int, QFixed) + 2741 (QtGui + 1501541) [0x10e84c965]
13 QTextDocumentLayoutPrivate::layoutBlock(QTextBlock const&, int, QTextBlockFormat const&, QTextLayoutStruct*, int, int, QTextBlockFormat const*) + 2485 (QtGui + 1543269) [0x10e856c65]
13 QTextLine::layout_helper(int) + 805 (QtGui + 1233141) [0x10e80b0f5]
13 QTextEngine::shapeText(int) const + 664 (QtGui + 1132248) [0x10e7f26d8]
13 QTextEngine::fontEngine(QScriptItem const&, QFixed*, QFixed*, QFixed*) const + 608 (QtGui + 1138480) [0x10e7f3f30]
13 QFontPrivate::engineForScript(int) const + 451 (QtGui + 925955) [0x10e7c0103]
13 QFontDatabase::load(QFontPrivate const*, int) + 3210 (QtGui + 1111290) [0x10e7ed4fa]
13 QFontDatabase::findFont(QFontDef const&, int) + 720 (QtGui + 1100848) [0x10e7eac30]
13 QCoreTextFontDatabase::populateFamilyAliases(QString const&) + 1493 (libqcocoa.dylib + 539029) [0x1636ac995]
13 QDebug::~QDebug() + 104 (QtCore + 1220536) [0x119fd9fb8]
13 qt_message_output(QtMsgType, QMessageLogContext const&, QString const&) + 13 (QtCore + 122141) [0x119ecdd1d]
13 qt_message_print(QtMsgType, QMessageLogContext const&, QString const&) + 208 (QtCore + 122384) [0x119ecde10]
13 MessageHandler::handler(QtMsgType, QMessageLogContext const&, QString const&) + 130 (libpqCore-pv5.12.5.12.dylib + 768162) [0x10c3d48a2]
13 MessageHandler::message(QtMsgType, QString const&) + 63 (libpqCore-pv5.12.5.12.dylib + 126223) [0x10c337d0f]
13 void doActivate<false>(QObject*, int, void**) + 1157 (QtCore + 2277269) [0x11a0dbf95]
13 MessageHandler::displayMessage(QtMsgType, QString const&) + 322 (libpqCore-pv5.12.5.12.dylib + 767394) [0x10c3d45a2]
13 vtkOutputWindow::DisplayWarningText(char const*) + 37 (libvtkCommonCore-pv5.12.5.12.dylib + 17673077) [0x11f487b75]
13 OutputWidgetInternals::OutputWindow::DisplayText(char const*) + 33 (libpqCore-pv5.12.5.12.dylib + 777793) [0x10c3d6e41]
13 QMutex::lock() + 40 (QtCore + 144392) [0x119ed3408]
13 semaphore_wait_trap + 10 (libsystem_kernel.dylib + 4938) [0x7ff81099034a]
*13 ??? (kernel.release.t8103 + 649896) [0xfffffe00085baaa8]
Suggested fix
In vtkPVRenderView::SetEnableOspray()
, change the conditional
if (!vtkOSPRayPass::IsSupported())
``
to
if (v &&!vtkOSPRayPass::IsSupported())
This will check for OSPRay support only if it is requested to be turned on.