[PATCH RESEND 1/1] drm/amd/display: add DCN support for ARM64
Estela ad Astra
i at estela.cn
Thu Oct 27 19:24:19 UTC 2022
Hello.
I have tested it on a Phytium D2000 platform with RX 5500 XT.
Distro: Arch Linux ARM
Kernel: Linux 6.0.5-1-phytium aarch64 (patched,
https://github.com/saeziae/pkgbuild-linux-phytium )
Plug and unplug: OK on all ports.
Resolutions tested: 3840x2160 at 60Hz, 2560x1440 at 60Hz, 1920*1080 at 60Hz
Dual-screen: 3840x2160 at 60Hz on DP plus 2560x1440 at 60Hz on HDMI.
Graphic applications: glxgears. 1080P video on MPV (VAAPI). Minecraft.
IGT test:
Most tests went well, with a few error logs.
> cat kms_flip.log| grep FAIL
Dynamic subtest A-HDMI-A1: FAIL (0.201s)
Subtest absolute-wf_vblank: FAIL (29.571s)
Dynamic subtest A-HDMI-A1: FAIL (0.172s)
Subtest blocking-absolute-wf_vblank: FAIL (29.537s)
Dynamic subtest A-HDMI-A1: FAIL (0.257s)
Subtest blocking-absolute-wf_vblank-interruptible: FAIL (29.458s)
Photos and video clips: https://t.me/esteladaily/334
Thank you for all you guys' excellent work.
On 27/10/2022 22:29, Rodrigo Siqueira wrote:
> Hi Ao/Arnd/Stephen/Nathan,
>
> Ao,
>
> Thanks a lot for this new patch.
>
> 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:
>
> 1. Check plug and unplug displays (let says 5x)
> 2. Change resolutions
> 3. (most wanted test) Could you run some IGT tests?
>
> About IGT, this is the official repository:
>
> https://gitlab.freedesktop.org/drm/igt-gpu-tools
>
> It should be easy to run IGT in your system. Follow a brief summary:
>
> 1. Install dependencies
>
> (maybe I missed something)
>
> Debian
> 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
>
> ArchLinux
> 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
>
> 2. Build IGT
>
> meson build && ninja -C build
>
> 3. Turn off your GUI
>
> (You must run IGT without any GUI)
>
> sudo systemctl isolate multi-user.target
>
> After run this command, you should see the TTY.
>
> 4. Try to run this IGT test
>
> sudo ./build/tests/kms_flip
>
> And let me know if this test looks ok for you.
>
> On 10/27/22 06:52, Arnd Bergmann wrote:
>> On Thu, Oct 27, 2022, at 02:25, Ao Zhong wrote:
>>> After moving all FPU code to the DML folder, we can enable DCN support
>>> for the ARM64 platform. Remove the -mgeneral-regs-only CFLAG from the
>>> code in the DML folder that needs to use hardware FPU, and add a
>>> control
>>> mechanism for ARM Neon.
>
> I recommend you to add the following info in your commit:
>
> 1. System that you use to validate this change (CPU name, monitor,
> distro, wayland/X, etc).
> 2. Describe the set of tests that you tried.
>
>>>
>>> Signed-off-by: Ao Zhong <hacc1225 at gmail.com>
>>
>> There have been problems with stack frame overflows on this code
>> in the past, how much have you tested this with random configurations
>> to see if we still hit them in corner cases on arm64 that may not
>> show up on x86 or powerpc? I would expect to see a few more of them
>> for every new architecture port.
>
> Hi Arnd,
>
> 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.
>
> 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.
>
> Nathan/Stephen,
>
> 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?
>
> 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?
>
> Thanks
> Siqueira
>
>>> index d0c6cf61c676..3cdd109189e0 100644
>>> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
>>> @@ -33,6 +33,12 @@ ifdef CONFIG_PPC64
>>> dml_ccflags := -mhard-float -maltivec
>>> endif
>>>
>>> +ifdef CONFIG_ARM64
>>> +ifdef CONFIG_DRM_AMD_DC_DCN
>>> +dml_rcflags_arm64 := -mgeneral-regs-only
>>> +endif
>>> +endif
>>> +
>>
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calcs.o := $(dml_ccflags)
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_auto.o := $(dml_ccflags)
>>> CFLAGS_$(AMDDALPATH)/dc/dml/calcs/dcn_calc_math.o := $(dml_ccflags)
>>> -Wno-tautological-compare
>>> -CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
>>> $(dml_rcflags)
>>> +CFLAGS_REMOVE_$(AMDDALPATH)/dc/dml/display_mode_vba.o :=
>>> $(dml_rcflags) $(dml_rcflags_arm64)
>>
>> Why do you need separate $(dml_rcflags) and $(dml_rcflags_arm64)
>> rather than adding -mgeneral-regs-only to $(dml_rcflags) directly?
>>
>> Arnd
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20221028/0c509308/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20221028/0c509308/attachment-0001.sig>
More information about the amd-gfx
mailing list