plugins/gpu: Use pci address to identify nvidia gpus
The DRM index does not correspond to the nvidia index. Identify cards by their pci addresses and derive the index from the position in the query. BUG:463033 BUG:461361 FIXED-IN:5.27
-
-
Developer
This causes a compile failure for me:
/home/nate/kde/src/ksystemstats/plugins/network/NetworkManagerBackend.cpp:166:44: required from here /usr/include/c++/12/bits/stl_numeric.h:169:29: error: no match for call to '(NetworkManagerDevice::update()::<lambda(QString&&, const QHostAddress&)>) (QString&, QHostAddress&)' 169 | __init = __binary_op(_GLIBCXX_MOVE_IF_20(__init), *__first); | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/12/bits/stl_numeric.h:169:29: note: candidate: 'QString (*)(QString&&, const QHostAddress&)' (conversion) /usr/include/c++/12/bits/stl_numeric.h:169:29: note: conversion of argument 2 would be ill-formed: /usr/include/c++/12/bits/stl_numeric.h:169:30: error: cannot bind rvalue reference of type 'QString&&' to lvalue of type 'QString' 169 | __init = __binary_op(_GLIBCXX_MOVE_IF_20(__init), *__first); | ^~~~~~~~~~~~~~~~~~~ /home/nate/kde/src/ksystemstats/plugins/network/NetworkManagerBackend.cpp:156:36: note: candidate: 'NetworkManagerDevice::update()::<lambda(QString&&, const QHostAddress&)>' (near match) 156 | auto dnsAccumulationFunction = [](QString &&a, const QHostAddress& b) { return std::move(a).append(", ").append(b.toString()); }; | ^ /home/nate/kde/src/ksystemstats/plugins/network/NetworkManagerBackend.cpp:156:36: note: conversion of argument 1 would be ill-formed: /usr/include/c++/12/bits/stl_numeric.h:169:30: error: cannot bind rvalue reference of type 'QString&&' to lvalue of type 'QString' 169 | __init = __binary_op(_GLIBCXX_MOVE_IF_20(__init), *__first); | ^~~~~~~~~~~~~~~~~~~ gmake[2]: *** [plugins/network/CMakeFiles/ksystemstats_plugin_network.dir/build.make:146: plugins/network/CMakeFiles/ksystemstats_plugin_network.dir/NetworkManagerBackend.cpp.o] Error 1
For now I've managed to work around it with this change:
diff --git plugins/network/NetworkManagerBackend.cpp plugins/network/NetworkManagerBackend.cpp index d72b7a1..45197e9 100644 --- plugins/network/NetworkManagerBackend.cpp +++ plugins/network/NetworkManagerBackend.cpp @@ -153,7 +153,7 @@ void NetworkManagerDevice::update() setName(m_device->activeConnection()->connection()->name()); m_networkSensor->setValue(name()); - auto dnsAccumulationFunction = [](QString &&a, const QHostAddress& b) { return std::move(a).append(", ").append(b.toString()); }; + auto dnsAccumulationFunction = [](QString &a, const QHostAddress& b) { return std::move(a).append(", ").append(b.toString()); }; if (m_device->ipV4Config().isValid()) { auto ipv4 = m_device->ipV4Config().addresses().at(0).ip().toString(); m_ipv4Sensor->setValue(ipv4);
-
Author Developer
-
Developer
Thanks, fixed now.
-