€•÷^Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ;/translations/zh_CN/gpu/amdgpu/display/display-contributing”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ;/translations/zh_TW/gpu/amdgpu/display/display-contributing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ;/translations/it_IT/gpu/amdgpu/display/display-contributing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ;/translations/ja_JP/gpu/amdgpu/display/display-contributing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ;/translations/ko_KR/gpu/amdgpu/display/display-contributing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ;/translations/sp_SP/gpu/amdgpu/display/display-contributing”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒtarget”“”)”}”(hŒ.. _display_todos:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œ display-todos”uh1h¡h KhhhžhhŸŒU/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/display-contributing.rst”ubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒAMDGPU - Display Contributions”h]”hŒAMDGPU - Display Contributions”…””}”(hh·hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhh²hžhhŸh¯h KubhŒ paragraph”“”)”}”(hŒ‹First of all, if you are here, you probably want to give some technical contribution to the display code, and for that, we say thank you :)”h]”hŒ‹First of all, if you are here, you probably want to give some technical contribution to the display code, and for that, we say thank you :)”…””}”(hhÇhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h Khh²hžhubhÆ)”}”(hX?This page summarizes some of the issues you can help with; keep in mind that this is a static page, and it is always a good idea to try to reach developers in the amdgfx or some of the maintainers. Finally, this page follows the DRM way of creating a TODO list; for more information, check 'Documentation/gpu/todo.rst'.”h]”hXCThis page summarizes some of the issues you can help with; keep in mind that this is a static page, and it is always a good idea to try to reach developers in the amdgfx or some of the maintainers. Finally, this page follows the DRM way of creating a TODO list; for more information, check ‘Documentation/gpu/todo.rst’.”…””}”(hhÕhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K hh²hžhubh±)”}”(hhh]”(h¶)”}”(hŒ Gitlab issues”h]”hŒ Gitlab issues”…””}”(hhæhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhhãhžhhŸh¯h KubhÆ)”}”(hŒ4Users can report issues associated with AMD GPUs at:”h]”hŒ4Users can report issues associated with AMD GPUs at:”…””}”(hhôhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KhhãhžhubhŒ bullet_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hŒ'https://gitlab.freedesktop.org/drm/amd ”h]”hÆ)”}”(hŒ&https://gitlab.freedesktop.org/drm/amd”h]”hŒ reference”“”)”}”(hjh]”hŒ&https://gitlab.freedesktop.org/drm/amd”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”juh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h Khj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhžhhŸh¯h Nubah}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jhŸh¯h KhhãhžhubhÆ)”}”(hŒ»Usually, we try to add a proper label to all new tickets to make it easy to filter issues. If you can reproduce any problem, you could help by adding more information or fixing the issue.”h]”hŒ»Usually, we try to add a proper label to all new tickets to make it easy to filter issues. If you can reproduce any problem, you could help by adding more information or fixing the issue.”…””}”(hj5hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KhhãhžhubhÆ)”}”(hŒLevel: diverse”h]”hŒLevel: diverse”…””}”(hjChžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h Khhãhžhubeh}”(h]”Œ gitlab-issues”ah ]”h"]”Œ gitlab issues”ah$]”h&]”uh1h°hh²hžhhŸh¯h Kubh±)”}”(hhh]”(h¶)”}”(hŒIGT”h]”hŒIGT”…””}”(hj\hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjYhžhhŸh¯h KubhÆ)”}”(hXµ`IGT`_ provides many integration tests that can be run on your GPU. We always want to pass a large set of tests to increase the test coverage in our CI. If you wish to contribute to the display code but are unsure where a good place is, we recommend you run all IGT tests and try to fix any failure you see in your hardware. Keep in mind that this failure can be an IGT problem or a kernel issue; it is necessary to analyze case-by-case.”h]”(j)”}”(hŒ`IGT`_”h]”hŒIGT”…””}”(hjnhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”ŒIGT”Œrefuri”Œ0https://gitlab.freedesktop.org/drm/igt-gpu-tools”uh1jhjjŒresolved”KubhX¯ provides many integration tests that can be run on your GPU. We always want to pass a large set of tests to increase the test coverage in our CI. If you wish to contribute to the display code but are unsure where a good place is, we recommend you run all IGT tests and try to fix any failure you see in your hardware. Keep in mind that this failure can be an IGT problem or a kernel issue; it is necessary to analyze case-by-case.”…””}”(hjjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K hjYhžhubhÆ)”}”(hŒLevel: diverse”h]”hŒLevel: diverse”…””}”(hj‹hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K'hjYhžhubh¢)”}”(hŒ9.. _IGT: https://gitlab.freedesktop.org/drm/igt-gpu-tools”h]”h}”(h]”Œid1”ah ]”h"]”Œigt”ah$]”h&]”j~juh1h¡h K)hjYhžhhŸh¯Œ referenced”Kubeh}”(h]”Œigt”ah ]”h"]”h$]”j¢ah&]”uh1h°hh²hžhhŸh¯h Kj¥Kubh±)”}”(hhh]”(h¶)”}”(hŒ Compilation”h]”hŒ Compilation”…””}”(hj°hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhj­hžhhŸh¯h K,ubh±)”}”(hhh]”(h¶)”}”(hŒFix compilation warnings”h]”hŒFix compilation warnings”…””}”(hjÁhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhj¾hžhhŸh¯h K/ubhÆ)”}”(hŒjEnable the W1 or W2 warning level in the kernel compilation and try to fix the issues on the display side.”h]”hŒjEnable the W1 or W2 warning level in the kernel compilation and try to fix the issues on the display side.”…””}”(hjÏhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K1hj¾hžhubhÆ)”}”(hŒLevel: Starter”h]”hŒLevel: Starter”…””}”(hjÝhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K4hj¾hžhubeh}”(h]”Œfix-compilation-warnings”ah ]”h"]”Œfix compilation warnings”ah$]”h&]”uh1h°hj­hžhhŸh¯h K/ubh±)”}”(hhh]”(h¶)”}”(hŒ1Fix compilation issues when using um architecture”h]”hŒ1Fix compilation issues when using um architecture”…””}”(hjöhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjóhžhhŸh¯h K7ubhÆ)”}”(hŒÿLinux has a User-mode Linux (UML) feature, and the kernel can be compiled to the **um** architecture. Compiling for **um** can bring multiple advantages from the test perspective. We currently have some compilation issues in this area that we need to fix.”h]”(hŒQLinux has a User-mode Linux (UML) feature, and the kernel can be compiled to the ”…””}”(hjhžhhŸNh NubhŒstrong”“”)”}”(hŒ**um**”h]”hŒum”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubhŒ architecture. Compiling for ”…””}”(hjhžhhŸNh Nubj )”}”(hŒ**um**”h]”hŒum”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubhŒ… can bring multiple advantages from the test perspective. We currently have some compilation issues in this area that we need to fix.”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K9hjóhžhubhÆ)”}”(hŒLevel: Intermediate”h]”hŒLevel: Intermediate”…””}”(hj8hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K>hjóhžhubeh}”(h]”Œ1fix-compilation-issues-when-using-um-architecture”ah ]”h"]”Œ1fix compilation issues when using um architecture”ah$]”h&]”uh1h°hj­hžhhŸh¯h K7ubeh}”(h]”Œ compilation”ah ]”h"]”Œ compilation”ah$]”h&]”uh1h°hh²hžhhŸh¯h K,ubh±)”}”(hhh]”(h¶)”}”(hŒ Code Refactor”h]”hŒ Code Refactor”…””}”(hjYhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjVhžhhŸh¯h KAubh±)”}”(hhh]”(h¶)”}”(hŒ;Add prefix to DC functions to improve the debug with ftrace”h]”hŒ;Add prefix to DC functions to improve the debug with ftrace”…””}”(hjjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjghžhhŸh¯h KDubhÆ)”}”(hX¿The Ftrace debug feature (check 'Documentation/trace/ftrace.rst') is a fantastic way to check the code path when developers try to make sense of a bug. Ftrace provides a filter mechanism that can be useful when the developer has some hunch of which part of the code can cause the issue; for this reason, if a set of functions has a proper prefix, it becomes easy to create a good filter. Additionally, prefixes can improve stack trace readability.”h]”hXÃThe Ftrace debug feature (check ‘Documentation/trace/ftrace.rst’) is a fantastic way to check the code path when developers try to make sense of a bug. Ftrace provides a filter mechanism that can be useful when the developer has some hunch of which part of the code can cause the issue; for this reason, if a set of functions has a proper prefix, it becomes easy to create a good filter. Additionally, prefixes can improve stack trace readability.”…””}”(hjxhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KFhjghžhubhÆ)”}”(hX'The DC code does not follow some prefix rules, which makes the Ftrace filter more complicated and reduces the readability of the stack trace. If you want something simple to start contributing to the display, you can make patches for adding prefixes to DC functions. To create those prefixes, use part of the file name as a prefix for all functions in the target file. Check the 'amdgpu_dm_crtc.c` and `amdgpu_dm_plane.c` for some references. However, we strongly advise not to send huge patches changing these prefixes; otherwise, it will be hard to review and test, which can generate second thoughts from maintainers. Try small steps; in case of double, you can ask before you put in effort. We recommend first looking at folders like dceXYZ, dcnXYZ, basics, bios, core, clk_mgr, hwss, resource, and irq.”h]”(hX”The DC code does not follow some prefix rules, which makes the Ftrace filter more complicated and reduces the readability of the stack trace. If you want something simple to start contributing to the display, you can make patches for adding prefixes to DC functions. To create those prefixes, use part of the file name as a prefix for all functions in the target file. Check the ‘amdgpu_dm_crtc.c` and ”…””}”(hj†hžhhŸNh NubhŒtitle_reference”“”)”}”(hŒ`amdgpu_dm_plane.c`”h]”hŒamdgpu_dm_plane.c”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj†ubhX‚ for some references. However, we strongly advise not to send huge patches changing these prefixes; otherwise, it will be hard to review and test, which can generate second thoughts from maintainers. Try small steps; in case of double, you can ask before you put in effort. We recommend first looking at folders like dceXYZ, dcnXYZ, basics, bios, core, clk_mgr, hwss, resource, and irq.”…””}”(hj†hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KMhjghžhubhÆ)”}”(hŒLevel: Starter”h]”hŒLevel: Starter”…””}”(hj¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KYhjghžhubeh}”(h]”Œ;add-prefix-to-dc-functions-to-improve-the-debug-with-ftrace”ah ]”h"]”Œ;add prefix to dc functions to improve the debug with ftrace”ah$]”h&]”uh1h°hjVhžhhŸh¯h KDubh±)”}”(hhh]”(h¶)”}”(hŒReduce code duplication”h]”hŒReduce code duplication”…””}”(hjÁhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhj¾hžhhŸh¯h K\ubhÆ)”}”(hXÅAMD has an extensive portfolio with various dGPUs and APUs that amdgpu supports. To maintain the new hardware release cadence, DCE/DCN was designed in a modular design, making the bring-up for new hardware fast. Over the years, amdgpu accumulated some technical debt in the code duplication area. For this task, it would be a good idea to find a tool that can discover code duplication (including patterns) and use it as guidance to reduce duplications.”h]”hXÅAMD has an extensive portfolio with various dGPUs and APUs that amdgpu supports. To maintain the new hardware release cadence, DCE/DCN was designed in a modular design, making the bring-up for new hardware fast. Over the years, amdgpu accumulated some technical debt in the code duplication area. For this task, it would be a good idea to find a tool that can discover code duplication (including patterns) and use it as guidance to reduce duplications.”…””}”(hjÏhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K^hj¾hžhubhÆ)”}”(hŒLevel: Intermediate”h]”hŒLevel: Intermediate”…””}”(hjÝhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h Kehj¾hžhubeh}”(h]”Œreduce-code-duplication”ah ]”h"]”Œreduce code duplication”ah$]”h&]”uh1h°hjVhžhhŸh¯h K\ubh±)”}”(hhh]”(h¶)”}”(hŒ-Make atomic_commit_[check|tail] more readable”h]”hŒ-Make atomic_commit_[check|tail] more readable”…””}”(hjöhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjóhžhhŸh¯h KhubhÆ)”}”(hX¼The functions responsible for atomic commit and tail are intricate and extensive. In particular `amdgpu_dm_atomic_commit_tail` is a long function and could benefit from being split into smaller helpers. Improvements in this area are more than welcome, but keep in mind that changes in this area will affect all ASICs, meaning that refactoring requires a comprehensive verification; in other words, this effort can take some time for validation.”h]”(hŒ`The functions responsible for atomic commit and tail are intricate and extensive. In particular ”…””}”(hjhžhhŸNh Nubj)”}”(hŒ`amdgpu_dm_atomic_commit_tail`”h]”hŒamdgpu_dm_atomic_commit_tail”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽhjubhX> is a long function and could benefit from being split into smaller helpers. Improvements in this area are more than welcome, but keep in mind that changes in this area will affect all ASICs, meaning that refactoring requires a comprehensive verification; in other words, this effort can take some time for validation.”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KjhjóhžhubhÆ)”}”(hŒLevel: Advanced”h]”hŒLevel: Advanced”…””}”(hj$hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h Kqhjóhžhubeh}”(h]”Œ+make-atomic-commit-check-tail-more-readable”ah ]”h"]”Œ-make atomic_commit_[check|tail] more readable”ah$]”h&]”uh1h°hjVhžhhŸh¯h Khubeh}”(h]”Œ code-refactor”ah ]”h"]”Œ code refactor”ah$]”h&]”uh1h°hh²hžhhŸh¯h KAubh±)”}”(hhh]”(h¶)”}”(hŒ Documentation”h]”hŒ Documentation”…””}”(hjEhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjBhžhhŸh¯h Ktubh±)”}”(hhh]”(h¶)”}”(hŒExpand kernel-doc”h]”hŒExpand kernel-doc”…””}”(hjVhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjShžhhŸh¯h KwubhÆ)”}”(hŒÝMany DC functions do not have a proper kernel-doc; understanding a function and adding documentation is a great way to learn more about the amdgpu driver and also leave an outstanding contribution to the entire community.”h]”hŒÝMany DC functions do not have a proper kernel-doc; understanding a function and adding documentation is a great way to learn more about the amdgpu driver and also leave an outstanding contribution to the entire community.”…””}”(hjdhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KyhjShžhubhÆ)”}”(hŒLevel: Starter”h]”hŒLevel: Starter”…””}”(hjrhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K}hjShžhubeh}”(h]”Œexpand-kernel-doc”ah ]”h"]”Œexpand kernel-doc”ah$]”h&]”uh1h°hjBhžhhŸh¯h Kwubeh}”(h]”Œ documentation”ah ]”h"]”Œ documentation”ah$]”h&]”uh1h°hh²hžhhŸh¯h Ktubh±)”}”(hhh]”(h¶)”}”(hŒ Beyond AMDGPU”h]”hŒ Beyond AMDGPU”…””}”(hj“hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjhžhhŸh¯h K€ubhÆ)”}”(hŒ½AMDGPU provides features that are not yet enabled in the userspace. This section highlights some of the coolest display features, which could be enabled with the userspace developer helper.”h]”hŒ½AMDGPU provides features that are not yet enabled in the userspace. This section highlights some of the coolest display features, which could be enabled with the userspace developer helper.”…””}”(hj¡hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K‚hjhžhubh±)”}”(hhh]”(h¶)”}”(hŒEnable underlay”h]”hŒEnable underlay”…””}”(hj²hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhj¯hžhhŸh¯h K‡ubhÆ)”}”(hXšAMD display has this feature called underlay (which you can read more about at 'Documentation/gpu/amdgpu/display/mpo-overview.rst') which is intended to save power when playing a video. The basic idea is to put a video in the underlay plane at the bottom and the desktop in the plane above it with a hole in the video area. This feature is enabled in ChromeOS, and from our data measurement, it can save power.”h]”hXžAMD display has this feature called underlay (which you can read more about at ‘Documentation/gpu/amdgpu/display/mpo-overview.rst’) which is intended to save power when playing a video. The basic idea is to put a video in the underlay plane at the bottom and the desktop in the plane above it with a hole in the video area. This feature is enabled in ChromeOS, and from our data measurement, it can save power.”…””}”(hjÀhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K‰hj¯hžhubhÆ)”}”(hŒLevel: Unknown”h]”hŒLevel: Unknown”…””}”(hjÎhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h Khj¯hžhubeh}”(h]”Œenable-underlay”ah ]”h"]”Œenable underlay”ah$]”h&]”uh1h°hjhžhhŸh¯h K‡ubh±)”}”(hhh]”(h¶)”}”(hŒ#Adaptive Backlight Modulation (ABM)”h]”hŒ#Adaptive Backlight Modulation (ABM)”…””}”(hjçhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjähžhhŸh¯h K“ubhÆ)”}”(hXOABM is a feature that adjusts the display panel's backlight level and pixel values depending on the displayed image. This power-saving feature can be very useful when the system starts to run off battery; since this will impact the display output fidelity, it would be good if this option was something that users could turn on or off.”h]”hXQABM is a feature that adjusts the display panel’s backlight level and pixel values depending on the displayed image. This power-saving feature can be very useful when the system starts to run off battery; since this will impact the display output fidelity, it would be good if this option was something that users could turn on or off.”…””}”(hjõhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K•hjähžhubhÆ)”}”(hŒLevel: Unknown”h]”hŒLevel: Unknown”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K›hjähžhubeh}”(h]”Œ!adaptive-backlight-modulation-abm”ah ]”h"]”Œ#adaptive backlight modulation (abm)”ah$]”h&]”uh1h°hjhžhhŸh¯h K“ubh±)”}”(hhh]”(h¶)”}”(hŒHDR & Color management & VRR”h]”hŒHDR & Color management & VRR”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhjhžhhŸh¯h KŸubhÆ)”}”(hXÑHDR, Color Management, and VRR are huge topics and it's hard to put these into concise ToDos. If you are interested in this topic, we recommend checking some blog posts from the community developers to better understand some of the specific challenges and people working on the subject. If anyone wants to work on some particular part, we can try to help with some basic guidance. Finally, keep in mind that we already have some kernel-doc in place for those areas.”h]”hXÓHDR, Color Management, and VRR are huge topics and it’s hard to put these into concise ToDos. If you are interested in this topic, we recommend checking some blog posts from the community developers to better understand some of the specific challenges and people working on the subject. If anyone wants to work on some particular part, we can try to help with some basic guidance. Finally, keep in mind that we already have some kernel-doc in place for those areas.”…””}”(hj*hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K¡hjhžhubhÆ)”}”(hŒLevel: Unknown”h]”hŒLevel: Unknown”…””}”(hj8hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K¨hjhžhubeh}”(h]”Œhdr-color-management-vrr”ah ]”h"]”Œhdr & color management & vrr”ah$]”h&]”uh1h°hjhžhhŸh¯h KŸubeh}”(h]”Œ beyond-amdgpu”ah ]”h"]”Œ beyond amdgpu”ah$]”h&]”uh1h°hh²hžhhŸh¯h K€ubeh}”(h]”(Œamdgpu-display-contributions”h®eh ]”h"]”(Œamdgpu - display contributions”Œ display_todos”eh$]”h&]”uh1h°hhhžhhŸh¯h KŒexpect_referenced_by_name”}”j\h£sŒexpect_referenced_by_id”}”h®h£subeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¯uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hµNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j†Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¯Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œigt”]”jnasŒrefids”}”h®]”h£asŒnameids”}”(j\h®j[jXjVjSŒigt”jŸjSjPjðjíjKjHj?j<j»j¸jðjíj7j4jjŠj…j‚jSjPjájÞjjjKjHuŒ nametypes”}”(j\ˆj[‰jV‰j͈jS‰jð‰jK‰j?‰j»‰jð‰j7‰j‰j…‰jS‰já‰j‰jK‰uh}”(h®h²jXh²jShãj¨jYjŸj™jPj­jíj¾jHjój<jVj¸jgjíj¾j4jójŠjBj‚jSjPjjÞj¯jjäjHjuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”j”Ks…”R”Œparse_messages”]”hŒsystem_message”“”)”}”(hhh]”hÆ)”}”(hŒ&Duplicate implicit target name: "igt".”h]”hŒ*Duplicate implicit target name: “igtâ€.”…””}”(hjñhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhjîubah}”(h]”h ]”h"]”h$]”h&]”jŸaŒlevel”KŒtype”ŒINFO”Œline”K)Œsource”h¯uh1jìhjYhžhhŸh¯h K)ubaŒtransform_messages”]”jí)”}”(hhh]”hÆ)”}”(hhh]”hŒ3Hyperlink target "display-todos" is not referenced.”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhj ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”jŒsource”h¯Œline”Kuh1jìubaŒ transformer”NŒ include_log”]”Œ decoration”Nhžhub.