[igt-dev] [PATCH 1/7] tests/panfrost: Make sure we open a DUMB capable node for prime tests
Boris Brezillon
boris.brezillon at collabora.com
Tue Jun 22 06:52:45 UTC 2021
Hi Petri,
On Mon, 21 Jun 2021 20:00:33 +0300
Petri Latvala <petri.latvala at intel.com> wrote:
> On Mon, Jun 21, 2021 at 02:57:18PM +0200, Boris Brezillon wrote:
> > Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
> > ---
> > tests/panfrost_prime.c | 26 +++++++++++++++++++++++++-
> > 1 file changed, 25 insertions(+), 1 deletion(-)
> >
> > diff --git a/tests/panfrost_prime.c b/tests/panfrost_prime.c
> > index 351d46f2f7e6..f9818108a662 100644
> > --- a/tests/panfrost_prime.c
> > +++ b/tests/panfrost_prime.c
> > @@ -35,12 +35,36 @@
> > #include <sys/ioctl.h>
> > #include "panfrost_drm.h"
> >
> > +static int igt_panfrost_open_kms_driver(void)
> > +{
> > + for (unsigned i = 0; i < 2; i++) {
> > + uint64_t cap_dumb_buf = 0, cap_prime = 0;
> > + char path[32];
> > + int fd;
> > +
> > + snprintf(path, sizeof(path), "/dev/dri/card%d", i);
> > +
> > + fd = open(path, O_RDWR);
> > + if (fd < 0)
> > + continue;
> > +
> > + drmGetCap(fd, DRM_CAP_DUMB_BUFFER, &cap_dumb_buf);
> > + drmGetCap(fd, DRM_CAP_PRIME, &cap_prime);
> > + if (cap_dumb_buf && (cap_prime & DRM_PRIME_CAP_EXPORT))
> > + return fd;
> > +
> > + close(fd);
> > + }
> > +
> > + return -1;
> > +}
> > +
> > igt_main
> > {
> > int fd, kms_fd;
> >
> > igt_fixture {
> > - kms_fd = drm_open_driver_master(DRIVER_ANY);
> > + kms_fd = igt_panfrost_open_kms_driver();
>
>
> How we've done this kind of thing elsewhere is
>
> 1) use drm_open_driver_another(0, DRIVER_foobar) +
> drm_open_driver_another(1, DRIVER_something) to open the two driver
> fds. The _another variants make sure the fds are from different
> devices. Then, check that the fds meet the requirements for testing
> with igt_require et al, don't go looking for additional devices. Let
> the test produce a 'skip' result if requirements are not met.
>
> 2) use device filters when executing the tests to control what devices
> get chosen. Docs at
> https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Device-selection.html
>
>
> That way someone who has, say, vkms + vgem + panfrost drivers present
> is able to run tests and specify that they don't want you to touch
> vkms.
>
Thanks for the tip. I'll use drm_open_driver_another() in v2.
Regards,
Boris
More information about the igt-dev
mailing list