Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
freem
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Openai/69676758-d944-8003-a3d4-835e33b4e372
(section)
Add languages
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Assistant: They are formal driver models and kernel interfaces defined by the operating system. === They are formal driver models and kernel interfaces defined by the operating system. GPU vendors must implement them to plug their hardware into the OS. Below is a precise breakdown, without hand-waving. ==== ### ==== This is the core interface. It defines: * How the GPU is scheduled and preempted * Video memory management * Context isolation between processes * Display modesetting and scanout ownership * Power management * Multi-GPU behavior GPU vendors provide: * A kernel-mode driver (dxgkrnl interface) * One or more user-mode drivers: - Direct3D (D3D11/12) - Vulkan - OpenGL Windows itself: * Owns the desktop compositor (DWM) * Enforces security and stability rules * Does not know GPU internals ==== Linux splits graphics into several interfaces. ==== ===== Kernel-space interface that defines: ===== * GPU memory objects (GEM/TTM) * Command submission * Scheduling and fences * Display control (CRTCs, planes, connectors) * Atomic modesetting Vendors implement: * Kernel drivers (amdgpu, i915, nouveau, nvidia-drm) ===== These sit on top of DRM: ===== * Vulkan (via vendor ICD) * OpenGL (usually via Mesa) * EGL / GBM (buffer management and window system glue) The window system (Wayland/X11) never touches the hardware directly. ==== ### ==== Apple tightly controls this stack. * GPU drivers are written by Apple (sometimes with vendor cooperation) * Metal is the only first-class graphics API * Display management is integrated into the OS Third-party low-level access does not exist. ==== They all define: ==== * How commands enter the GPU * How memory is shared and isolated * How display ownership works * How preemption and fault handling occur They explicitly hide: * Command encodings * Display PHY details (DP/HDMI) * PCIe transactions * Scanout timing internals ==== Your code path stops here: ==== <syntaxhighlight>Your code β Vulkan / DirectX β User-mode driver β Kernel driver (WDDM / DRM) β Hardware </syntaxhighlight> You never cross the API boundary. ==== OS interfaces are formal contracts between the OS and GPU vendors. ==== They are not optional, and they are not bypassable in normal applications. If you want, I can map a single Vulkan call all the way down to which OS interface handles it, step by step.
Summary:
Please note that all contributions to freem are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 (see
Freem:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)