78 lines
2.9 KiB
ReStructuredText
78 lines
2.9 KiB
ReStructuredText
|
========================
|
||
|
Display Core Debug tools
|
||
|
========================
|
||
|
|
||
|
DC Visual Confirmation
|
||
|
======================
|
||
|
|
||
|
Display core provides a feature named visual confirmation, which is a set of
|
||
|
bars added at the scanout time by the driver to convey some specific
|
||
|
information. In general, you can enable this debug option by using::
|
||
|
|
||
|
echo <N> > /sys/kernel/debug/dri/0/amdgpu_dm_visual_confirm
|
||
|
|
||
|
Where `N` is an integer number for some specific scenarios that the developer
|
||
|
wants to enable, you will see some of these debug cases in the following
|
||
|
subsection.
|
||
|
|
||
|
Multiple Planes Debug
|
||
|
---------------------
|
||
|
|
||
|
If you want to enable or debug multiple planes in a specific user-space
|
||
|
application, you can leverage a debug feature named visual confirm. For
|
||
|
enabling it, you will need::
|
||
|
|
||
|
echo 1 > /sys/kernel/debug/dri/0/amdgpu_dm_visual_confirm
|
||
|
|
||
|
You need to reload your GUI to see the visual confirmation. When the plane
|
||
|
configuration changes or a full update occurs there will be a colored bar at
|
||
|
the bottom of each hardware plane being drawn on the screen.
|
||
|
|
||
|
* The color indicates the format - For example, red is AR24 and green is NV12
|
||
|
* The height of the bar indicates the index of the plane
|
||
|
* Pipe split can be observed if there are two bars with a difference in height
|
||
|
covering the same plane
|
||
|
|
||
|
Consider the video playback case in which a video is played in a specific
|
||
|
plane, and the desktop is drawn in another plane. The video plane should
|
||
|
feature one or two green bars at the bottom of the video depending on pipe
|
||
|
split configuration.
|
||
|
|
||
|
* There should **not** be any visual corruption
|
||
|
* There should **not** be any underflow or screen flashes
|
||
|
* There should **not** be any black screens
|
||
|
* There should **not** be any cursor corruption
|
||
|
* Multiple plane **may** be briefly disabled during window transitions or
|
||
|
resizing but should come back after the action has finished
|
||
|
|
||
|
Pipe Split Debug
|
||
|
----------------
|
||
|
|
||
|
Sometimes we need to debug if DCN is splitting pipes correctly, and visual
|
||
|
confirmation is also handy for this case. Similar to the MPO case, you can use
|
||
|
the below command to enable visual confirmation::
|
||
|
|
||
|
echo 1 > /sys/kernel/debug/dri/0/amdgpu_dm_visual_confirm
|
||
|
|
||
|
In this case, if you have a pipe split, you will see one small red bar at the
|
||
|
bottom of the display covering the entire display width and another bar
|
||
|
covering the second pipe. In other words, you will see a bit high bar in the
|
||
|
second pipe.
|
||
|
|
||
|
DTN Debug
|
||
|
=========
|
||
|
|
||
|
DC (DCN) provides an extensive log that dumps multiple details from our
|
||
|
hardware configuration. Via debugfs, you can capture those status values by
|
||
|
using Display Test Next (DTN) log, which can be captured via debugfs by using::
|
||
|
|
||
|
cat /sys/kernel/debug/dri/0/amdgpu_dm_dtn_log
|
||
|
|
||
|
Since this log is updated accordingly with DCN status, you can also follow the
|
||
|
change in real-time by using something like::
|
||
|
|
||
|
sudo watch -d cat /sys/kernel/debug/dri/0/amdgpu_dm_dtn_log
|
||
|
|
||
|
When reporting a bug related to DC, consider attaching this log before and
|
||
|
after you reproduce the bug.
|