Userspace and kernel version mix+matching #381
Replies: 2 comments 2 replies
-
This can be explored, but please note that it comes with a significant engineering cost (not just for us; as far as I understand, Mesa expends significant time and energy on maintaining legacy interfaces to make that work). There is already a set of stable driver ABIs defined by specifications such as GLX, OpenGL, Vulkan, X11, etc. In my personal opinion, mixing and matching internal driver components is slicing the software stack in the wrong place. |
Beta Was this translation helpful? Give feedback.
-
I can not recommend this for anything even resembling production use, but if you're just playing around, it's worth knowing about the #define NV_RM_API_VERSION_CMD_STRICT 0 // default, exact match
#define NV_RM_API_VERSION_CMD_RELAXED '1' // only require major (i.e. 515.xx) version match
#define NV_RM_API_VERSION_CMD_OVERRIDE '2' // always match even across major versions (i.e. 470.xx / 515.xx) The code to evaluate this is at https://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/src/nvidia/arch/nvalloc/unix/src/osapi.c#L997-L1099 Keeping in mind that there is a good reason why the default is strict, and that things can and do break when you mix-and-match, this knob can still be very useful when testing out smaller applications and tools. |
Beta Was this translation helpful? Give feedback.
-
Would this ever be possible with the Nvidia drivers? It's a major PITA to use them with Flatpak or any form of sandboxing, since the userspace components need to perfectly match the kernel modules.
Why can't these drivers (or even the old ones) allow userspace mismatching and still function? Mesa can do it just fine.
Beta Was this translation helpful? Give feedback.
All reactions