1 .. _display_todos: 1 .. _display_todos: 2 2 3 ============================== 3 ============================== 4 AMDGPU - Display Contributions 4 AMDGPU - Display Contributions 5 ============================== 5 ============================== 6 6 7 First of all, if you are here, you probably wa 7 First of all, if you are here, you probably want to give some technical 8 contribution to the display code, and for that 8 contribution to the display code, and for that, we say thank you :) 9 9 10 This page summarizes some of the issues you ca 10 This page summarizes some of the issues you can help with; keep in mind that 11 this is a static page, and it is always a good 11 this is a static page, and it is always a good idea to try to reach developers 12 in the amdgfx or some of the maintainers. Fina 12 in the amdgfx or some of the maintainers. Finally, this page follows the DRM 13 way of creating a TODO list; for more informat 13 way of creating a TODO list; for more information, check 14 'Documentation/gpu/todo.rst'. 14 'Documentation/gpu/todo.rst'. 15 15 16 Gitlab issues 16 Gitlab issues 17 ============= 17 ============= 18 18 19 Users can report issues associated with AMD GP 19 Users can report issues associated with AMD GPUs at: 20 20 21 - https://gitlab.freedesktop.org/drm/amd 21 - https://gitlab.freedesktop.org/drm/amd 22 22 23 Usually, we try to add a proper label to all n 23 Usually, we try to add a proper label to all new tickets to make it easy to 24 filter issues. If you can reproduce any proble 24 filter issues. If you can reproduce any problem, you could help by adding more 25 information or fixing the issue. 25 information or fixing the issue. 26 26 27 Level: diverse 27 Level: diverse 28 28 29 IGT 29 IGT 30 === 30 === 31 31 32 `IGT`_ provides many integration tests that ca 32 `IGT`_ provides many integration tests that can be run on your GPU. We always 33 want to pass a large set of tests to increase 33 want to pass a large set of tests to increase the test coverage in our CI. If 34 you wish to contribute to the display code but 34 you wish to contribute to the display code but are unsure where a good place 35 is, we recommend you run all IGT tests and try 35 is, we recommend you run all IGT tests and try to fix any failure you see in 36 your hardware. Keep in mind that this failure 36 your hardware. Keep in mind that this failure can be an IGT problem or a kernel 37 issue; it is necessary to analyze case-by-case 37 issue; it is necessary to analyze case-by-case. 38 38 39 Level: diverse 39 Level: diverse 40 40 41 .. _IGT: https://gitlab.freedesktop.org/drm/ig 41 .. _IGT: https://gitlab.freedesktop.org/drm/igt-gpu-tools 42 42 43 Compilation 43 Compilation 44 =========== 44 =========== 45 45 46 Fix compilation warnings 46 Fix compilation warnings 47 ------------------------ 47 ------------------------ 48 48 49 Enable the W1 or W2 warning level in the kerne 49 Enable the W1 or W2 warning level in the kernel compilation and try to fix the 50 issues on the display side. 50 issues on the display side. 51 51 52 Level: Starter 52 Level: Starter 53 53 54 Fix compilation issues when using um architect 54 Fix compilation issues when using um architecture 55 ---------------------------------------------- 55 ------------------------------------------------- 56 56 57 Linux has a User-mode Linux (UML) feature, and 57 Linux has a User-mode Linux (UML) feature, and the kernel can be compiled to 58 the **um** architecture. Compiling for **um** 58 the **um** architecture. Compiling for **um** can bring multiple advantages 59 from the test perspective. We currently have s 59 from the test perspective. We currently have some compilation issues in this 60 area that we need to fix. 60 area that we need to fix. 61 61 62 Level: Intermediate 62 Level: Intermediate 63 63 64 Code Refactor 64 Code Refactor 65 ============= 65 ============= 66 66 67 Add prefix to DC functions to improve the debu 67 Add prefix to DC functions to improve the debug with ftrace 68 ---------------------------------------------- 68 ----------------------------------------------------------- 69 69 70 The Ftrace debug feature (check 'Documentation 70 The Ftrace debug feature (check 'Documentation/trace/ftrace.rst') is a 71 fantastic way to check the code path when deve 71 fantastic way to check the code path when developers try to make sense of a 72 bug. Ftrace provides a filter mechanism that c 72 bug. Ftrace provides a filter mechanism that can be useful when the developer 73 has some hunch of which part of the code can c 73 has some hunch of which part of the code can cause the issue; for this reason, 74 if a set of functions has a proper prefix, it 74 if a set of functions has a proper prefix, it becomes easy to create a good 75 filter. Additionally, prefixes can improve sta 75 filter. Additionally, prefixes can improve stack trace readability. 76 76 77 The DC code does not follow some prefix rules, 77 The DC code does not follow some prefix rules, which makes the Ftrace filter 78 more complicated and reduces the readability o 78 more complicated and reduces the readability of the stack trace. If you want 79 something simple to start contributing to the 79 something simple to start contributing to the display, you can make patches for 80 adding prefixes to DC functions. To create tho 80 adding prefixes to DC functions. To create those prefixes, use part of the file 81 name as a prefix for all functions in the targ 81 name as a prefix for all functions in the target file. Check the 82 'amdgpu_dm_crtc.c` and `amdgpu_dm_plane.c` for 82 'amdgpu_dm_crtc.c` and `amdgpu_dm_plane.c` for some references. However, we 83 strongly advise not to send huge patches chang 83 strongly advise not to send huge patches changing these prefixes; otherwise, it 84 will be hard to review and test, which can gen 84 will be hard to review and test, which can generate second thoughts from 85 maintainers. Try small steps; in case of doubl 85 maintainers. Try small steps; in case of double, you can ask before you put in 86 effort. We recommend first looking at folders 86 effort. We recommend first looking at folders like dceXYZ, dcnXYZ, basics, 87 bios, core, clk_mgr, hwss, resource, and irq. 87 bios, core, clk_mgr, hwss, resource, and irq. 88 88 89 Level: Starter 89 Level: Starter 90 90 91 Reduce code duplication 91 Reduce code duplication 92 ----------------------- 92 ----------------------- 93 93 94 AMD has an extensive portfolio with various dG 94 AMD has an extensive portfolio with various dGPUs and APUs that amdgpu 95 supports. To maintain the new hardware release 95 supports. To maintain the new hardware release cadence, DCE/DCN was designed in 96 a modular design, making the bring-up for new 96 a modular design, making the bring-up for new hardware fast. Over the years, 97 amdgpu accumulated some technical debt in the 97 amdgpu accumulated some technical debt in the code duplication area. For this 98 task, it would be a good idea to find a tool t 98 task, it would be a good idea to find a tool that can discover code duplication 99 (including patterns) and use it as guidance to 99 (including patterns) and use it as guidance to reduce duplications. 100 100 101 Level: Intermediate 101 Level: Intermediate 102 102 103 Make atomic_commit_[check|tail] more readable 103 Make atomic_commit_[check|tail] more readable 104 --------------------------------------------- 104 --------------------------------------------- 105 105 106 The functions responsible for atomic commit an 106 The functions responsible for atomic commit and tail are intricate and 107 extensive. In particular `amdgpu_dm_atomic_com 107 extensive. In particular `amdgpu_dm_atomic_commit_tail` is a long function and 108 could benefit from being split into smaller he 108 could benefit from being split into smaller helpers. Improvements in this area 109 are more than welcome, but keep in mind that c 109 are more than welcome, but keep in mind that changes in this area will affect 110 all ASICs, meaning that refactoring requires a 110 all ASICs, meaning that refactoring requires a comprehensive verification; in 111 other words, this effort can take some time fo 111 other words, this effort can take some time for validation. 112 112 113 Level: Advanced 113 Level: Advanced 114 114 115 Documentation 115 Documentation 116 ============= 116 ============= 117 117 118 Expand kernel-doc 118 Expand kernel-doc 119 ----------------- 119 ----------------- 120 120 121 Many DC functions do not have a proper kernel- 121 Many DC functions do not have a proper kernel-doc; understanding a function and 122 adding documentation is a great way to learn m 122 adding documentation is a great way to learn more about the amdgpu driver and 123 also leave an outstanding contribution to the 123 also leave an outstanding contribution to the entire community. 124 124 125 Level: Starter 125 Level: Starter 126 126 127 Beyond AMDGPU 127 Beyond AMDGPU 128 ============= 128 ============= 129 129 130 AMDGPU provides features that are not yet enab 130 AMDGPU provides features that are not yet enabled in the userspace. This 131 section highlights some of the coolest display 131 section highlights some of the coolest display features, which could be enabled 132 with the userspace developer helper. 132 with the userspace developer helper. 133 133 134 Enable underlay 134 Enable underlay 135 --------------- 135 --------------- 136 136 137 AMD display has this feature called underlay ( 137 AMD display has this feature called underlay (which you can read more about at 138 'Documentation/gpu/amdgpu/display/mpo-overview 138 'Documentation/gpu/amdgpu/display/mpo-overview.rst') which is intended to 139 save power when playing a video. The basic ide 139 save power when playing a video. The basic idea is to put a video in the 140 underlay plane at the bottom and the desktop i 140 underlay plane at the bottom and the desktop in the plane above it with a hole 141 in the video area. This feature is enabled in 141 in the video area. This feature is enabled in ChromeOS, and from our data 142 measurement, it can save power. 142 measurement, it can save power. 143 143 144 Level: Unknown 144 Level: Unknown 145 145 146 Adaptive Backlight Modulation (ABM) 146 Adaptive Backlight Modulation (ABM) 147 ----------------------------------- 147 ----------------------------------- 148 148 149 ABM is a feature that adjusts the display pane 149 ABM is a feature that adjusts the display panel's backlight level and pixel 150 values depending on the displayed image. This 150 values depending on the displayed image. This power-saving feature can be very 151 useful when the system starts to run off batte 151 useful when the system starts to run off battery; since this will impact the 152 display output fidelity, it would be good if t 152 display output fidelity, it would be good if this option was something that 153 users could turn on or off. 153 users could turn on or off. 154 154 155 Level: Unknown 155 Level: Unknown 156 156 157 157 158 HDR & Color management & VRR 158 HDR & Color management & VRR 159 ---------------------------- 159 ---------------------------- 160 160 161 HDR, Color Management, and VRR are huge topics 161 HDR, Color Management, and VRR are huge topics and it's hard to put these into 162 concise ToDos. If you are interested in this t 162 concise ToDos. If you are interested in this topic, we recommend checking some 163 blog posts from the community developers to be 163 blog posts from the community developers to better understand some of the 164 specific challenges and people working on the 164 specific challenges and people working on the subject. If anyone wants to work 165 on some particular part, we can try to help wi 165 on some particular part, we can try to help with some basic guidance. Finally, 166 keep in mind that we already have some kernel- 166 keep in mind that we already have some kernel-doc in place for those areas. 167 167 168 Level: Unknown 168 Level: Unknown
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.