diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c index e15932526e40804e9aac18ff2adaa04fe27e84e6..10c6e689ad39cc33d9f3f8a3555d5a962e2fbb6e 100644 --- a/src/backends/native/meta-renderer-native.c +++ b/src/backends/native/meta-renderer-native.c @@ -4109,6 +4109,19 @@ choose_primary_gpu_unchecked (MetaBackend *backend, */ for (allow_sw = 0; allow_sw < 2; allow_sw++) { + /* First, consider hardware-accelerated secondary GPUs with connected + * outputs (like eGPUs) + */ + for (l = gpus; l; l = l->next) + { + MetaGpuKms *gpu_kms = META_GPU_KMS (l->data); + + if (!meta_gpu_kms_is_boot_vga (gpu_kms) && + meta_gpu_kms_can_have_outputs (gpu_kms) && + gpu_kms_is_hardware_rendering (renderer_native, gpu_kms)) + return gpu_kms; + } + /* Prefer a platform device */ for (l = gpus; l; l = l->next) {