18.02.2022 17:16, Dmitry Osipenko пишет: > 18.02.2022 00:37, Thierry Reding пишет: >> On Thu, Feb 17, 2022 at 11:02:53PM +0300, Dmitry Osipenko wrote: >>> 17.02.2022 22:16, Thierry Reding пишет: >>>> From: Thierry Reding <treding@xxxxxxxxxx> >>>> >>>> Hi all, >>>> >>>> this is the userspace part of the kernel patches that were recently >>>> merged into drm-next: >>>> >>>> https://patchwork.freedesktop.org/series/92378/ >>>> >>>> The goal is to provide a userspace implementation of the UAPI exposed by >>>> the kernel and show its usage in some test programs that can also be >>>> used for basic sanity testing. More complete userspace implementations >>>> are available here: >>>> >>>> * https://github.com/cyndis/vaapi-tegra-driver >>>> * https://github.com/grate-driver/xf86-video-opentegra >>>> * https://github.com/grate-driver/grate >>>> >>>> Changes in v2: >>>> - implement vic_clear() as a helper using ->fill() (Michał Mirosław) >>>> - rebase and fix a couple of Meson errors/warnings >>>> >>>> Thierry >>>> >>>> Thierry Reding (25): >>>> tegra: Indent according to .editorconfig >>>> tegra: Remove unused IOCTL implementations >>>> tegra: Extract common buffer object allocation code >>>> tegra: Fix mmap() of GEM buffer objects >>>> tegra: Add flink helpers >>>> tegra: Add PRIME support helpers >>>> tegra: Make API more consistent >>>> tegra: Install tegra-openclose test >>>> tegra: Update for new UABI >>>> tegra: Include private.h in list of source files >>>> tegra: Add channel APIs >>>> tegra: Add job and push buffer APIs >>>> tegra: Add syncpoint APIs >>>> tests: tegra: Add helper library for tests >>>> tests: tegra: Add gr2d-fill test >>>> tests: tegra: Add syncpt-wait test >>>> tests: tegra: Add syncpoint timeout test >>>> tests: tegra: Add VIC support >>>> tests: tegra: Add VIC 3.0 support >>>> tests: tegra: Add VIC 4.0 support >>>> tests: tegra: Add VIC 4.1 support >>>> tests: tegra: Add VIC 4.2 support >>>> tests: tegra: Add VIC clear test >>>> tests: tegra: Add VIC blit test >>>> tests: tegra: Add VIC flip test >>>> >>>> include/drm/tegra_drm.h | 429 +++++++++++++++++++++++-- >>>> tegra/channel.c | 195 ++++++++++++ >>>> tegra/job.c | 187 +++++++++++ >>>> tegra/meson.build | 7 +- >>>> tegra/private.h | 85 ++++- >>>> tegra/pushbuf.c | 184 +++++++++++ >>>> tegra/syncpt.c | 101 ++++++ >>>> tegra/tegra-symbols.txt | 27 +- >>>> tegra/tegra.c | 386 +++++++++++----------- >>>> tegra/tegra.h | 95 +++++- >>>> tests/tegra/.gitignore | 3 +- >>>> tests/tegra/drm-test-tegra.c | 147 +++++++++ >>>> tests/tegra/drm-test-tegra.h | 55 ++++ >>>> tests/tegra/drm-test.c | 248 +++++++++++++++ >>>> tests/tegra/drm-test.h | 72 +++++ >>>> tests/tegra/gr2d-fill.c | 146 +++++++++ >>>> tests/tegra/host1x.h | 34 ++ >>>> tests/tegra/meson.build | 88 +++++- >>>> tests/tegra/openclose.c | 52 +-- >>>> tests/tegra/syncpt-timeout.c | 163 ++++++++++ >>>> tests/tegra/syncpt-wait.c | 151 +++++++++ >>>> tests/tegra/vic-blit.c | 333 +++++++++++++++++++ >>>> tests/tegra/vic-clear.c | 173 ++++++++++ >>>> tests/tegra/vic-flip.c | 333 +++++++++++++++++++ >>>> tests/tegra/vic.c | 184 +++++++++++ >>>> tests/tegra/vic.h | 181 +++++++++++ >>>> tests/tegra/vic30.c | 458 +++++++++++++++++++++++++++ >>>> tests/tegra/vic30.h | 439 ++++++++++++++++++++++++++ >>>> tests/tegra/vic40.c | 370 ++++++++++++++++++++++ >>>> tests/tegra/vic40.h | 285 +++++++++++++++++ >>>> tests/tegra/vic41.c | 374 ++++++++++++++++++++++ >>>> tests/tegra/vic41.h | 372 ++++++++++++++++++++++ >>>> tests/tegra/vic42.c | 374 ++++++++++++++++++++++ >>>> tests/tegra/vic42.h | 597 +++++++++++++++++++++++++++++++++++ >>>> 34 files changed, 7068 insertions(+), 260 deletions(-) >>> >>> >>> Why do we need these tests in libdrm? Why not IGT? >> >> Oops, sorry. I had meant to reply to your question in the previous >> version. The idea was to have this minimal set of tests in libdrm as a >> way to demonstrate how to use the various APIs. At the same time, this >> is meant to serve as an easy way to validate that everything works from >> the comparatively simple libdrm package. > > Who will be validating libdrm on Tegra? > >> But yes, adding more tests on top of this to IGT is something that I've >> been pondering and I certainly wouldn't object if anyone else was going >> to attempt to do so. I don't think IGT and libdrm need to be mutually >> exclusive, though. > > I know that IGT tests are regularly run by the KernelCI at least on TK1. Finishing my thought.. It's good to have a demo within libdrm, but in my opinion it's not very practical to put effort into libdrm from the perspective of testing. Much more practical should be to put effort into IGT, which already has a use on Tegra.