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
Code of Conduct Yes
In-person or virtual presentation In-person
For which conference do you send the proposal? X.Org Developers Conference 2022

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