<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hello.<br>
</p>
<p>I have tested it on a Phytium D2000 platform with RX 5500 XT.</p>
<p>Distro: Arch Linux ARM<br>
</p>
<p>Kernel: Linux 6.0.5-1-phytium aarch64 (patched, <a
class="moz-txt-link-freetext"
href="https://github.com/saeziae/pkgbuild-linux-phytium">https://github.com/saeziae/pkgbuild-linux-phytium</a>
)<br>
</p>
<p>Plug and unplug: OK on all ports.<br>
</p>
<p>Resolutions tested: 3840x2160@60Hz, 2560x1440@60Hz,
1920*1080@60Hz</p>
<p>Dual-screen: 3840x2160@60Hz on DP plus 2560x1440@60Hz on HDMI.</p>
<p>Graphic applications: glxgears. 1080P video on MPV (VAAPI).
Minecraft. <br>
</p>
<p>IGT test: <br>
</p>
<p>Most tests went well, with a few error logs.<br>
</p>
<blockquote>> cat kms_flip.log| grep FAIL <br>
Dynamic subtest A-HDMI-A1: FAIL (0.201s)<br>
Subtest absolute-wf_vblank: FAIL (29.571s)<br>
Dynamic subtest A-HDMI-A1: FAIL (0.172s)<br>
Subtest blocking-absolute-wf_vblank: FAIL (29.537s)<br>
Dynamic subtest A-HDMI-A1: FAIL (0.257s)<br>
Subtest blocking-absolute-wf_vblank-interruptible: FAIL (29.458s)<br>
</blockquote>
<p>Photos and video clips: <a class="moz-txt-link-freetext"
href="https://t.me/esteladaily/334">https://t.me/esteladaily/334</a><br>
</p>
<p>Thank you for all you guys' excellent work.</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 27/10/2022 22:29, Rodrigo Siqueira
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:8eb69dfb-ae35-dbf2-3f82-e8cc00e5389a@amd.com">Hi
Ao/Arnd/Stephen/Nathan, <br>
<br>
Ao, <br>
<br>
Thanks a lot for this new patch. <br>
<br>
Since you have an ARM64 + AMD GPU, could you also run a couple of
tests in your setup? If so, this is a good set of tests imho: <br>
<br>
1. Check plug and unplug displays (let says 5x) <br>
2. Change resolutions <br>
3. (most wanted test) Could you run some IGT tests? <br>
<br>
About IGT, this is the official repository: <br>
<br>
<a class="moz-txt-link-freetext"
href="https://gitlab.freedesktop.org/drm/igt-gpu-tools">https://gitlab.freedesktop.org/drm/igt-gpu-tools</a>
<br>
<br>
It should be easy to run IGT in your system. Follow a brief
summary: <br>
<br>
1. Install dependencies <br>
<br>
(maybe I missed something) <br>
<br>
Debian <br>
apt install flex bison pkg-config x11proto-dri2-dev
python-docutils valgrind peg libpciaccess-dev libkmod-dev
libprocps-dev libunwind-dev libdw-dev zlib1g-dev liblzma-dev
libcairo-dev libpixman-1-dev libudev-dev libgsl-dev libasound2-dev
libjson-c-dev libcurl4-openssl-dev libxrandr-dev libxv-dev meson
libdrm-dev qemu-user qemu-user-static <br>
<br>
ArchLinux <br>
pacman -S gcc flex bison pkg-config libpciaccess kmod procps-ng
libunwind libdwarf zlib xz cairo pixman libudev0-shim gsl alsa-lib
xmlrpc-c json-c curl libxrandr libxv xorgproto python-docutils
valgrind peg meson libdrm libtool make autoconf automake gtk-doc
python-docutils git vim sudo <br>
<br>
2. Build IGT <br>
<br>
meson build && ninja -C build <br>
<br>
3. Turn off your GUI <br>
<br>
(You must run IGT without any GUI) <br>
<br>
sudo systemctl isolate multi-user.target <br>
<br>
After run this command, you should see the TTY. <br>
<br>
4. Try to run this IGT test <br>
<br>
sudo ./build/tests/kms_flip <br>
<br>
And let me know if this test looks ok for you. <br>
<br>
On 10/27/22 06:52, Arnd Bergmann wrote: <br>
<blockquote type="cite">On Thu, Oct 27, 2022, at 02:25, Ao Zhong
wrote: <br>
<blockquote type="cite">After moving all FPU code to the DML
folder, we can enable DCN support <br>
for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG
from the <br>
code in the DML folder that needs to use hardware FPU, and add
a control <br>
mechanism for ARM Neon. <br>
</blockquote>
</blockquote>
<br>
I recommend you to add the following info in your commit: <br>
<br>
1. System that you use to validate this change (CPU name, monitor,
distro, wayland/X, etc). <br>
2. Describe the set of tests that you tried. <br>
<br>
<blockquote type="cite">
<blockquote type="cite"> <br>
Signed-off-by: Ao Zhong <a class="moz-txt-link-rfc2396E"
href="mailto:hacc1225@gmail.com"><hacc1225@gmail.com></a>
<br>
</blockquote>
<br>
There have been problems with stack frame overflows on this code
<br>
in the past, how much have you tested this with random
configurations <br>
to see if we still hit them in corner cases on arm64 that may
not <br>
show up on x86 or powerpc? I would expect to see a few more of
them <br>
for every new architecture port. <br>
</blockquote>
<br>
Hi Arnd, <br>
<br>
We followed your suggestion to isolate all FPU code inside a
single place (DML), and we recently completed most of this task.
As a result, all FPU flags are only used in the DML code. I guess
we might have issues in other non-x86 platforms, but this is
something that we can improve over time, and from Ao message, it
looks like that DCN is working on ARM. <br>
<br>
At this point, my main concern is that enabling ARM64 may causes
some compilation issues that we did not reproduce yet. I
cross-compiled amd-staging-drm-next + this patch with
aarch64-linux-gnu-gcc version 12.2.0 and everything looks fine. <br>
<br>
Nathan/Stephen, <br>
<br>
Maybe I'm wrong, but I think you have access to some sort of CI
that tests multiple builds with different compiles and configs,
right? Is it possible to check this patch + amd-staging-drm-next
in the CI to help us to anticipate any compilation issue if we
merge this change? <br>
<br>
Or should we merge it and wait until it gets merged on the
mainline? In case of a problem, we can easily revert a small patch
like this, right? <br>
<br>
Thanks <br>
Siqueira <br>
<br>
<blockquote type="cite">
<blockquote type="cite">index d0c6cf61c676..3cdd109189e0 100644
<br>
--- a/drivers/gpu/drm/amd/display/dc/dml/Makefile <br>
+++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile <br>
@@ -33,6 +33,12 @@ ifdef CONFIG_PPC64 <br>
dml_ccflags := -mhard-float -maltivec <br>
endif <br>
<br>
+ifdef CONFIG_ARM64 <br>
+ifdef CONFIG_DRM_AMD_DC_DCN <br>
+dml_rcflags_arm64 := -mgeneral-regs-only <br>
+endif <br>
+endif <br>
+ <br>
</blockquote>
<br>
<blockquote type="cite">
CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o :=
$(dml_ccflags) <br>
CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o :=
$(dml_ccflags) <br>
CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o :=
$(dml_ccflags) <br>
-Wno-tautological-compare <br>
-CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
$(dml_rcflags) <br>
+CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o := <br>
$(dml_rcflags) $(dml_rcflags_arm64) <br>
</blockquote>
<br>
Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
<br>
rather than adding -mgeneral-regs-only to $(dml_rcflags)
directly? <br>
<br>
Arnd <br>
</blockquote>
<br>
<br>
</blockquote>
</body>
</html>