diff options
author | Patrick Griffis <tingping@tingping.se> | 2019-02-10 15:13:10 -0500 |
---|---|---|
committer | Patrick Griffis <tingping@tingping.se> | 2019-02-10 15:27:47 -0500 |
commit | 6955c1fee6dd6ceb6f87691aa2f175b468a95b69 (patch) | |
tree | 4571ec6cec3a40e289104d367b1fa91d2845a8f4 | |
parent | 61f44231fed99d3ce47dd5f119b1d9d18af691f1 (diff) | |
download | flatpak-wip/tingping/nvidia-multiple-devices.tar.gz |
Support multiple nvidia cardswip/tingping/nvidia-multiple-devices
-rw-r--r-- | common/flatpak-run.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/common/flatpak-run.c b/common/flatpak-run.c index e967c836..dabb0087 100644 --- a/common/flatpak-run.c +++ b/common/flatpak-run.c @@ -1076,7 +1076,6 @@ flatpak_run_add_environment_args (FlatpakBwrap *bwrap, "/dev/umplock", /* nvidia */ "/dev/nvidiactl", - "/dev/nvidia0", "/dev/nvidia-modeset", /* nvidia OpenCL/CUDA */ "/dev/nvidia-uvm", @@ -1088,6 +1087,16 @@ flatpak_run_add_environment_args (FlatpakBwrap *bwrap, if (g_file_test (dri_devices[i], G_FILE_TEST_EXISTS)) flatpak_bwrap_add_args (bwrap, "--dev-bind", dri_devices[i], dri_devices[i], NULL); } + + /* Each Nvidia card gets its own device. + This is a fairly arbitrary limit but ASUS sells mining boards supporting 20 in theory. */ + char nvidia_dev[14]; /* /dev/nvidia plus up to 2 digits */ + for (i = 0; i < 20; i++) + { + g_snprintf (nvidia_dev, sizeof (nvidia_dev), "/dev/nvidia%d", i); + if (g_file_test (nvidia_dev, G_FILE_TEST_EXISTS)) + flatpak_bwrap_add_args (bwrap, "--dev-bind", nvidia_dev, nvidia_dev, NULL); + } } if (context->devices & FLATPAK_CONTEXT_DEVICE_KVM) |