<p>For operating systems like Windows and Linux, your first picture is the most correct and the answer to your second and third sentences is yes.</p>
<p>But you could also imagine an OS for a gaming console, for example, that exposes a graphics interface at a higher and more convenient level of abstraction to make it easier to make games.  Such an interface may call a Vulkan driver to do the actual GPU programming or might go right to the hardware.</p>

CC BY-SA 4.0
2024-08-22T14:16:41.417Z
2024-08-22T14:16:41.417Z
Karl Schultz
<p>When graphics card vendors like Nvidia / AMD write drivers for their cards, what API is exposed for the OS. Is it APIs like OpenGL / Vulkan / DirectX? If so does the apps that can consume such APIs, connect with the driver directly? Eg:</p>
<pre><code>Fig 1:
 __________                   _______________ 
|          |  DiretX/Vulkan  |        |      |
| Game/App |-----------------| Driver | Card |
|__________|                 |________|______|
</code></pre>
<p>Or does the driver and the OS communicate using some other API or protocol which the OS then translates to DirectX, Vulkan, etc for the apps. Eg:</p>
<pre><code>Fig 2:
 __________                   ______________        _______________ 
|          |  DiretX/Vulkan  |              |  ??  |        |      |
| Game/App |-----------------| OS Interface |------| Driver | Card |
|__________|                 |______________|      |________|______|
</code></pre>

CC BY-SA 4.0
2024-08-23T20:14:58.170Z
The second figure should have an API box between the Game/App and the OS interface. The game/app would  make calls to the API, *some* of those calls will do work and return without calling the OS or driver. Other calls would go through the OS->driver interface.
pmw1234
<opengl><vulkan><directx><driver>
What API is exposed by the graphics card's driver to the OS or the apps?
eee
# What API is exposed by the graphics card's driver to the OS or the apps?

(Asked by: username_0 on 2024-08-21)

When graphics card vendors like Nvidia / AMD write drivers for their cards, what API is exposed for the OS. Is it APIs like OpenGL / Vulkan / DirectX? If so does the apps that can consume such APIs, connect with the driver directly? Eg:

```
Fig 1:
 __________                   _______________ 
|          |  DiretX/Vulkan  |        |      |
| Game/App |-----------------| Driver | Card |
|__________|                 |________|______|

```

Or does the driver and the OS communicate using some other API or protocol which the OS then translates to DirectX, Vulkan, etc for the apps. Eg:

```
Fig 2:
 __________                   ______________        _______________ 
|          |  DiretX/Vulkan  |              |  ??  |        |      |
| Game/App |-----------------| OS Interface |------| Driver | Card |
|__________|                 |______________|      |________|______|

```

**Tags:** opengl, vulkan, directx, driver

> **Comments:**
> **username_1**: The second figure should have an API box between the Game/App and the OS interface. The game/app would  make calls to the API, *some* of those calls will do work and return without calling the OS or driver. Other calls would go through the OS->driver interface.  

---

## 1 answers

### Answer by username_2 on 2024-08-22. Score: 0 | Accepted answer

For operating systems like Windows and Linux, your first picture is the most correct and the answer to your second and third sentences is yes.

But you could also imagine an OS for a gaming console, for example, that exposes a graphics interface at a higher and more convenient level of abstraction to make it easier to make games. Such an interface may call a Vulkan driver to do the actual GPU programming or might go right to the hardware.


---

