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.

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

Primary author

Erik Faye-Lund (Collabora)

Presentation Materials

2023 Platinum Sponsor
Igalia
2023 Gold Sponsors
Google
Collabora
Arm
Microsoft
2023 Silver Sponsors
FEX-Emu
The Linux Foundation
AMD
Qualcomm
2023 Bronze Sponsors
Khronos Group
CodeWeavers
2023 Supporters
A Coruña Turismo
GPUL
Raspberry Pi