Skip to content

Commit add3d07

Browse files
committedAug 8, 2018
[opencl] Fix device selection on start
1 parent d846804 commit add3d07

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed
 

‎src/app/qgsoptions.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,13 +1090,16 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QList<QgsOpti
10901090

10911091
for ( const auto &dev : QgsOpenClUtils::devices( ) )
10921092
{
1093-
mOpenClDevicesCombo->addItem( QgsOpenClUtils::deviceId( dev ), QgsOpenClUtils::deviceId( dev ) );
1093+
mOpenClDevicesCombo->addItem( QgsOpenClUtils::deviceInfo( QgsOpenClUtils::Info::Name, dev ), QgsOpenClUtils::deviceId( dev ) );
10941094
}
1095-
connect( mOpenClDevicesCombo, qgis::overload< int >::of( &QComboBox::currentIndexChanged ), [ = ]( int )
1095+
// Info updater
1096+
std::function<void( int )> infoUpdater = [ = ]( int )
10961097
{
10971098
mGPUInfoLabel->setText( QgsOpenClUtils::deviceDescription( mOpenClDevicesCombo->currentData().toString() ) );
1098-
} );
1099+
};
1100+
connect( mOpenClDevicesCombo, qgis::overload< int >::of( &QComboBox::currentIndexChanged ), infoUpdater );
10991101
mOpenClDevicesCombo->setCurrentIndex( mOpenClDevicesCombo->findData( QgsOpenClUtils::deviceId( QgsOpenClUtils::activeDevice() ) ) );
1102+
infoUpdater( -1 );
11001103
}
11011104
else
11021105
{

‎src/core/qgsopenclutils.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,10 @@ QString QgsOpenClUtils::deviceInfo( const Info infoType, cl::Device device )
149149
}
150150
catch ( cl::Error &e )
151151
{
152-
QgsMessageLog::logMessage( QObject::tr( "Error %1 getting info for OpenCL device: %2" )
153-
.arg( errorText( e.err() ), QString::fromStdString( e.what() ) ),
154-
LOGMESSAGE_TAG, Qgis::Critical );
152+
// This can be a legitimate error when initializing, let's log it quietly
153+
QgsDebugMsgLevel( QStringLiteral( "Error %1 getting info for OpenCL device: %2" )
154+
.arg( errorText( e.err() ), QString::fromStdString( e.what() ) ),
155+
4 );
155156
return QString();
156157
}
157158
}
@@ -193,7 +194,7 @@ QString QgsOpenClUtils::deviceId( const cl::Device device )
193194

194195
bool QgsOpenClUtils::activate( const QString preferredDeviceId )
195196
{
196-
if ( preferredDeviceId.isEmpty() || deviceId( activeDevice() ) == preferredDeviceId )
197+
if ( deviceId( activeDevice() ) == preferredDeviceId )
197198
{
198199
return false;
199200
}
@@ -275,6 +276,7 @@ bool QgsOpenClUtils::activate( const QString preferredDeviceId )
275276
QString QgsOpenClUtils::deviceDescription( const cl::Device device )
276277
{
277278
return QStringLiteral(
279+
"Type: <b>%9</b><br>"
278280
"Name: <b>%1</b><br>"
279281
"Vendor: <b>%2</b><br>"
280282
"Profile: <b>%3</b><br>"
@@ -290,7 +292,8 @@ QString QgsOpenClUtils::deviceDescription( const cl::Device device )
290292
QgsOpenClUtils::deviceInfo( QgsOpenClUtils::Info::ImageSupport, device ),
291293
QgsOpenClUtils::deviceInfo( QgsOpenClUtils::Info::Image2dMaxWidth, device ),
292294
QgsOpenClUtils::deviceInfo( QgsOpenClUtils::Info::Image2dMaxHeight, device ),
293-
QgsOpenClUtils::deviceInfo( QgsOpenClUtils::Info::MaxMemAllocSize, device ) );
295+
QgsOpenClUtils::deviceInfo( QgsOpenClUtils::Info::MaxMemAllocSize, device ),
296+
QgsOpenClUtils::deviceInfo( QgsOpenClUtils::Info::Type, device ) );
294297
}
295298

296299
QString QgsOpenClUtils::deviceDescription( const QString deviceId )

0 commit comments

Comments
 (0)
Please sign in to comment.