diff --git a/common/flatpak-run.c b/common/flatpak-run.c index ad83f2635..135af5ac7 100644 --- a/common/flatpak-run.c +++ b/common/flatpak-run.c @@ -2530,23 +2530,25 @@ flatpak_run_add_environment_args (GPtrArray *argv_array, if (context->devices & FLATPAK_CONTEXT_DEVICE_DRI) { g_debug ("Allowing dri access"); - if (g_file_test ("/dev/dri", G_FILE_TEST_IS_DIR)) - add_args (argv_array, "--dev-bind", "/dev/dri", "/dev/dri", NULL); - if (g_file_test ("/dev/mali", G_FILE_TEST_EXISTS)) + int i; + char *dri_devices[] = { + "/dev/dri", + /* mali */ + "/dev/mali", + "/dev/umplock", + /* nvidia */ + "/dev/nvidiactl", + "/dev/nvidia0", + "/dev/nvidia-modeset", + }; + + for (i = 0; i < G_N_ELEMENTS(dri_devices); i++) { - add_args (argv_array, - "--dev-bind", "/dev/mali", "/dev/mali", - "--dev-bind", "/dev/umplock", "/dev/umplock", - NULL); - } - if (g_file_test ("/dev/nvidiactl", G_FILE_TEST_EXISTS)) - { - add_args (argv_array, - "--dev-bind", "/dev/nvidiactl", "/dev/nvidiactl", - "--dev-bind", "/dev/nvidia0", "/dev/nvidia0", - NULL); + if (g_file_test (dri_devices[i], G_FILE_TEST_EXISTS)) + add_args (argv_array, "--dev-bind", dri_devices[i], dri_devices[i], NULL); } } + if (context->devices & FLATPAK_CONTEXT_DEVICE_KVM) { g_debug ("Allowing kvm access");