€•ÃRŒ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/index”Œ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/index”Œ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/index”Œ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/index”Œ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/index”Œ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/index”Œ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Œ.. _amdgpu-display-core:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œamdgpu-display-core”uh1h¡h KhhhžhhŸŒF/var/lib/git/docbuild/linux/Documentation/gpu/amdgpu/display/index.rst”ubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ#drm/amd/display - Display Core (DC)”h]”hŒ#drm/amd/display - Display Core (DC)”…””}”(hh·hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhh²hžhhŸh¯h KubhŒ paragraph”“”)”}”(hŒ‰AMD display engine is partially shared with other operating systems; for this reason, our Display Core Driver is divided into two pieces:”h]”hŒ‰AMD display engine is partially shared with other operating systems; for this reason, our Display Core Driver is divided into two pieces:”…””}”(hhÇhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h Khh²hžhubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ…**Display Core (DC)** contains the OS-agnostic components. Things like hardware programming and resource management are handled here.”h]”hÆ)”}”(hŒ…**Display Core (DC)** contains the OS-agnostic components. Things like hardware programming and resource management are handled here.”h]”(hŒstrong”“”)”}”(hŒ**Display Core (DC)**”h]”hŒDisplay Core (DC)”…””}”(hhæhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hähhàubhŒp contains the OS-agnostic components. Things like hardware programming and resource management are handled here.”…””}”(hhàhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K hhÜubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhh×hžhhŸh¯h NubhÛ)”}”(hŒ³**Display Manager (DM)** contains the OS-dependent components. Hooks to the amdgpu base driver and DRM are implemented here. For example, you can check display/amdgpu_dm/ folder. ”h]”hÆ)”}”(hŒ²**Display Manager (DM)** contains the OS-dependent components. Hooks to the amdgpu base driver and DRM are implemented here. For example, you can check display/amdgpu_dm/ folder.”h]”(hå)”}”(hŒ**Display Manager (DM)**”h]”hŒDisplay Manager (DM)”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hähjubhŒš contains the OS-dependent components. Hooks to the amdgpu base driver and DRM are implemented here. For example, you can check display/amdgpu_dm/ folder.”…””}”(hjhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhh×hžhhŸh¯h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1hÕhh²hžhhŸh¯h K ubh±)”}”(hhh]”(h¶)”}”(hŒDC Code validation”h]”hŒDC Code validation”…””}”(hj8hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhj5hžhhŸh¯h KubhÆ)”}”(hXêMaintaining the same code base across multiple OSes requires a lot of synchronization effort between repositories and exhaustive validation. In the DC case, we maintain a tree to centralize code from different parts. The shared repository has integration tests with our Internal Linux CI farm, and we run a comprehensive set of IGT tests in various AMD GPUs/APUs (mostly recent dGPUs and APUs). Our CI also checks ARM64/32, PPC64/32, and x86_64/32 compilation with DCN enabled and disabled.”h]”hXêMaintaining the same code base across multiple OSes requires a lot of synchronization effort between repositories and exhaustive validation. In the DC case, we maintain a tree to centralize code from different parts. The shared repository has integration tests with our Internal Linux CI farm, and we run a comprehensive set of IGT tests in various AMD GPUs/APUs (mostly recent dGPUs and APUs). Our CI also checks ARM64/32, PPC64/32, and x86_64/32 compilation with DCN enabled and disabled.”…””}”(hjFhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h Khj5hžhubhÆ)”}”(hXWhen we upstream a new feature or some patches, we pack them in a patchset with the prefix **DC Patches for **, which is created based on the latest `amd-staging-drm-next `_. All of those patches are under a DC version tested as follows:”h]”(hŒ[When we upstream a new feature or some patches, we pack them in a patchset with the prefix ”…””}”(hjThžhhŸNh Nubhå)”}”(hŒ**DC Patches for **”h]”hŒDC Patches for ”…””}”(hj\hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hähjTubhŒ', which is created based on the latest ”…””}”(hjThžhhŸNh NubhŒ reference”“”)”}”(hŒD`amd-staging-drm-next `_”h]”hŒamd-staging-drm-next”…””}”(hjphžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œamd-staging-drm-next”Œrefuri”Œ*https://gitlab.freedesktop.org/agd5f/linux”uh1jnhjTubh¢)”}”(hŒ- ”h]”h}”(h]”Œamd-staging-drm-next”ah ]”h"]”Œamd-staging-drm-next”ah$]”h&]”Œrefuri”juh1h¡Œ referenced”KhjTubhŒ@. All of those patches are under a DC version tested as follows:”…””}”(hjThžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h Khj5hžhubhŒ bullet_list”“”)”}”(hhh]”(hÛ)”}”(hŒfEnsure that every patch compiles and the entire series pass our set of IGT test in different hardware.”h]”hÆ)”}”(hŒfEnsure that every patch compiles and the entire series pass our set of IGT test in different hardware.”h]”hŒfEnsure that every patch compiles and the entire series pass our set of IGT test in different hardware.”…””}”(hj£hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K!hjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhjœhžhhŸh¯h NubhÛ)”}”(hX?Prepare a branch with those patches for our validation team. If there is an error, a developer will debug as fast as possible; usually, a simple bisect in the series is enough to point to a bad change, and two possible actions emerge: fix the issue or drop the patch. If it is not an easy fix, the bad patch is dropped.”h]”hÆ)”}”(hX?Prepare a branch with those patches for our validation team. If there is an error, a developer will debug as fast as possible; usually, a simple bisect in the series is enough to point to a bad change, and two possible actions emerge: fix the issue or drop the patch. If it is not an easy fix, the bad patch is dropped.”h]”hX?Prepare a branch with those patches for our validation team. If there is an error, a developer will debug as fast as possible; usually, a simple bisect in the series is enough to point to a bad change, and two possible actions emerge: fix the issue or drop the patch. If it is not an easy fix, the bad patch is dropped.”…””}”(hj»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K#hj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhjœhžhhŸh¯h NubhÛ)”}”(hŒWFinally, developers wait a few days for community feedback before we merge the series. ”h]”hÆ)”}”(hŒVFinally, developers wait a few days for community feedback before we merge the series.”h]”hŒVFinally, developers wait a few days for community feedback before we merge the series.”…””}”(hjÓhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K(hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhjœhžhhŸh¯h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1jšhŸh¯h K!hj5hžhubhÆ)”}”(hŒ³It is good to stress that the test phase is something that we take extremely seriously, and we never merge anything that fails our validation. Follows an overview of our test set:”h]”hŒ³It is good to stress that the test phase is something that we take extremely seriously, and we never merge anything that fails our validation. Follows an overview of our test set:”…””}”(hjïhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K+hj5hžhubhÖ)”}”(hhh]”(hÛ)”}”(hXEManual test * Multiple Hotplugs with DP and HDMI. * Stress test with multiple display configuration changes via the user interface. * Validate VRR behaviour. * Check PSR. * Validate MPO when playing video. * Test more than two displays connected at the same time. * Check suspend/resume. * Validate FPO. * Check MST.”h]”hŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hX<Manual test * Multiple Hotplugs with DP and HDMI. * Stress test with multiple display configuration changes via the user interface. * Validate VRR behaviour. * Check PSR. * Validate MPO when playing video. * Test more than two displays connected at the same time. * Check suspend/resume. * Validate FPO. * Check MST.”h]”(hŒterm”“”)”}”(hŒ Manual test”h]”hŒ Manual test”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhŸh¯h K7hj ubhŒ definition”“”)”}”(hhh]”j›)”}”(hhh]”(hÛ)”}”(hŒ#Multiple Hotplugs with DP and HDMI.”h]”hÆ)”}”(hj)h]”hŒ#Multiple Hotplugs with DP and HDMI.”…””}”(hj+hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K0hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj$ubhÛ)”}”(hŒOStress test with multiple display configuration changes via the user interface.”h]”hÆ)”}”(hj@h]”hŒOStress test with multiple display configuration changes via the user interface.”…””}”(hjBhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K1hj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj$ubhÛ)”}”(hŒValidate VRR behaviour.”h]”hÆ)”}”(hjWh]”hŒValidate VRR behaviour.”…””}”(hjYhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K2hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj$ubhÛ)”}”(hŒ Check PSR.”h]”hÆ)”}”(hjnh]”hŒ Check PSR.”…””}”(hjphžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K3hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj$ubhÛ)”}”(hŒ Validate MPO when playing video.”h]”hÆ)”}”(hj…h]”hŒ Validate MPO when playing video.”…””}”(hj‡hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K4hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj$ubhÛ)”}”(hŒ7Test more than two displays connected at the same time.”h]”hÆ)”}”(hjœh]”hŒ7Test more than two displays connected at the same time.”…””}”(hjžhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K5hjšubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj$ubhÛ)”}”(hŒCheck suspend/resume.”h]”hÆ)”}”(hj³h]”hŒCheck suspend/resume.”…””}”(hjµhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K6hj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj$ubhÛ)”}”(hŒ Validate FPO.”h]”hÆ)”}”(hjÊh]”hŒ Validate FPO.”…””}”(hjÌhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K7hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj$ubhÛ)”}”(hŒ Check MST.”h]”hÆ)”}”(hjáh]”hŒ Check MST.”…””}”(hjãhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K8hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj$ubeh}”(h]”h ]”h"]”h$]”h&]”jíjîuh1jšhŸh¯h K0hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j hŸh¯h K7hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhjýhžhhŸNh NubhÛ)”}”(hŒÛAutomated test * IGT tests in a farm with GPUs and APUs that support DCN and DCE. * Compilation validation with the latest GCC and Clang from LTS distro. * Cross-compilation for PowerPC 64/32, ARM 64/32, and x86 32. ”h]”j)”}”(hhh]”j )”}”(hŒØAutomated test * IGT tests in a farm with GPUs and APUs that support DCN and DCE. * Compilation validation with the latest GCC and Clang from LTS distro. * Cross-compilation for PowerPC 64/32, ARM 64/32, and x86 32. ”h]”(j)”}”(hŒAutomated test”h]”hŒAutomated test”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhŸh¯h Khj5hžhubhÖ)”}”(hhh]”(hÛ)”}”(hŒThe latest Ubuntu LTS.”h]”hÆ)”}”(hj°h]”hŒThe latest Ubuntu LTS.”…””}”(hj²hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h K@hj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj«hžhhŸh¯h NubhÛ)”}”(hŒ~In terms of userspace, we only use fully updated open-source components provided by the distribution official package manager.”h]”hÆ)”}”(hŒ~In terms of userspace, we only use fully updated open-source components provided by the distribution official package manager.”h]”hŒ~In terms of userspace, we only use fully updated open-source components provided by the distribution official package manager.”…””}”(hjÉhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KAhjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj«hžhhŸh¯h NubhÛ)”}”(hŒ8Regarding IGT, we use the latest code from the upstream.”h]”hÆ)”}”(hjßh]”hŒ8Regarding IGT, we use the latest code from the upstream.”…””}”(hjáhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KChjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj«hžhhŸh¯h NubhÛ)”}”(hŒIMost of the manual tests are conducted in the GNome but we also use KDE. ”h]”hÆ)”}”(hŒHMost of the manual tests are conducted in the GNome but we also use KDE.”h]”hŒHMost of the manual tests are conducted in the GNome but we also use KDE.”…””}”(hjøhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KDhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj«hžhhŸh¯h Nubeh}”(h]”h ]”h"]”h$]”h&]”j0j1j2hj3j4uh1hÕhj5hžhhŸh¯h K@ubhÆ)”}”(hŒbNotice that someone from our test team will always reply to the cover letter with the test report.”h]”hŒbNotice that someone from our test team will always reply to the cover letter with the test report.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KFhj5hžhubeh}”(h]”Œdc-code-validation”ah ]”h"]”Œdc code validation”ah$]”h&]”uh1h°hh²hžhhŸh¯h Kubh±)”}”(hhh]”(h¶)”}”(hŒDC Information”h]”hŒDC Information”…””}”(hj+hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hµhj(hžhhŸh¯h KKubhÆ)”}”(hŒ¥The display pipe is responsible for "scanning out" a rendered frame from the GPU memory (also called VRAM, FrameBuffer, etc.) to a display. In other words, it would:”h]”hŒ©The display pipe is responsible for “scanning out†a rendered frame from the GPU memory (also called VRAM, FrameBuffer, etc.) to a display. In other words, it would:”…””}”(hj9hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KMhj(hžhubhÖ)”}”(hhh]”(hÛ)”}”(hŒ#Read frame information from memory;”h]”hÆ)”}”(hjLh]”hŒ#Read frame information from memory;”…””}”(hjNhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KQhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhjGhžhhŸh¯h NubhÛ)”}”(hŒ Perform required transformation;”h]”hÆ)”}”(hjch]”hŒ Perform required transformation;”…””}”(hjehžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KRhjaubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhjGhžhhŸh¯h NubhÛ)”}”(hŒ!Send pixel data to sink devices. ”h]”hÆ)”}”(hŒ Send pixel data to sink devices.”h]”hŒ Send pixel data to sink devices.”…””}”(hj|hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KShjxubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhjGhžhhŸh¯h Nubeh}”(h]”h ]”h"]”h$]”h&]”j0j1j2hj3j4uh1hÕhj(hžhhŸh¯h KQubhÆ)”}”(hŒ^If you want to learn more about our driver details, take a look at the below table of content:”h]”hŒ^If you want to learn more about our driver details, take a look at the below table of content:”…””}”(hj–hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhŸh¯h KUhj(hžhubhŒcompound”“”)”}”(hhh]”hŒtoctree”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”hŒgpu/amdgpu/display/index”Œentries”]”(NŒ"gpu/amdgpu/display/display-manager”†”NŒgpu/amdgpu/display/dcn-overview”†”NŒgpu/amdgpu/display/dcn-blocks”†”NŒ(gpu/amdgpu/display/programming-model-dcn”†”NŒgpu/amdgpu/display/mpo-overview”†”NŒgpu/amdgpu/display/dc-debug”†”NŒ'gpu/amdgpu/display/display-contributing”†”NŒgpu/amdgpu/display/dc-glossary”†”eŒ includefiles”]”(j·j¹j»j½j¿jÁjÃjÅeŒmaxdepth”JÿÿÿÿŒcaption”NŒglob”‰Œhidden”‰Œ includehidden”‰Œnumbered”KŒ titlesonly”‰Œ rawentries”]”uh1j©hŸh¯h KXhj¦ubah}”(h]”h ]”Œtoctree-wrapper”ah"]”h$]”h&]”uh1j¤hj(hžhhŸh¯h Kaubeh}”(h]”Œdc-information”ah ]”h"]”Œdc information”ah$]”h&]”uh1h°hh²hžhhŸh¯h KKubeh}”(h]”(Œdrm-amd-display-display-core-dc”h®eh ]”h"]”(Œ#drm/amd/display - display core (dc)”Œamdgpu-display-core”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”}”Œrefids”}”h®]”h£asŒnameids”}”(jçh®jæjãj%j"j‹jˆjÞjÛuŒ nametypes”}”(jçˆjæ‰j%‰j‹ˆjÞ‰uh}”(h®h²jãh²j"j5jˆj‚jÛj(uŒ 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”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)”}”(hhh]”hÆ)”}”(hhh]”hŒ9Hyperlink target "amdgpu-display-core" is not referenced.”…””}”hj{sbah}”(h]”h ]”h"]”h$]”h&]”uh1hÅhjxubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”h¯Œline”Kuh1jvubaŒ transformer”NŒ include_log”]”Œ decoration”Nhžhub.