Implementing the graphics pipeline on compute

6 Oct 2022, 13:45
45m
201 (Opus Hall)

201

Opus Hall

30 S 10th Street, Minneapolis, MN
Talk (full slot, Wineconf and FOSS XR only) Main Track

Speaker

Erik Faye-Lund (Collabora)

Description

Over the last decade or so, the GPU has gone from something of a
nice-to-have feature to an absolute must, across a lot of industries. You
can hardly boot a modern system without supporting Vulkan or OpenGL (ES).

Technologies such as LLVMpipe has allowed us to emulate such hardware, at
a significant performance and memory bandwidth loss. It's proven very
useful for purposes such as bringing up new platforms before GPU support
has been added, for instance. And it can be a great solution in some cases
where the amount of data to process is low.

But in some industries, the needs for compute-pipeline processing power
greatly outweigh the needs for graphics-pipeline processing power. Yet
most GPUs still have fixed function graphics-pipeline support, such as
primitive assembly, rasterization, blending. Implementing these in
hardware is a very time-consuming task, and can sometimes brings little
benefit.

For instance, a modern camera processor needs to perform heavy image
processing algorithms, even though it might not have a display. In such
cases, a GPU compute kernel is typically used.

It should be entirely possible to implement a reusable graphics pipeline
on top of the compute-pipeline, paving the way for simpler GPU designs
while still remaining useful. Think of this approach as something like
LLVMpipe, except generating compute shader kernels instead of CPU code.

Implementing a compute-shader-only GPU is something that's much more
feasible for new players, for instance for an initial open source GPU
design.

GSoC, EVoC or Outreachy No
For which conference do you send the proposal? X.Org Developers Conference 2022
In-person or virtual presentation In-person
Code of Conduct Yes

Primary author

Erik Faye-Lund (Collabora)

Presentation Materials

There are no materials yet.
2022 Platinum Sponsor
CodeWeavers

2022 Gold Sponsors
Arm

NVIDIA

AMD

Google

Microsoft

2022 Silver Sponsors
Collabora

Igalia

FEX-Emu

The Linux Foundation

2022 Bronze Sponsors
Khronos

2022 Supporters