SlideShare a Scribd company logo
1 of 37
Download to read offline
The Rainbow Treasure Map
Advanced Color Management on Linux with AMD/SteamDeck
Melissa Wen
XDC 2023 - A Coruña - Spain
1
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Technical Talk
2
1. XDC 2022 | "I'm not an AMD expert, but..." | Melissa Wen
2. XDC 2022 | Is HDR Harder? | Harry Wentland
3. XDC 2022 Lightning | HDR Workshop Summary | Harry Wentland
4. Color management and HDR documentation for FOSS graphics | Pekka Paalanen et al.
5. Cinematic Color - 2012 SIGGRAPH course notes | Jeremy Selan
6. AMD Driver-specific Properties for Color Management on Linux (Part 1) | Melissa Wen
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Advanced Color Management on Linux
● Wide variety of source content colorimetry (SDR/HDR/different
color gamuts, profiles, etc.)
● Wide variety of output display devices
● Internal processing (window composition, etc)
● Users expect consistent color reproduction
● Linux kernel lacks an interface to manage the diversity of color
profiles
3
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Driver-Specific Color Properties
[PATCH v4 00/32] drm/amd/display: add AMD driver-specific properties for color mgmt
➔ Endless KMS generic color API
➔ Many uncertainties regarding the diversity of color capabilities among hardware
vendors
➔ Gamescope is the userspace case (SteamOS 3.5)
➔ Advanced color management: gamut mapping, HDR rendering, SDR on HDR,
HDR on SDR
4
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Steam Deck Kernel Driver
➔ Accelerated Processing Unit (APU)
➔ Product Name: STEAMDECK
➔ Code Reference: VANGOGH
➔ Display Driver: DCN3.01 (DCN3 family)
5
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Display Driver in the Linux/DRM
DRM/KMS
AMD Display Manager (DM)
AMD Display Core (DC)
kernel space
6
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Connecting DC and DRM
DRM/KMS
AMD Display Manager (DM)
AMD Display Core (DC)
kernel space
7
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Examining AMD DC
DRM/KMS
AMD Display Manager (DM)
AMD Display Core (DC)
kernel space
8
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Display Core Next (DCN)
9
https://dri.freedesktop.org/docs/drm/gpu/amdgpu/display/dcn-overview.html
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Display Core Next (DCN) - Color Caps
10
Pre-blending
DPP: Display Pipe and Plane
Post-blending
MPC: Multiple Pipe/Plane Combined
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane
11
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane
12
John Travolta in Pulp Fiction
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamma
Corr
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
AMD DC
13
Blending
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamma
Corr
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
AMD DC
14
Blending
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
AMD DC
15
Blending
Gamma
Corr
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
16
Blending
Gamma
Corr
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Plane Degamma TF and LUT
Transition from encoded values to linear values for precise arithmetic operations
Pre-defined TFs are hardcoded curves to DPP Degamma ROM block
● sRGB EOTF;
● BT.709 inverse OETF;
● PQ EOTF;
● Gamma 2.2, Gamma 2.4 and Gamma 2.6 EOTF
1D LUT supports 4096 entries to DPP Gamma Correction block
The data is interpreted as an array of struct drm_color_lut elements
17
input func
Degam
ROM
Gamma
Corr
Degamma
LUT
Degamma
TF
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
18
Blending
Gamma
Corr
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Plane CTM
For color space conversion
3x4-dimensions matrix of fixed-points s31.32 set to DPP Gamut Remap block
Remapping CRTC CTM to MPC Gamut Remap block
19
gamut
remap
Gamut
Remap
CTM
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
20
Blending
Gamma
Corr
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
21
Blending
Gamma
Corr
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Plane HDR Multiplier
Applied to the color values of an image to increase their overall brightness
Useful for converting images from SDR to HDR
PQ TF is needed for any subsequent transforms
22
hdr
mult
HDR
Mult
HDR
Mult
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
23
Blending
Gamma
Corr
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Plane Shaper TF and LUT
Delinearize/normalize the color space before applying a 3D LUT
NO hardcoded curves
Pre-defined TFs are calculated by AMD color module
● sRGB inverse EOTF;
● BT.709 OETF;
● PQ inverse EOTF;
● Gamma 2.2, Gamma 2.4 and Gamma 2.6 inverse EOTF.
The color module combines TF and user LUT into the LUT to DPP Shaper LUT RAM block
24
shaper
func
Shaper
RAM
Shaper
TF
Shaper
LUT
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
25
Blending
Gamma
Corr
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Plane 3D LUT
Suitable for complex color transformations and adjustments between color channels
Supported size: 17x17x17 (4913 entries) and 9x9x9 (729)
Tetrahedral interpolation
Blue is the outermost dimension, red the innermost.
26
3dlut
func
3D LUT
3D LUT
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
27
Blending
Gamma
Corr
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD Plane Blend TF and LUT
Linearize the color space again, after 3D LUT and before blending
NO hardcoded curves
Pre-defined TFs are calculated by AMD color module
● sRGB EOTF;
● BT.709 inverse OETF;
● PQ EOTF;
● Gamma 2.2, Gamma 2.4 and Gamma 2.6 EOTF.
The color module combines TF and user LUT into the LUT to DPP Blend Gamma block
28
blend
func
Blend
Gamma
Blend
TF
Blend
LUT
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Pre-blending: DRM plane + AMD DC DPP
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
29
Blending
Gamma
Corr
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Post-blending: DRM CRTC + AMD DC MPC
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
TF
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
30
Blending
Gamma
Corr
Blend
Gamma
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
AMD CRTC Gamma TF
Delinearize/convert to wire encoding
NO hardcoded curves
Pre-defined TFs are calculated by AMD color module
● sRGB inverse EOTF;
● BT.709 OETF;
● PQ inverse EOTF;
● Gamma 2.2, Gamma 2.4 and Gamma 2.6 inverse EOTF.
The color module combines TF and user LUT into the LUT to MPC Gamma RAM block.
31
Gamma
TF
Gamma
LUT
out
func
Gamma
RAM
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
DRM/AMD Color Management Pipeline
input func gamut
remap
hdr
mult
shaper
func
3dlut
func
blend
func
Degam
ROM
Gamut
Remap
HDR
Mult
Shaper
RAM
3D LUT Blend
Gamma
Degamma
LUT
CTM
HDR
Mult
Shaper
TF
3D LUT
Degamma
TF
Blend
TF
Shaper
LUT
Blend
LUT
DRM/AMD plane
CTM
gamut
remap
Gamut
Remap
Gamma
TF
Gamma
LUT
Degam
LUT
out
func
Gamma
RAM
DRM CRTC
32
Blending
Gamma
Corr
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023 33
Steam Deck Color Pipeline
AMD Driver-Specific Color Properties
Image by catalyststuff on Freepik
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023 34
https://github.com/ValveSoftware/gamescope/blob/master/src/docs/Steam%20Deck%20Display%20Pipeline.png
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023 35
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
The search for the Rainbow
treasure is not over!
36
The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck
Melissa Wen, XDC 2023
Thank You!
We're hiring
www.igalia.com/jobs
37

More Related Content

Similar to The rainbow treasure map: Advanced color management on Linux with AMD/Steam Deck – XDC 2023

A beginner’s guide to programming GPUs with CUDA
A beginner’s guide to programming GPUs with CUDAA beginner’s guide to programming GPUs with CUDA
A beginner’s guide to programming GPUs with CUDA
Piyush Mittal
 
thu-blake-gdc-2014-final
thu-blake-gdc-2014-finalthu-blake-gdc-2014-final
thu-blake-gdc-2014-final
Robert Taylor
 
Amd future of gp us - campus party
Amd   future of gp us - campus partyAmd   future of gp us - campus party
Amd future of gp us - campus party
Campus Party Brasil
 
Minko stage3d 20130222
Minko stage3d 20130222Minko stage3d 20130222
Minko stage3d 20130222
Minko3D
 

Similar to The rainbow treasure map: Advanced color management on Linux with AMD/Steam Deck – XDC 2023 (20)

A beginner’s guide to programming GPUs with CUDA
A beginner’s guide to programming GPUs with CUDAA beginner’s guide to programming GPUs with CUDA
A beginner’s guide to programming GPUs with CUDA
 
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornDirect3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
 
AMD Display Technologies
AMD Display TechnologiesAMD Display Technologies
AMD Display Technologies
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
DMA Survival Guide
DMA Survival GuideDMA Survival Guide
DMA Survival Guide
 
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
 
thu-blake-gdc-2014-final
thu-blake-gdc-2014-finalthu-blake-gdc-2014-final
thu-blake-gdc-2014-final
 
GS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael Mantor
GS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael MantorGS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael Mantor
GS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael Mantor
 
Memory Optimization in Cocos2d-x WP8 using Compressed Textures
Memory Optimization in Cocos2d-x WP8 using Compressed TexturesMemory Optimization in Cocos2d-x WP8 using Compressed Textures
Memory Optimization in Cocos2d-x WP8 using Compressed Textures
 
Unity advanced computer graphics week 02
Unity advanced computer graphics week 02Unity advanced computer graphics week 02
Unity advanced computer graphics week 02
 
GS-4108, Direct Compute in Gaming, by Bill Bilodeau
GS-4108, Direct Compute in Gaming, by Bill BilodeauGS-4108, Direct Compute in Gaming, by Bill Bilodeau
GS-4108, Direct Compute in Gaming, by Bill Bilodeau
 
FrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in FrostbiteFrameGraph: Extensible Rendering Architecture in Frostbite
FrameGraph: Extensible Rendering Architecture in Frostbite
 
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
Parallel Graphics in Frostbite - Current & Future (Siggraph 2009)
 
AM37x EVM
AM37x EVM AM37x EVM
AM37x EVM
 
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahGS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
 
Gpgpu
GpgpuGpgpu
Gpgpu
 
Amd future of gp us - campus party
Amd   future of gp us - campus partyAmd   future of gp us - campus party
Amd future of gp us - campus party
 
Minko stage3d 20130222
Minko stage3d 20130222Minko stage3d 20130222
Minko stage3d 20130222
 
Tobias Oetiker: RRDtool - how to make it sit up and beg
Tobias Oetiker: RRDtool - how to make it sit up and begTobias Oetiker: RRDtool - how to make it sit up and beg
Tobias Oetiker: RRDtool - how to make it sit up and beg
 
Embedded Recipes 2018 - Upstream multimedia on amlogic so cs from fiction t...
Embedded Recipes 2018 - Upstream multimedia on amlogic so cs   from fiction t...Embedded Recipes 2018 - Upstream multimedia on amlogic so cs   from fiction t...
Embedded Recipes 2018 - Upstream multimedia on amlogic so cs from fiction t...
 

More from Igalia

Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
Igalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
Igalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Igalia
 

More from Igalia (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Recently uploaded

Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 

The rainbow treasure map: Advanced color management on Linux with AMD/Steam Deck – XDC 2023

  • 1. The Rainbow Treasure Map Advanced Color Management on Linux with AMD/SteamDeck Melissa Wen XDC 2023 - A Coruña - Spain 1
  • 2. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Technical Talk 2 1. XDC 2022 | "I'm not an AMD expert, but..." | Melissa Wen 2. XDC 2022 | Is HDR Harder? | Harry Wentland 3. XDC 2022 Lightning | HDR Workshop Summary | Harry Wentland 4. Color management and HDR documentation for FOSS graphics | Pekka Paalanen et al. 5. Cinematic Color - 2012 SIGGRAPH course notes | Jeremy Selan 6. AMD Driver-specific Properties for Color Management on Linux (Part 1) | Melissa Wen
  • 3. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Advanced Color Management on Linux ● Wide variety of source content colorimetry (SDR/HDR/different color gamuts, profiles, etc.) ● Wide variety of output display devices ● Internal processing (window composition, etc) ● Users expect consistent color reproduction ● Linux kernel lacks an interface to manage the diversity of color profiles 3
  • 4. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Driver-Specific Color Properties [PATCH v4 00/32] drm/amd/display: add AMD driver-specific properties for color mgmt ➔ Endless KMS generic color API ➔ Many uncertainties regarding the diversity of color capabilities among hardware vendors ➔ Gamescope is the userspace case (SteamOS 3.5) ➔ Advanced color management: gamut mapping, HDR rendering, SDR on HDR, HDR on SDR 4
  • 5. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Steam Deck Kernel Driver ➔ Accelerated Processing Unit (APU) ➔ Product Name: STEAMDECK ➔ Code Reference: VANGOGH ➔ Display Driver: DCN3.01 (DCN3 family) 5
  • 6. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Display Driver in the Linux/DRM DRM/KMS AMD Display Manager (DM) AMD Display Core (DC) kernel space 6
  • 7. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Connecting DC and DRM DRM/KMS AMD Display Manager (DM) AMD Display Core (DC) kernel space 7
  • 8. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Examining AMD DC DRM/KMS AMD Display Manager (DM) AMD Display Core (DC) kernel space 8
  • 9. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Display Core Next (DCN) 9 https://dri.freedesktop.org/docs/drm/gpu/amdgpu/display/dcn-overview.html
  • 10. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Display Core Next (DCN) - Color Caps 10 Pre-blending DPP: Display Pipe and Plane Post-blending MPC: Multiple Pipe/Plane Combined
  • 11. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane 11
  • 12. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane 12 John Travolta in Pulp Fiction
  • 13. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamma Corr Gamut Remap HDR Mult Shaper RAM 3D LUT CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC AMD DC 13 Blending Blend Gamma
  • 14. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamma Corr Gamut Remap HDR Mult Shaper RAM 3D LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC AMD DC 14 Blending Blend Gamma
  • 15. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC AMD DC 15 Blending Gamma Corr Blend Gamma
  • 16. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC 16 Blending Gamma Corr Blend Gamma
  • 17. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Plane Degamma TF and LUT Transition from encoded values to linear values for precise arithmetic operations Pre-defined TFs are hardcoded curves to DPP Degamma ROM block ● sRGB EOTF; ● BT.709 inverse OETF; ● PQ EOTF; ● Gamma 2.2, Gamma 2.4 and Gamma 2.6 EOTF 1D LUT supports 4096 entries to DPP Gamma Correction block The data is interpreted as an array of struct drm_color_lut elements 17 input func Degam ROM Gamma Corr Degamma LUT Degamma TF
  • 18. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC 18 Blending Gamma Corr Blend Gamma
  • 19. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Plane CTM For color space conversion 3x4-dimensions matrix of fixed-points s31.32 set to DPP Gamut Remap block Remapping CRTC CTM to MPC Gamut Remap block 19 gamut remap Gamut Remap CTM
  • 20. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC 20 Blending Gamma Corr Blend Gamma
  • 21. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC 21 Blending Gamma Corr Blend Gamma
  • 22. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Plane HDR Multiplier Applied to the color values of an image to increase their overall brightness Useful for converting images from SDR to HDR PQ TF is needed for any subsequent transforms 22 hdr mult HDR Mult HDR Mult
  • 23. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC 23 Blending Gamma Corr Blend Gamma
  • 24. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Plane Shaper TF and LUT Delinearize/normalize the color space before applying a 3D LUT NO hardcoded curves Pre-defined TFs are calculated by AMD color module ● sRGB inverse EOTF; ● BT.709 OETF; ● PQ inverse EOTF; ● Gamma 2.2, Gamma 2.4 and Gamma 2.6 inverse EOTF. The color module combines TF and user LUT into the LUT to DPP Shaper LUT RAM block 24 shaper func Shaper RAM Shaper TF Shaper LUT
  • 25. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC 25 Blending Gamma Corr Blend Gamma
  • 26. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Plane 3D LUT Suitable for complex color transformations and adjustments between color channels Supported size: 17x17x17 (4913 entries) and 9x9x9 (729) Tetrahedral interpolation Blue is the outermost dimension, red the innermost. 26 3dlut func 3D LUT 3D LUT
  • 27. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC 27 Blending Gamma Corr Blend Gamma
  • 28. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD Plane Blend TF and LUT Linearize the color space again, after 3D LUT and before blending NO hardcoded curves Pre-defined TFs are calculated by AMD color module ● sRGB EOTF; ● BT.709 inverse OETF; ● PQ EOTF; ● Gamma 2.2, Gamma 2.4 and Gamma 2.6 EOTF. The color module combines TF and user LUT into the LUT to DPP Blend Gamma block 28 blend func Blend Gamma Blend TF Blend LUT
  • 29. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Pre-blending: DRM plane + AMD DC DPP input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma LUT Degam LUT out func Gamma RAM DRM CRTC 29 Blending Gamma Corr Blend Gamma
  • 30. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Post-blending: DRM CRTC + AMD DC MPC input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma TF Gamma LUT Degam LUT out func Gamma RAM DRM CRTC 30 Blending Gamma Corr Blend Gamma
  • 31. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 AMD CRTC Gamma TF Delinearize/convert to wire encoding NO hardcoded curves Pre-defined TFs are calculated by AMD color module ● sRGB inverse EOTF; ● BT.709 OETF; ● PQ inverse EOTF; ● Gamma 2.2, Gamma 2.4 and Gamma 2.6 inverse EOTF. The color module combines TF and user LUT into the LUT to MPC Gamma RAM block. 31 Gamma TF Gamma LUT out func Gamma RAM
  • 32. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 DRM/AMD Color Management Pipeline input func gamut remap hdr mult shaper func 3dlut func blend func Degam ROM Gamut Remap HDR Mult Shaper RAM 3D LUT Blend Gamma Degamma LUT CTM HDR Mult Shaper TF 3D LUT Degamma TF Blend TF Shaper LUT Blend LUT DRM/AMD plane CTM gamut remap Gamut Remap Gamma TF Gamma LUT Degam LUT out func Gamma RAM DRM CRTC 32 Blending Gamma Corr
  • 33. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 33 Steam Deck Color Pipeline AMD Driver-Specific Color Properties Image by catalyststuff on Freepik
  • 34. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 34 https://github.com/ValveSoftware/gamescope/blob/master/src/docs/Steam%20Deck%20Display%20Pipeline.png
  • 35. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 35
  • 36. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 The search for the Rainbow treasure is not over! 36
  • 37. The Rainbow Treasure Map: advanced color management on Linux with AMD/SteamDeck Melissa Wen, XDC 2023 Thank You! We're hiring www.igalia.com/jobs 37