upstream graphics too little too late upstream graphics
play

Upstream Graphics: Too Little, Too Late Upstream Graphics: Too - PowerPoint PPT Presentation

Upstream Graphics: Too Little, Too Late Upstream Graphics: Too Little, Too Late Daniel Vetter, Intel OTC @danvet LPC 2019, Lisbon Everything Great About Upstream Graphics: Too Little, Too Late Upstream Graphics: Too Little, Too Late Daniel


  1. Upstream Graphics: Too Little, Too Late Upstream Graphics: Too Little, Too Late Daniel Vetter, Intel OTC @danvet LPC 2019, Lisbon

  2. Everything Great About Upstream Graphics: Too Little, Too Late Upstream Graphics: Too Little, Too Late Daniel Vetter, Intel OTC @danvet LPC 2019, Lisbon

  3. 10 or so years ago ... ● graphics execution manager ● kernel modesetting ● drm/i915, drm/radeon ● proudly celebrating OpenGL 2 ● … and a wasteland

  4. today ● 10% of the kernel + userspace ● 50 atomic modeset drivers (and more others) ● latest OpenGl, GLES, Vulkan ● smallest kernel driver 246 lines ● largest kernel driver 2.2M lines

  5. Awesome uapi: Atomic Modeset ● lots of planes for SoC ● lots of outputs for desktop ● blending, writeback, color space conversions, … ● gracefully handling link failures ● content protection ● everything else

  6. Awesome APIs for Rendering ● dma_buf, dma_resv, dma_fence for buffer sharing ● ww_mutex for graph locking problems ● drm_syncobj, better uAPi for fences

  7. Helpers, Everywhere you look! ● modular atomic modeset helpers ● simple display pipe ● DisplayPort, MIPI, HDMI, EDID ● self refresh display/damage tracking ● fbdev emulation

  8. Helpers, Everywhere you render! ● gpu scheduler ● TTM refactoring and helperification ● VRAM helpers, SHMEM helpers, ... ● batteries included by default

  9. More Awesome Stuff ● bridge and panel drivers, components ● hot(un)plug fixing ● in-kernel selftests (we need KUnit asap) ● IGT gpu tests: cross driver userspace testsuite

  10. Awesome Stuff, in Userspace! ● gallium: GL stack to rule them all ● gpu compiler troubles settling on NIR ● r/e tools, better than the real docs ● Khronos is opening up

  11. Userspace drivers ● panfrost, lima, freedreno, etnaviv ● even Intel now on board with Iris ● radv+ACO, one handful hackers vs. AMD

  12. Great Community ● gitlab everywhere, Mesa3D leading ● (kernel stuck on infrastructure work) ● XDC running on LPC ● XDC haz sponsors now!

  13. NVIDIA

  14. NOT Everything Great About Upstream Graphics: Too Little, Too Late Upstream Graphics: Too Little, Too Late Daniel Vetter, Intel OTC @danvet LPC 2019, Lisbon

  15. Celebrating Vendor Lock-in ● ~20 years of desktop GL ● ~15 years of CUDA ● high margins need a moat

  16. NVIDIA and Linux ● libglvnd ● EGL_display_device ● EGL_streams ● buffer format modifiers ● non-redistributable signed firmware ● … not trying would be stupid (for NVIDIA)

  17. Open GPU Driver Business Case ● more reverse-engineered drivers than not ● only 3 hw vendors do open source GPU drivers ● fairly big teams ● need to pay the bills

  18. NOT Everything Great About Upstream Graphics: Too Little, Too Late Upstream Graphics: Too Little, Too Late Too Little, Too Late Daniel Vetter, Intel OTC @danvet LPC 2019, Lisbon

  19. e.g. Android, by Google ● ~half year from linux-next to release, worst case ● one year to the next LTS, worst case ● one year for Google to rebase ● add more for non-Google Android ● same story for servers, ...

  20. There is no LTS ● sometimes different baseline ● often different drivers/gpu ● often tons of patches ● everyone is different

  21. Shipping Upstream First ● cp -R a/drivers/gpu/* b/drivers/gpu ● cherry-pick specific patches (hundreds) ● forklift entire upstream history (thousands patches) ● DKMS + a few hundred fixups

  22. Stable Driver ABI ● it works in userspace, all helpers linked into drivers ● ship random upstream driver snapshot ● also: Android project treble ● defeats code sharing ● stable subsystem ABI?

  23. Shipping Upstream First ● refactor for upstream ● add the crap back in ● ship it ● … ● [there is no profit] ● sounded good 10 years ago

  24. Linux Kernel: Upstream First ● some customers require upstream ● … and then proceed to ignore it ● too big, too fast for stable ABI ● too little, too late for upstream first ➔ kernel's upstream first business case is broken

  25. it's a sham Linux Kernel: Upstream First ● some customers require upstream ● … and then proceed to ignore it ● too big, too fast for stable ABI ● too little, too late for upstream first ➔ kernel's upstream first business case is broken

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend