mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2025-04-13 20:11:35 +00:00
Allow graphics mount discoverer to be instantiated independently
Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
parent
0b6cd7e90e
commit
9b33c34a57
@ -33,6 +33,28 @@ import (
|
|||||||
func NewGraphicsDiscoverer(logger *logrus.Logger, devices image.VisibleDevices, cfg *Config) (Discover, error) {
|
func NewGraphicsDiscoverer(logger *logrus.Logger, devices image.VisibleDevices, cfg *Config) (Discover, error) {
|
||||||
root := cfg.Root
|
root := cfg.Root
|
||||||
|
|
||||||
|
mounts, err := NewGraphicsMountsDiscoverer(logger, root)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to create mounts discoverer: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
drmDeviceNodes, err := newDRMDeviceDiscoverer(logger, devices, root)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to create DRM device discoverer: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
drmByPathSymlinks := newCreateDRMByPathSymlinks(logger, drmDeviceNodes, cfg)
|
||||||
|
|
||||||
|
discover := Merge(
|
||||||
|
Merge(drmDeviceNodes, drmByPathSymlinks),
|
||||||
|
mounts,
|
||||||
|
)
|
||||||
|
|
||||||
|
return discover, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewGraphicsMountsDiscoverer creates a discoverer for the mounts required by graphics tools such as vulkan.
|
||||||
|
func NewGraphicsMountsDiscoverer(logger *logrus.Logger, root string) (Discover, error) {
|
||||||
locator, err := lookup.NewLibraryLocator(logger, root)
|
locator, err := lookup.NewLibraryLocator(logger, root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to construct library locator: %v", err)
|
return nil, fmt.Errorf("failed to construct library locator: %v", err)
|
||||||
@ -62,15 +84,7 @@ func NewGraphicsDiscoverer(logger *logrus.Logger, devices image.VisibleDevices,
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
drmDeviceNodes, err := newDRMDeviceDiscoverer(logger, devices, root)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to create DRM device discoverer: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
drmByPathSymlinks := newCreateDRMByPathSymlinks(logger, drmDeviceNodes, cfg)
|
|
||||||
|
|
||||||
discover := Merge(
|
discover := Merge(
|
||||||
Merge(drmDeviceNodes, drmByPathSymlinks),
|
|
||||||
libraries,
|
libraries,
|
||||||
jsonMounts,
|
jsonMounts,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user