diff --git a/src/platforms/gbm-kms/server/kms/real_kms_output_container.cpp b/src/platforms/gbm-kms/server/kms/real_kms_output_container.cpp
index dfe9e5cce8..90ce85487c 100644
--- a/src/platforms/gbm-kms/server/kms/real_kms_output_container.cpp
+++ b/src/platforms/gbm-kms/server/kms/real_kms_output_container.cpp
@@ -14,10 +14,12 @@
* along with this program. If not, see .
*/
+#define MIR_LOG_COMPONENT "gbm-kms"
#include
#include "real_kms_output_container.h"
#include "real_kms_output.h"
#include "kms-utils/drm_mode_resources.h"
+#include
namespace mgg = mir::graphics::gbm;
@@ -55,6 +57,12 @@ void mgg::RealKMSOutputContainer::update_from_hardware_state()
drm_fd == candidate->drm_fd();
});
+ if (connector->connection != DRM_MODE_CONNECTED)
+ {
+ mir::log_warning("Connector is not connected, so not adding this output to the list.");
+ continue;
+ }
+
if (existing_output != outputs.end())
{
// We could drop this down to O(n) by being smarter about moving out