[igt-dev] [PATCH 1/7] tests/panfrost: Make sure we open a DUMB capable node for prime tests
Petri Latvala
petri.latvala at intel.com
Mon Jun 21 17:00:33 UTC 2021
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.
--
Petri Latvala
More information about the igt-dev
mailing list