Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open...
Transcript of Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open...
![Page 1: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/1.jpg)
PanfrostOpen Source Meets Arm GPUs
![Page 2: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/2.jpg)
Open FirstOpen First
RobertFoss
@memcpy_io
![Page 3: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/3.jpg)
3
Hardware
![Page 4: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/4.jpg)
● Mali 2/4XX GPUs● Launched 2007● OpenGL ES 2.0● Found in Samsung S2
ArchitecturesUtgard
![Page 5: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/5.jpg)
● Mali TXXX GPUs● Launched 2012● OpenGL ES 3.2● OpenCL 1.2● Vulkan 1.1● Found in Asus C100
ArchitecturesMidgard
![Page 6: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/6.jpg)
● Mali GXX GPUs● Launched 2016● OpenGL ES 3.2● OpenCL 2.0● Vulkan 1.1● Found in Huawei Honor 10
ArchitecturesBifrost
![Page 7: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/7.jpg)
● Mali G77 GPU● Launched 2019● OpenGL ES 3.2● OpenCL 2.0● Vulkan 1.1● Found in ???
ArchitecturesValhall
???
![Page 8: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/8.jpg)
8
Drivers
![Page 9: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/9.jpg)
● Supports all GPUs
DriversProprietary
![Page 10: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/10.jpg)
● Supports all GPUs● Proprietary userspace driver
DriversProprietary
![Page 11: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/11.jpg)
● Supports all GPUs● Proprietary userspace driver● Open Source kernel driver
DriversProprietary
![Page 12: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/12.jpg)
● Supports all GPUs● Proprietary userspace driver● Open Source kernel driver● Kernel driver not upstreamable
DriversProprietary
![Page 13: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/13.jpg)
● Supports Utgard
DriversLima
![Page 14: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/14.jpg)
● Supports Utgard● Open Source userspace driver
DriversLima
![Page 15: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/15.jpg)
● Supports Utgard● Open Source userspace driver● Open Source kernel driver
DriversLima
![Page 16: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/16.jpg)
● Supports Utgard● Open Source userspace driver● Open Source kernel driver● Both upstreamed to Kernel & Mesa
DriversLima
![Page 17: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/17.jpg)
● Supports Midgard
DriversPanfrost
![Page 18: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/18.jpg)
● Supports Midgard● Targets adding Bifrost support
DriversPanfrost
![Page 19: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/19.jpg)
● Supports Midgard● Targets adding Bifrost support● Open Source userspace driver
DriversPanfrost
![Page 20: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/20.jpg)
● Supports Midgard● Targets adding Bifrost support● Open Source userspace driver● Open Source kernel driver
DriversPanfrost
![Page 21: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/21.jpg)
● Supports Midgard● Targets adding Bifrost support● Open Source userspace driver● Open Source kernel driver● Both upstreamed to Kernel & Mesa
DriversPanfrost
![Page 22: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/22.jpg)
22
History
![Page 23: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/23.jpg)
History
Lima Prototype
Gxx Shader Loader
Lima Prototype #2
Panfrost Prototype
Panfrost W
ayland
Panfrost G
nome Shell
2012
2020
Reverse Engineering
![Page 24: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/24.jpg)
History
Panfrost committe
d
Lima committed
2012
2020
Kernel and Mesa
Lima Prototype
Gxx Shader Loader
Lima Prototype #2
Panfrost Prototype
Panfrost W
ayland
Panfrost G
nome Shell
2012
2020
Reverse Engineering
![Page 25: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/25.jpg)
25
Demo
![Page 26: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/26.jpg)
26
What Comes Next
![Page 27: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/27.jpg)
27
What Comes Next
● Improved OpenGL support
– Desktop OpenGL, OpenGL ES 3.X
![Page 28: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/28.jpg)
28
What Comes Next
● Improved OpenGL support
● Wider hardware support
– Currently Mali T860 best tested
– More GPUs need enabling
![Page 29: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/29.jpg)
29
What Comes Next
● Improved OpenGL support
● Wider hardware support
● Improved performance
![Page 30: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/30.jpg)
30
What Comes Next
Panfrost
Proprietary
0 50 100 150 200 250 300 350 400 450 500
glmark2 score
Mali-T860, RK3399, Wayland & On-screen
![Page 31: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/31.jpg)
31
What Comes Next
● Improved OpenGL support
● Wider hardware support
● Improved performance
– Currently faster in some tests
– Compiler intense tests often slower
![Page 32: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/32.jpg)
32
What Comes Next
● Improved OpenGL support
● Wider hardware support
● Improved performance
● OpenCL
![Page 33: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/33.jpg)
33
What Comes Next
● Improved OpenGL support
● Wider hardware support
● Improved performance
● OpenCL
● Vulkan
![Page 34: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/34.jpg)
34
Why Open Source?
![Page 35: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/35.jpg)
35
Why Open Source?● Long-term support
![Page 36: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/36.jpg)
36
Why Open Source?● Long-term support
● High performance & conformance
![Page 37: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/37.jpg)
37
Why Open Source?● Long-term support
● High performance & conformance
● Much simpler debugging
![Page 38: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/38.jpg)
38
Why Open Source?● Long-term support
● High performance & conformance
● Much simpler debugging
● Old hardware receives new features
![Page 39: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/39.jpg)
39
Why Open Source?● Long-term support
● High performance & conformance
● Much simpler debugging
● Old hardware receives new features
● No vendor lock-in
![Page 40: Open Source Meets Arm GPUs - memcpy.io · 2020-05-29 · Launched 2016 OpenGL ES 3.2 ... Open Source userspace driver Drivers Lima](https://reader033.fdocuments.us/reader033/viewer/2022042320/5f0a8ccc7e708231d42c2f0f/html5/thumbnails/40.jpg)
40
Thank you!