€•›SŒ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ŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/pt_BR/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”…””}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhjIh²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.”…””}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´KhjIh²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 ”…””}”(hjhh²hh³Nh´Nubhù)”}”(hŒ**DC Patches for **”h]”hŒDC Patches for ”…””}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1høhjhubhŒ', which is created based on the latest ”…””}”(hjhh²hh³Nh´NubhŒ reference”“”)”}”(hŒD`amd-staging-drm-next `_”h]”hŒamd-staging-drm-next”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œamd-staging-drm-next”Œrefuri”Œ*https://gitlab.freedesktop.org/agd5f/linux”uh1j‚hjhubh¶)”}”(hŒ- ”h]”h}”(h]”Œamd-staging-drm-next”ah ]”h"]”Œamd-staging-drm-next”ah$]”h&]”Œrefuri”j•uh1hµŒ referenced”KhjhubhŒ@. All of those patches are under a DC version tested as follows:”…””}”(hjhh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´KhjIh²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!hjIh²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:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´K+hjIh²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”…””}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j#h³hÃh´K7hjubhŒ 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îhj8ubhï)”}”(hŒOStress test with multiple display configuration changes via the user interface.”h]”hÚ)”}”(hjTh]”hŒOStress test with multiple display configuration changes via the user interface.”…””}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´K1hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1hîhj8ubhï)”}”(hŒValidate VRR behaviour.”h]”hÚ)”}”(hjkh]”hŒValidate VRR behaviour.”…””}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´K2hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1hîhj8ubhï)”}”(hŒ Check PSR.”h]”hÚ)”}”(hj‚h]”hŒ Check PSR.”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´K3hj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîhj8ubhï)”}”(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îhj8ubhï)”}”(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îhj8ubhï)”}”(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îhj8ubhï)”}”(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îhj8ubhï)”}”(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îhj8ubeh}”(h]”h ]”h"]”h$]”h&]”jjuh1j®h³hÃh´K0hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÃh´K7hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîhjh²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”…””}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j#h³hÃh´KhjIh²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´KDhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîhj¿h²hh³hÃh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jDjEjFhjGjHuh1héhjIh²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.”…””}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´KFhjIh²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:”…””}”(hjMh²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Ú)”}”(hj`h]”hŒ#Read frame information from memory;”…””}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´KQhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîhj[h²hh³hÃh´Nubhï)”}”(hŒ Perform required transformation;”h]”hÚ)”}”(hjwh]”hŒ Perform required transformation;”…””}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´KRhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1hîhj[h²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.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÙh³hÃh´KShjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîhj[h²hh³hÃh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jDjEjFhjGjHuh1hé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÷j9j6jŸjœjòjïuŒ nametypes”}”(jûˆjú‰j9‰jŸˆjò‰uh}”(hÂhÆj÷hÆj6jIjœ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.”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”uh1hÙhjŒubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÃŒline”Kuh1jŠubaŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.