diff --git a/graphics/igt-gpu-tools/Makefile b/graphics/igt-gpu-tools/Makefile new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/Makefile @@ -0,0 +1,69 @@ +PORTNAME= igt-gpu-tools +DISTVERSION= 1.26.1256 +CATEGORIES= graphics + +MAINTAINER= jfree@FreeBSD.org +COMMENT= IGT gpu tools and tests + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/COPYING + +LIB_DEPENDS= libdrm.so:graphics/libdrm \ + libdw.so:devel/elfutils \ + libpciaccess.so:devel/libpciaccess \ + libudev.so:devel/libudev-devd + +USES= bison gnome meson pkgconfig python shebangfix xorg + +USE_GITLAB= yes +GL_SITE= https://gitlab.freedesktop.org +GL_ACCOUNT= drm +GL_COMMIT= b5e2222c9a988015bdf237e6ebb9f5b6d87ac7e1 + +USE_GNOME= cairo glib20 + +USE_LDCONFIG= yes + +USE_XORG= pixman + +SHEBANG_FILES= scripts/code_cov_gather_on_test scripts/code_cov_parse_info + +OPTIONS_DEFINE= CHAMELIUM DOCS MANPAGES RUNNER TEST VALGRIND +OPTIONS_DEFAULT= CHAMELIUM DOCS MANPAGES RUNNER TEST VALGRIND + +OPTIONS_SUB= yes + +CHAMELIUM_DESC= Build chamelium display tests +RUNNER_DESC= Build test runner +VALGRIND_DESC= Build with support for valgrind annotations + +CHAMELIUM_IMPLIES= TEST +CHAMELIUM_LIB_DEPENDS= libasound.so:audio/alsa-lib \ + libcurl.so:ftp/curl \ + libgsl.so:math/gsl \ + libxmlrpc.so:net/xmlrpc-c +CHAMELIUM_MESON_ENABLED= chamelium + +DOCS_IMPLIES= TEST +DOCS_BUILD_DEPENDS= gtkdoc-mkhtml:textproc/gtk-doc +DOCS_MESON_ENABLED= docs + +MANPAGES_BUILD_DEPENDS= rst2man:textproc/py-docutils +MANPAGES_MESON_ENABLED= man + +RUNNER_IMPLIES= TEST +RUNNER_LIB_DEPENDS= libjson-c.so:devel/json-c \ + liboping.so:net/liboping +RUNNER_MESON_ENABLED= runner + +TEST_LIB_DEPENDS= libunwind.so:devel/libunwind +TEST_MESON_ENABLED= tests + +VALGRIND_IMPLIES= TEST +VALGRIND_BUILD_DEPENDS= valgrind:devel/valgrind +VALGRIND_RUN_DEPENDS= valgrind:devel/valgrind +VALGRIND_MESON_ENABLED= valgrind + +BROKEN_FreeBSD_12= definitions absent in FreeBSD versions < 13.1 + +.include diff --git a/graphics/igt-gpu-tools/distinfo b/graphics/igt-gpu-tools/distinfo new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1660779598 +SHA256 (drm-igt-gpu-tools-b5e2222c9a988015bdf237e6ebb9f5b6d87ac7e1_GL0.tar.gz) = 4eca0b2cfafa4aa071563d12a2cdde8368c772b5e2b7ce6b9f43ea7f264f3d1d +SIZE (drm-igt-gpu-tools-b5e2222c9a988015bdf237e6ebb9f5b6d87ac7e1_GL0.tar.gz) = 2935913 diff --git a/graphics/igt-gpu-tools/files/patch-benchmarks_gem__exec__tracer.c b/graphics/igt-gpu-tools/files/patch-benchmarks_gem__exec__tracer.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-benchmarks_gem__exec__tracer.c @@ -0,0 +1,13 @@ +--- benchmarks/gem_exec_tracer.c.orig 2022-08-17 23:41:15 UTC ++++ benchmarks/gem_exec_tracer.c +@@ -41,6 +41,10 @@ + #include "intel_aub.h" + #include "intel_chipset.h" + ++#ifdef __FreeBSD__ ++#define _IOC_TYPE(nr) (((nr) >> 8) & 255) ++#endif ++ + static int (*libc_close)(int fd); + static int (*libc_ioctl)(int fd, unsigned long request, void *argp); + diff --git a/graphics/igt-gpu-tools/files/patch-benchmarks_gem__syslatency.c b/graphics/igt-gpu-tools/files/patch-benchmarks_gem__syslatency.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-benchmarks_gem__syslatency.c @@ -0,0 +1,24 @@ +--- benchmarks/gem_syslatency.c.orig 2022-08-17 23:41:15 UTC ++++ benchmarks/gem_syslatency.c +@@ -42,12 +42,21 @@ + #include + #include "drm.h" + ++#ifdef __linux__ + #include ++#elif defined(__FreeBSD__) ++#include ++#define MAP_POPULATE MAP_PREFAULT_READ ++#define gettid() getpid() ++#define MADV_HUGEPAGE MADV_SEQUENTIAL ++#endif + + #include "i915/gem_create.h" + #include "i915/gem_ring.h" + ++#ifdef __linux__ + #define sigev_notify_thread_id _sigev_un._tid ++#endif + + static volatile int done; + diff --git a/graphics/igt-gpu-tools/files/patch-include_linux-uapi_sync__file.h b/graphics/igt-gpu-tools/files/patch-include_linux-uapi_sync__file.h new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-include_linux-uapi_sync__file.h @@ -0,0 +1,19 @@ +--- include/linux-uapi/sync_file.h.orig 2022-08-17 23:41:16 UTC ++++ include/linux-uapi/sync_file.h +@@ -12,8 +12,16 @@ + #ifndef _LINUX_SYNC_H + #define _LINUX_SYNC_H + ++#ifdef __linux__ + #include + #include ++#elif defined(__FreeBSD__) ++#include ++#include ++#define __s32 int32_t ++#define __u32 uint32_t ++#define __u64 uint64_t ++#endif + + /** + * struct sync_merge_data - data passed to merge ioctl diff --git a/graphics/igt-gpu-tools/files/patch-lib_drmtest.c b/graphics/igt-gpu-tools/files/patch-lib_drmtest.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_drmtest.c @@ -0,0 +1,32 @@ +--- lib/drmtest.c.orig 2022-08-17 23:41:16 UTC ++++ lib/drmtest.c +@@ -54,7 +54,9 @@ + #include "igt_debugfs.h" + #include "igt_device.h" + #include "igt_gt.h" ++#ifdef __linux__ + #include "igt_kmod.h" ++#endif + #include "igt_params.h" + #include "igt_sysfs.h" + #include "igt_device_scan.h" +@@ -168,13 +170,19 @@ static int modprobe(const char *driver) + + static int modprobe(const char *driver) + { ++#ifdef __linux__ + return igt_kmod_load(driver, ""); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + static void modprobe_i915(const char *name) + { ++#ifdef __linux__ + /* When loading i915, we also want to load snd-hda et al */ + igt_i915_driver_load(NULL); ++#endif + } + + static const struct module { diff --git a/graphics/igt-gpu-tools/files/patch-lib_i915_gem__engine__topology.c b/graphics/igt-gpu-tools/files/patch-lib_i915_gem__engine__topology.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_i915_gem__engine__topology.c @@ -0,0 +1,13 @@ +--- lib/i915/gem_engine_topology.c.orig 2022-08-17 23:41:16 UTC ++++ lib/i915/gem_engine_topology.c +@@ -88,6 +88,10 @@ + */ + #define SIZEOF_QUERY offsetof(struct drm_i915_query_engine_info, \ + engines[GEM_MAX_ENGINES]) ++#ifdef __FreeBSD__ ++#define SYS_getdents64 SYS_freebsd11_getdents ++#define ino64_t ino_t ++#endif + + static int __gem_query(int fd, struct drm_i915_query *q) + { diff --git a/graphics/igt-gpu-tools/files/patch-lib_i915_gem__mman.c b/graphics/igt-gpu-tools/files/patch-lib_i915_gem__mman.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_i915_gem__mman.c @@ -0,0 +1,14 @@ +--- lib/i915/gem_mman.c.orig 2022-08-17 23:41:16 UTC ++++ lib/i915/gem_mman.c +@@ -44,6 +44,11 @@ + #define VG(x) do {} while (0) + #endif + ++#ifdef __FreeBSD__ ++#define mmap64(addr, len, prot, flags, fd, offset) \ ++ mmap(addr, len, prot, flags, fd, offset) ++#endif ++ + static int gem_mmap_gtt_version(int fd) + { + struct drm_i915_getparam gp; diff --git a/graphics/igt-gpu-tools/files/patch-lib_i915_intel__memory__region.c b/graphics/igt-gpu-tools/files/patch-lib_i915_intel__memory__region.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_i915_intel__memory__region.c @@ -0,0 +1,14 @@ +--- lib/i915/intel_memory_region.c.orig 2022-08-17 23:41:16 UTC ++++ lib/i915/intel_memory_region.c +@@ -21,7 +21,11 @@ + * IN THE SOFTWARE. + */ + ++#ifdef __linux__ + #include ++#elif defined(__FreeBSD__) ++#include ++#endif + #include + #include + #include diff --git a/graphics/igt-gpu-tools/files/patch-lib_i915_perf.c b/graphics/igt-gpu-tools/files/patch-lib_i915_perf.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_i915_perf.c @@ -0,0 +1,12 @@ +--- lib/i915/perf.c.orig 2022-08-17 23:41:16 UTC ++++ lib/i915/perf.c +@@ -29,7 +29,9 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#endif + #include + #include + diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__audio.c b/graphics/igt-gpu-tools/files/patch-lib_igt__audio.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__audio.c @@ -0,0 +1,13 @@ +--- lib/igt_audio.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_audio.c +@@ -26,6 +26,10 @@ + + #include "config.h" + ++#ifdef __FreeBSD__ ++#include ++#endif ++ + #include + #include + #include diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__aux.h b/graphics/igt-gpu-tools/files/patch-lib_igt__aux.h new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__aux.h @@ -0,0 +1,25 @@ +--- lib/igt_aux.h.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_aux.h +@@ -34,10 +34,9 @@ + #include + #include + #include +-#ifdef __linux__ +-# include +-#endif + ++#include ++ + #include + + #include "igt_core.h" +@@ -48,8 +47,8 @@ + # ifndef HAVE_GETTID + # define gettid() (pid_t)(syscall(__NR_gettid)) + # endif +-#endif + #define sigev_notify_thread_id _sigev_un._tid ++#endif + + /* auxialiary igt helpers from igt_aux.c */ + /* generally useful helpers */ diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__aux.c b/graphics/igt-gpu-tools/files/patch-lib_igt__aux.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__aux.c @@ -0,0 +1,195 @@ +--- lib/igt_aux.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_aux.c +@@ -52,7 +52,9 @@ + #include + #include + ++#ifdef __linux__ + #include ++#endif + #include + + #include "drmtest.h" +@@ -75,6 +77,14 @@ + #include /* for dirname() */ + #endif + ++#ifdef __FreeBSD__ ++#define gettid() getpid() ++#define setpgrp() setpgid(0, 0) ++typedef struct { ++ char state; ++} proc_t; ++#endif ++ + /** + * SECTION:igt_aux + * @short_description: Auxiliary libraries and support functions +@@ -1217,6 +1227,7 @@ int igt_is_process_running(const char *comm) + */ + int igt_is_process_running(const char *comm) + { ++#ifdef __linux__ + PROCTAB *proc; + proc_t *proc_info; + bool found = false; +@@ -1235,6 +1246,9 @@ int igt_is_process_running(const char *comm) + + closeproc(proc); + return found; ++#elif defined(__FreeBSD__) ++ return false; ++#endif + } + + /** +@@ -1251,6 +1265,7 @@ int igt_terminate_process(int sig, const char *comm) + */ + int igt_terminate_process(int sig, const char *comm) + { ++#ifdef __linux__ + PROCTAB *proc; + proc_t *proc_info; + int err = 0; +@@ -1272,6 +1287,9 @@ int igt_terminate_process(int sig, const char *comm) + + closeproc(proc); + return err; ++#elif defined(__FreeBSD__) ++ return 0; ++#endif + } + + struct pinfo { +@@ -1343,6 +1361,7 @@ igt_show_stat(proc_t *info, int *state, const char *fn + static void + igt_show_stat(proc_t *info, int *state, const char *fn) + { ++#ifdef __linux__ + struct pinfo p = { .pid = info->tid, .comm = info->cmd, .fn = fn }; + + if (!*state) +@@ -1350,11 +1369,13 @@ igt_show_stat(proc_t *info, int *state, const char *fn + + __igt_show_stat(&p); + ++*state; ++#endif + } + + static void + __igt_lsof_fds(proc_t *proc_info, int *state, char *proc_path, const char *dir) + { ++#ifdef __linux__ + struct dirent *d; + struct stat st; + char path[PATH_MAX]; +@@ -1407,6 +1428,7 @@ again: + } + + closedir(dp); ++#endif + } + + /* +@@ -1416,6 +1438,7 @@ __igt_lsof(const char *dir) + static void + __igt_lsof(const char *dir) + { ++#ifdef __linux__ + PROCTAB *proc; + proc_t *proc_info; + +@@ -1456,6 +1479,7 @@ __igt_lsof(const char *dir) + } + + closeproc(proc); ++#endif + } + + /** +@@ -1492,6 +1516,7 @@ static void pulseaudio_unload_module(proc_t *proc_info + + static void pulseaudio_unload_module(proc_t *proc_info) + { ++#ifdef __linux__ + struct igt_helper_process pa_proc = {}; + char xdg_dir[PATH_MAX]; + const char *homedir; +@@ -1513,6 +1538,7 @@ static void pulseaudio_unload_module(proc_t *proc_info + system("for i in $(pacmd list-sources|grep module:|cut -d : -f 2); do pactl unload-module $i; done"); + } + igt_wait_helper(&pa_proc); ++#endif + } + + static int pipewire_pulse_pid = 0; +@@ -1521,6 +1547,7 @@ static void pipewire_reserve_wait(void) + + static void pipewire_reserve_wait(void) + { ++#ifdef __linux__ + char xdg_dir[PATH_MAX]; + const char *homedir; + struct passwd *pw; +@@ -1562,6 +1589,7 @@ static void pipewire_reserve_wait(void) + */ + exit(system("pw-reserve -n Audio0 -r")); + } ++#endif + } + + /* Maximum time waiting for pw-reserve to start running */ +@@ -1569,6 +1597,7 @@ int pipewire_pulse_start_reserve(void) + + int pipewire_pulse_start_reserve(void) + { ++#ifdef __linux__ + bool is_pw_reserve_running = false; + proc_t *proc_info; + int attempts = 0; +@@ -1614,6 +1643,9 @@ int pipewire_pulse_start_reserve(void) + */ + + return 0; ++#elif defined(__FreeBSD__) ++ return 1; ++#endif + } + + void pipewire_pulse_stop_reserve(void) +@@ -1647,6 +1679,7 @@ __igt_lsof_audio_and_kill_proc(proc_t *proc_info, char + static int + __igt_lsof_audio_and_kill_proc(proc_t *proc_info, char *proc_path) + { ++#ifdef __linux__ + const char *audio_dev = "/dev/snd/"; + char path[PATH_MAX * 2]; + struct dirent *d; +@@ -1747,6 +1780,9 @@ __igt_lsof_audio_and_kill_proc(proc_t *proc_info, char + + closedir(dp); + return fail; ++#elif defined(__FreeBSD__) ++ return 1; ++#endif + } + + /* +@@ -1759,6 +1795,7 @@ igt_lsof_kill_audio_processes(void) + int + igt_lsof_kill_audio_processes(void) + { ++#ifdef __linux__ + char path[PATH_MAX]; + proc_t *proc_info; + PROCTAB *proc; +@@ -1779,6 +1816,9 @@ igt_lsof_kill_audio_processes(void) + closeproc(proc); + + return fail; ++#elif defined(__FreeBSD__) ++ return 1; ++#endif + } + + static struct igt_siglatency { diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__core.h b/graphics/igt-gpu-tools/files/patch-lib_igt__core.h new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__core.h @@ -0,0 +1,23 @@ +--- lib/igt_core.h.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_core.h +@@ -31,7 +31,9 @@ + #define IGT_CORE_H + + #include ++#ifdef __linux__ + #include ++#endif + #include + #include + #include +@@ -47,6 +49,10 @@ + #define IGT_LOG_DOMAIN (NULL) + #endif + ++#ifdef __FreeBSD__ ++#include ++#define jmp_buf sigjmp_buf ++#endif + + #ifndef STATIC_ANALYSIS_BUILD + #if defined(__clang_analyzer__) || defined(__COVERITY__) || defined(__KLOCWORK__) diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__core.c b/graphics/igt-gpu-tools/files/patch-lib_igt__core.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__core.c @@ -0,0 +1,61 @@ +--- lib/igt_core.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_core.c +@@ -43,9 +43,9 @@ + #include + #include + #include +-#ifdef __linux__ ++ + #include +-#endif ++ + #include + #include + #include +@@ -85,6 +85,12 @@ + #include /* for basename() on Solaris */ + #endif + ++#ifdef __FreeBSD__ ++#define gettid() getpid() ++#define pthread_sigqueue(pid, signo, value) sigqueue(pid, signo, value) ++#define sighandler_t sig_t ++#endif ++ + /** + * SECTION:igt_core + * @short_description: Core i-g-t testing support +@@ -786,6 +792,7 @@ static void oom_adjust_for_doom(void) + + static void oom_adjust_for_doom(void) + { ++#ifdef __linux__ + int fd; + const char always_kill[] = "1000"; + +@@ -793,7 +800,7 @@ static void oom_adjust_for_doom(void) + igt_assert(fd != -1); + igt_assert(write(fd, always_kill, sizeof(always_kill)) == sizeof(always_kill)); + close(fd); +- ++#endif + } + + /** +@@ -2223,7 +2230,16 @@ bool __igt_fork_helper(struct igt_helper_process *proc + igt_assert(0); + case 0: + reset_helper_process_list(); ++#ifdef __linux__ + oom_adjust_for_doom(); ++#elif defined(__FreeBSD__) ++ /* ++ * Horrible temporary solution. The parent expects the ++ * forked child to be killed later on. Raising a SIGTERM ++ * forces this, but this behavior is not expected. ++ */ ++ raise(SIGTERM); ++#endif + + return true; + default: diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__debugfs.c b/graphics/igt-gpu-tools/files/patch-lib_igt__debugfs.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__debugfs.c @@ -0,0 +1,23 @@ +--- lib/igt_debugfs.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_debugfs.c +@@ -25,7 +25,9 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#endif + #include + #include + #include +@@ -42,6 +44,10 @@ + #include "igt_kms.h" + #include "igt_debugfs.h" + #include "igt_sysfs.h" ++ ++#ifdef __FreeBSD__ ++#define mount(src, dest, fstype, flags, data) mount(fstype, dest, flags, data) ++#endif + + /** + * SECTION:igt_debugfs diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__device.c b/graphics/igt-gpu-tools/files/patch-lib_igt__device.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__device.c @@ -0,0 +1,12 @@ +--- lib/igt_device.c.orig 2022-08-17 23:41:17 UTC ++++ lib/igt_device.c +@@ -25,7 +25,9 @@ + #include + + #include ++#ifdef __linux__ + #include ++#endif + #include "igt.h" + #include "igt_device.h" + #include "igt_sysfs.h" diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__device__scan.c b/graphics/igt-gpu-tools/files/patch-lib_igt__device__scan.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__device__scan.c @@ -0,0 +1,14 @@ +--- lib/igt_device_scan.c.orig 2022-08-17 23:41:17 UTC ++++ lib/igt_device_scan.c +@@ -32,7 +32,11 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#elif defined(__FreeBSD__) ++#include ++#endif + #include + #include + #include diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__dummyload.c b/graphics/igt-gpu-tools/files/patch-lib_igt__dummyload.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__dummyload.c @@ -0,0 +1,29 @@ +--- lib/igt_dummyload.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_dummyload.c +@@ -26,7 +26,9 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#endif + + #include + +@@ -523,6 +525,8 @@ void igt_spin_set_timeout(igt_spin_t *spin, int64_t ns + */ + void igt_spin_set_timeout(igt_spin_t *spin, int64_t ns) + { ++/* TODO: FreeBSD - POSIX TIMER */ ++#ifdef __linux__ + struct sched_param param = { .sched_priority = 99 }; + struct itimerspec its; + pthread_attr_t attr; +@@ -554,6 +558,7 @@ void igt_spin_set_timeout(igt_spin_t *spin, int64_t ns + its.it_value.tv_sec = ns / NSEC_PER_SEC; + its.it_value.tv_nsec = ns % NSEC_PER_SEC; + igt_assert(timerfd_settime(timerfd, 0, &its, NULL) == 0); ++#endif + } + + static void sync_write(igt_spin_t *spin, uint32_t value) diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__eld.c b/graphics/igt-gpu-tools/files/patch-lib_igt__eld.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__eld.c @@ -0,0 +1,13 @@ +--- lib/igt_eld.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_eld.c +@@ -23,6 +23,10 @@ + * Authors: Simon Ser + */ + ++#ifdef __FreeBSD__ ++#include ++#endif ++ + #include "config.h" + + #include diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__frame.c b/graphics/igt-gpu-tools/files/patch-lib_igt__frame.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__frame.c @@ -0,0 +1,13 @@ +--- lib/igt_frame.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_frame.c +@@ -24,6 +24,10 @@ + * Paul Kocialkowski + */ + ++#ifdef __FreeBSD__ ++#include ++#endif ++ + #include "config.h" + + #include diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__kmod.h b/graphics/igt-gpu-tools/files/patch-lib_igt__kmod.h new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__kmod.h @@ -0,0 +1,20 @@ +--- lib/igt_kmod.h.orig 2022-08-17 23:41:17 UTC ++++ lib/igt_kmod.h +@@ -24,9 +24,17 @@ + #ifndef IGT_KMOD_H + #define IGT_KMOD_H + ++#ifdef __linux__ + #include ++#endif + + #include "igt_list.h" ++ ++#ifdef __FreeBSD__ ++struct kmod_module { ++ size_t size; ++}; ++#endif + + bool igt_kmod_is_loaded(const char *mod_name); + void igt_kmod_list_loaded(void); diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__kmod.c b/graphics/igt-gpu-tools/files/patch-lib_igt__kmod.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__kmod.c @@ -0,0 +1,453 @@ +--- lib/igt_kmod.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_kmod.c +@@ -32,6 +32,12 @@ + #include "igt_sysfs.h" + #include "igt_taints.h" + ++#ifdef __FreeBSD__ ++struct kmod_ctx { ++ int refcount; ++}; ++#endif ++ + /** + * SECTION:igt_kmod + * @short_description: Wrappers around libkmod for module loading/unloading +@@ -59,6 +65,7 @@ static struct kmod_ctx *kmod_ctx(void) + + static struct kmod_ctx *kmod_ctx(void) + { ++#ifdef __linux__ + static struct kmod_ctx *ctx; + const char **config_paths = NULL; + char *config_paths_str; +@@ -106,6 +113,10 @@ out: + kmod_set_log_fn(ctx, squelch, NULL); + out: + return ctx; ++#elif defined(__FreeBSD__) ++ static struct kmod_ctx *ctx = NULL; ++ return ctx; ++#endif + } + + /** +@@ -121,6 +132,7 @@ igt_kmod_is_loaded(const char *mod_name) + bool + igt_kmod_is_loaded(const char *mod_name) + { ++#ifdef __linux__ + struct kmod_ctx *ctx = kmod_ctx(); + struct kmod_list *mod, *list; + bool ret = false; +@@ -142,16 +154,24 @@ out: + kmod_module_unref_list(list); + out: + return ret; ++#elif defined(__FreeBSD__) ++ return false; ++#endif + } + + static bool + igt_kmod_is_loading(struct kmod_module *kmod) + { ++#ifdef __linux__ + return kmod_module_get_initstate(kmod) == KMOD_MODULE_COMING; ++#elif defined(__FreeBSD__) ++ return false; ++#endif + } + + static int modprobe(struct kmod_module *kmod, const char *options) + { ++#ifdef __linux__ + unsigned int flags; + + flags = 0; +@@ -160,6 +180,9 @@ static int modprobe(struct kmod_module *kmod, const ch + + return kmod_module_probe_insert_module(kmod, flags, options, + NULL, NULL, NULL); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + /** +@@ -171,6 +194,7 @@ bool igt_kmod_has_param(const char *module_name, const + */ + bool igt_kmod_has_param(const char *module_name, const char *param) + { ++#ifdef __linux__ + struct kmod_module *kmod; + struct kmod_list *d, *pre; + bool result = false; +@@ -200,6 +224,9 @@ out: + out: + kmod_module_unref(kmod); + return result; ++#elif defined(__FreeBSD__) ++ return false; ++#endif + } + + /** +@@ -220,6 +247,7 @@ igt_kmod_load(const char *mod_name, const char *opts) + int + igt_kmod_load(const char *mod_name, const char *opts) + { ++#ifdef __linux__ + struct kmod_ctx *ctx = kmod_ctx(); + struct kmod_module *kmod; + int err = 0; +@@ -249,10 +277,14 @@ out: + out: + kmod_module_unref(kmod); + return err < 0 ? err : 0; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + static int igt_kmod_unload_r(struct kmod_module *kmod, unsigned int flags) + { ++#ifdef __linux__ + struct kmod_list *holders, *pos; + int err = 0; + +@@ -280,6 +312,9 @@ static int igt_kmod_unload_r(struct kmod_module *kmod, + } + + return kmod_module_remove_module(kmod, flags); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + /** +@@ -296,6 +331,7 @@ igt_kmod_unload(const char *mod_name, unsigned int fla + int + igt_kmod_unload(const char *mod_name, unsigned int flags) + { ++#ifdef __linux__ + struct kmod_ctx *ctx = kmod_ctx(); + struct kmod_module *kmod; + int err; +@@ -316,6 +352,9 @@ out: + out: + kmod_module_unref(kmod); + return err < 0 ? err : 0; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + /** +@@ -326,6 +365,7 @@ igt_kmod_list_loaded(void) + void + igt_kmod_list_loaded(void) + { ++#ifdef __linux__ + struct kmod_ctx *ctx = kmod_ctx(); + struct kmod_list *module, *list; + +@@ -361,6 +401,7 @@ igt_kmod_list_loaded(void) + } + + kmod_module_unref_list(list); ++#endif + } + + static void *strdup_realloc(char *origptr, const char *strdata) +@@ -382,6 +423,7 @@ igt_i915_driver_load(const char *opts) + int + igt_i915_driver_load(const char *opts) + { ++#ifdef __linux__ + int ret; + + if (opts) +@@ -397,10 +439,14 @@ igt_i915_driver_load(const char *opts) + igt_kmod_load("snd_hda_intel", NULL); + + return 0; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + static int igt_always_unload_audio_driver(char **who) + { ++#ifdef __linux__ + int ret; + const char *sound[] = { + "snd_hda_intel", +@@ -443,6 +489,9 @@ static int igt_always_unload_audio_driver(char **who) + } + } + return 0; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + struct module_ref { +@@ -455,6 +504,7 @@ static struct module_ref *read_module_dependencies(uns + + static struct module_ref *read_module_dependencies(unsigned int *num_mod) + { ++#ifdef __linux__ + FILE *fp = fopen("/proc/modules", "r"); + struct module_ref *mod = NULL; + size_t line_buf_size = 0; +@@ -509,10 +559,15 @@ static struct module_ref *read_module_dependencies(uns + + *num_mod = n_mod; + return mod; ++#elif defined(__FreeBSD__) ++ struct module_ref *mod = NULL; ++ return mod; ++#endif + } + + static void free_module_ref(struct module_ref *mod, unsigned int num_mod) + { ++#ifdef __linux__ + int i; + + for (i = 0; i < num_mod; i++) { +@@ -520,11 +575,13 @@ static void free_module_ref(struct module_ref *mod, un + free(mod[i].required_by); + } + free(mod); ++#endif + } + + static int igt_unload_driver(struct module_ref *mod, unsigned int num_mod, + unsigned int pos) + { ++#ifdef __linux__ + int ret, i; + + /* Recursively remove depending modules, if any */ +@@ -536,6 +593,9 @@ static int igt_unload_driver(struct module_ref *mod, u + } + + return igt_kmod_unload(mod[pos].name, 0); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + #define LINUX_VERSION(major, minor, patch) \ +@@ -543,6 +603,7 @@ static int linux_kernel_version(void) + + static int linux_kernel_version(void) + { ++#ifdef __linux__ + struct utsname utsname; + int ver[3] = { 0 }; + int i = 0; +@@ -572,10 +633,14 @@ static int linux_kernel_version(void) + } + + return LINUX_VERSION(ver[0], ver[1], ver[2]); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int igt_audio_driver_unload(char **who) + { ++#ifdef __linux__ + const char *drm_driver = "i915"; + unsigned int num_mod, i, j; + struct module_ref *mod; +@@ -647,10 +712,14 @@ ret: + free_module_ref(mod, num_mod); + + return ret; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int __igt_i915_driver_unload(char **who) + { ++#ifdef __linux__ + int ret; + + const char *aux[] = { +@@ -694,6 +763,9 @@ int __igt_i915_driver_unload(char **who) + } + + return 0; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + /** +@@ -705,6 +777,7 @@ igt_i915_driver_unload(void) + int + igt_i915_driver_unload(void) + { ++#ifdef __linux__ + char *who = NULL; + int ret; + +@@ -731,6 +804,9 @@ igt_i915_driver_unload(void) + } + + return 0; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + /** +@@ -745,6 +821,7 @@ igt_amdgpu_driver_load(const char *opts) + int + igt_amdgpu_driver_load(const char *opts) + { ++#ifdef __linux__ + if (opts) + igt_info("Reloading amdgpu with %s\n\n", opts); + +@@ -756,6 +833,9 @@ igt_amdgpu_driver_load(const char *opts) + bind_fbcon(true); + + return IGT_EXIT_SUCCESS; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + /** +@@ -770,6 +850,7 @@ igt_amdgpu_driver_unload(void) + int + igt_amdgpu_driver_unload(void) + { ++#ifdef __linux__ + bind_fbcon(false); + + if (igt_kmod_is_loaded("amdgpu")) { +@@ -790,6 +871,9 @@ igt_amdgpu_driver_unload(void) + } + + return IGT_EXIT_SUCCESS; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + static void kmsg_dump(int fd) +@@ -834,6 +918,7 @@ static void tests_add(struct igt_kselftest_list *tl, s + + static void tests_add(struct igt_kselftest_list *tl, struct igt_list_head *list) + { ++#ifdef __linux__ + struct igt_kselftest_list *pos; + + igt_list_for_each_entry(pos, list, link) +@@ -841,12 +926,14 @@ static void tests_add(struct igt_kselftest_list *tl, s + break; + + igt_list_add_tail(&tl->link, &pos->link); ++#endif + } + + void igt_kselftest_get_tests(struct kmod_module *kmod, + const char *filter, + struct igt_list_head *tests) + { ++#ifdef __linux__ + const char *param_prefix = "igt__"; + const int prefix_len = strlen(param_prefix); + struct kmod_list *d, *pre; +@@ -892,19 +979,25 @@ void igt_kselftest_get_tests(struct kmod_module *kmod, + tests_add(tl, tests); + } + kmod_module_info_free_list(pre); ++#endif + } + + static int open_parameters(const char *module_name) + { ++#ifdef __linux__ + char path[256]; + + snprintf(path, sizeof(path), "/sys/module/%s/parameters", module_name); + return open(path, O_RDONLY); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int igt_kselftest_init(struct igt_kselftest *tst, + const char *module_name) + { ++#ifdef __linux__ + int err; + + memset(tst, 0, sizeof(*tst)); +@@ -920,10 +1013,14 @@ int igt_kselftest_init(struct igt_kselftest *tst, + return err; + + return 0; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int igt_kselftest_begin(struct igt_kselftest *tst) + { ++#ifdef __linux__ + int err; + + if (strcmp(tst->module_name, "i915") == 0) +@@ -935,6 +1032,9 @@ int igt_kselftest_begin(struct igt_kselftest *tst) + tst->kmsg = open("/dev/kmsg", O_RDONLY | O_NONBLOCK); + + return 0; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int igt_kselftest_execute(struct igt_kselftest *tst, +@@ -942,6 +1042,7 @@ int igt_kselftest_execute(struct igt_kselftest *tst, + const char *options, + const char *result) + { ++#ifdef __linux__ + unsigned long taints; + char buf[1024]; + int err; +@@ -973,18 +1074,25 @@ int igt_kselftest_execute(struct igt_kselftest *tst, + igt_assert_eq(igt_kernel_tainted(&taints), 0); + + return err; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + void igt_kselftest_end(struct igt_kselftest *tst) + { ++#ifdef __linux__ + kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE); + close(tst->kmsg); ++#endif + } + + void igt_kselftest_fini(struct igt_kselftest *tst) + { ++#ifdef __linux__ + free(tst->module_name); + kmod_module_unref(tst->kmod); ++#endif + } + + static const char *unfilter(const char *filter, const char *name) diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__kms.c b/graphics/igt-gpu-tools/files/patch-lib_igt__kms.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__kms.c @@ -0,0 +1,13 @@ +--- lib/igt_kms.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_kms.c +@@ -43,6 +43,10 @@ + #include + #endif + ++#ifdef __FreeBSD__ ++#include ++#endif ++ + #include + #include + #include diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__os.c b/graphics/igt-gpu-tools/files/patch-lib_igt__os.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__os.c @@ -0,0 +1,42 @@ +--- lib/igt_os.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_os.c +@@ -44,6 +44,9 @@ + #include + #elif defined(HAVE_SWAPCTL) /* Solaris */ + #include ++#elif defined(__FreeBSD__) ++#include ++#include + #endif + #include + +@@ -148,6 +151,15 @@ igt_get_avail_ram_mb(void) + npages = sysconf(_SC_AVPHYS_PAGES); + + retval = (uint64_t) pagesize * npages; ++#elif defined(__FreeBSD__) /* FreeBSD */ ++ uint64_t npages, pagesize; ++ size_t npages_len = sizeof(npages); ++ size_t pagesize_len = sizeof(pagesize); ++ ++ sysctlbyname("vm.stats.vm.v_free_count", &npages, &npages_len, NULL, 0); ++ sysctlbyname("vm.stats.vm.v_page_size", &pagesize, &pagesize_len, NULL, 0); ++ ++ retval = pagesize * npages; + #else + #error "Unknown how to get available RAM for this OS" + #endif +@@ -210,6 +222,13 @@ igt_get_total_swap_mb(void) + free(buf); + + retval = (uint64_t) pagesize * totalpages; ++#elif defined(__FreeBSD__) /* FreeBSD */ ++ uint64_t swap_total; ++ size_t swap_total_len = sizeof(swap_total); ++ ++ sysctlbyname("vm.swap_total", &swap_total, &swap_total_len, NULL, 0); ++ ++ retval = swap_total; + #else + #warning "Unknown how to get swap size for this OS" + return 0; diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__perf.h b/graphics/igt-gpu-tools/files/patch-lib_igt__perf.h new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__perf.h @@ -0,0 +1,40 @@ +--- lib/igt_perf.h.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_perf.h +@@ -27,10 +27,18 @@ + + #include + ++#ifdef __linux__ + #include ++#endif + + #include "igt_gt.h" + ++#ifdef __FreeBSD__ ++struct perf_event_attr { ++ size_t size; ++}; ++#endif ++ + static inline int + perf_event_open(struct perf_event_attr *attr, + pid_t pid, +@@ -38,6 +46,8 @@ perf_event_open(struct perf_event_attr *attr, + int group_fd, + unsigned long flags) + { ++#ifdef __linux__ ++ + #ifndef __NR_perf_event_open + #if defined(__i386__) + #define __NR_perf_event_open 336 +@@ -49,6 +59,9 @@ perf_event_open(struct perf_event_attr *attr, + #endif + attr->size = sizeof(*attr); + return syscall(__NR_perf_event_open, attr, pid, cpu, group_fd, flags); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif /* __linux__ */ + } + + uint64_t igt_perf_type_id(const char *device); diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__perf.c b/graphics/igt-gpu-tools/files/patch-lib_igt__perf.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__perf.c @@ -0,0 +1,119 @@ +--- lib/igt_perf.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_perf.c +@@ -4,8 +4,10 @@ + #include + #include + #include ++#ifdef __linux__ + #include + #include ++#endif + #include + #include + +@@ -13,6 +15,7 @@ static char *bus_address(int i915, char *path, int pat + + static char *bus_address(int i915, char *path, int pathlen) + { ++#ifdef __linux__ + struct stat st; + int len = -1; + int dir; +@@ -39,11 +42,13 @@ static char *bus_address(int i915, char *path, int pat + if (s) + memmove(path, s + 1, len - (s - path) + 1); + ++#endif + return path; + } + + const char *i915_perf_device(int i915, char *buf, int buflen) + { ++#ifdef __linux__ + char *s; + + #define prefix "i915_" +@@ -63,6 +68,7 @@ const char *i915_perf_device(int i915, char *buf, int + if (*s == ':') + *s = '_'; + ++#endif + return buf; + } + +@@ -99,6 +105,7 @@ _perf_open(uint64_t type, uint64_t config, int group, + static int + _perf_open(uint64_t type, uint64_t config, int group, uint64_t format) + { ++#ifdef __linux__ + struct perf_event_attr attr = { }; + int nr_cpus = get_nprocs_conf(); + int cpu = 0, ret; +@@ -120,40 +127,67 @@ _perf_open(uint64_t type, uint64_t config, int group, + } while ((ret < 0 && errno == EINVAL) && (cpu < nr_cpus)); + + return ret; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int perf_igfx_open(uint64_t config) + { ++#ifdef __linux__ + return _perf_open(igt_perf_type_id("i915"), config, -1, + PERF_FORMAT_TOTAL_TIME_ENABLED); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int perf_igfx_open_group(uint64_t config, int group) + { ++#ifdef __linux__ + return _perf_open(igt_perf_type_id("i915"), config, group, + PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int perf_i915_open(int i915, uint64_t config) + { ++#ifdef __linux__ + return _perf_open(i915_perf_type_id(i915), config, -1, + PERF_FORMAT_TOTAL_TIME_ENABLED); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int perf_i915_open_group(int i915, uint64_t config, int group) + { ++#ifdef __linux__ + return _perf_open(i915_perf_type_id(i915), config, group, + PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int igt_perf_open(uint64_t type, uint64_t config) + { ++#ifdef __linux__ + return _perf_open(type, config, -1, + PERF_FORMAT_TOTAL_TIME_ENABLED); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + int igt_perf_open_group(uint64_t type, uint64_t config, int group) + { ++#ifdef __linux__ + return _perf_open(type, config, group, + PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__pm.c b/graphics/igt-gpu-tools/files/patch-lib_igt__pm.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__pm.c @@ -0,0 +1,12 @@ +--- lib/igt_pm.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_pm.c +@@ -33,7 +33,9 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#endif + #include + #include + diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__syncobj.c b/graphics/igt-gpu-tools/files/patch-lib_igt__syncobj.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__syncobj.c @@ -0,0 +1,13 @@ +--- lib/igt_syncobj.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_syncobj.c +@@ -27,6 +27,10 @@ + #include "igt.h" + #include "igt_syncobj.h" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + /** + * SECTION:igt_syncobj + * @short_description: Library with syncobj helpers diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__sysfs.c b/graphics/igt-gpu-tools/files/patch-lib_igt__sysfs.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__sysfs.c @@ -0,0 +1,12 @@ +--- lib/igt_sysfs.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_sysfs.c +@@ -24,7 +24,9 @@ + + #include + #include ++#ifdef __linux__ + #include ++#endif + #include + #include + #include diff --git a/graphics/igt-gpu-tools/files/patch-lib_igt__vgem.c b/graphics/igt-gpu-tools/files/patch-lib_igt__vgem.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_igt__vgem.c @@ -0,0 +1,14 @@ +--- lib/igt_vgem.c.orig 2022-08-17 23:41:16 UTC ++++ lib/igt_vgem.c +@@ -30,6 +30,11 @@ + #include "igt_core.h" + #include "ioctl_wrappers.h" + ++#ifdef __FreeBSD__ ++#define mmap64(addr, len, prot, flags, fd, offset) \ ++ mmap(addr, len, prot, flags, fd, offset) ++#endif ++ + /** + * SECTION:igt_vgem + * @short_description: VGEM support library diff --git a/graphics/igt-gpu-tools/files/patch-lib_intel__allocator.c b/graphics/igt-gpu-tools/files/patch-lib_intel__allocator.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_intel__allocator.c @@ -0,0 +1,13 @@ +--- lib/intel_allocator.c.orig 2022-08-17 23:41:16 UTC ++++ lib/intel_allocator.c +@@ -17,6 +17,10 @@ + #include "intel_allocator.h" + #include "intel_allocator_msgchannel.h" + ++#ifdef __FreeBSD__ ++#define gettid() getpid() ++#endif ++ + //#define ALLOCDBG + #ifdef ALLOCDBG + #define alloc_info igt_info diff --git a/graphics/igt-gpu-tools/files/patch-lib_intel__batchbuffer.c b/graphics/igt-gpu-tools/files/patch-lib_intel__batchbuffer.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_intel__batchbuffer.c @@ -0,0 +1,14 @@ +--- lib/intel_batchbuffer.c.orig 2022-08-17 23:41:16 UTC ++++ lib/intel_batchbuffer.c +@@ -60,6 +60,11 @@ + #define BCS_SRC_Y (1 << 0) + #define BCS_DST_Y (1 << 1) + ++/* memory leak */ ++#ifdef __FreeBSD__ ++#define tdestroy(root, free_node) ++#endif ++ + /** + * SECTION:intel_batchbuffer + * @short_description: Batchbuffer and blitter support diff --git a/graphics/igt-gpu-tools/files/patch-lib_sw__sync.c b/graphics/igt-gpu-tools/files/patch-lib_sw__sync.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_sw__sync.c @@ -0,0 +1,32 @@ +--- lib/sw_sync.c.orig 2022-08-17 23:41:16 UTC ++++ lib/sw_sync.c +@@ -41,6 +41,10 @@ + #include "drmtest.h" + #include "ioctl_wrappers.h" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + /** + * SECTION:sw_sync + * @short_description: Software sync (fencing) support library +@@ -248,14 +252,18 @@ static void modprobe(const char *driver) + + static void modprobe(const char *driver) + { ++#ifdef __linux__ + igt_kmod_load(driver, NULL); ++#endif + } + + static bool kernel_has_sw_sync(void) + { + char buf[128]; + ++#ifdef __linux__ + modprobe("sw_sync"); ++#endif + + return kernel_sw_sync_path(buf, sizeof(buf)); + } diff --git a/graphics/igt-gpu-tools/files/patch-lib_tests_igt__exit__handler.c b/graphics/igt-gpu-tools/files/patch-lib_tests_igt__exit__handler.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_tests_igt__exit__handler.c @@ -0,0 +1,12 @@ +--- lib/tests/igt_exit_handler.c.orig 2022-08-17 23:41:17 UTC ++++ lib/tests/igt_exit_handler.c +@@ -125,5 +125,9 @@ int main(int argc, char **argv) + internal_assert_wexited(status, IGT_EXIT_SKIP); + + status = testfunc(SIG); ++#ifdef __linux__ + internal_assert_wsignaled(status, SIGTERM); ++#elif defined(__FreeBSD__) ++ internal_assert(status == 0); ++#endif + } diff --git a/graphics/igt-gpu-tools/files/patch-lib_tests_igt__fork.c b/graphics/igt-gpu-tools/files/patch-lib_tests_igt__fork.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_tests_igt__fork.c @@ -0,0 +1,14 @@ +--- lib/tests/igt_fork.c.orig 2022-08-17 23:41:17 UTC ++++ lib/tests/igt_fork.c +@@ -109,7 +109,11 @@ __noreturn static void subtest_leak(void) + __noreturn static void subtest_leak(void) + { + pid_t *children = ++#ifdef __linux__ + mmap(0, 4096, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0); ++#elif defined(__FreeBSD__) ++ mmap(0, 4096, PROT_WRITE | PROT_READ, MAP_SHARED | MAP_ANON, -1, 0); ++#endif + const int num_children = 4096 / sizeof(*children); + + igt_subtest_init(fake_argc, fake_argv); diff --git a/graphics/igt-gpu-tools/files/patch-lib_tests_igt__tests__common.h b/graphics/igt-gpu-tools/files/patch-lib_tests_igt__tests__common.h new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-lib_tests_igt__tests__common.h @@ -0,0 +1,20 @@ +--- lib/tests/igt_tests_common.h.orig 2022-08-17 23:41:17 UTC ++++ lib/tests/igt_tests_common.h +@@ -48,8 +48,17 @@ static inline void internal_assert_wsignaled(int wstat + + static inline void internal_assert_wsignaled(int wstatus, int signal) + { ++#ifdef __linux__ + internal_assert(WIFSIGNALED(wstatus) && + WTERMSIG(wstatus) == signal); ++#elif defined(__FreeBSD__) ++ if (WIFSIGNALED(wstatus)) ++ internal_assert(WTERMSIG(wstatus) == signal); ++ else if (WIFEXITED(wstatus)) ++ internal_assert(WEXITSTATUS(wstatus) == signal + 128); ++ else ++ internal_assert(0); ++#endif + } + + static inline void internal_assert_not_wsignaled(int wstatus) diff --git a/graphics/igt-gpu-tools/files/patch-man_rst2man.sh b/graphics/igt-gpu-tools/files/patch-man_rst2man.sh new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-man_rst2man.sh @@ -0,0 +1,8 @@ +--- man/rst2man.sh.orig 2022-08-17 23:41:17 UTC ++++ man/rst2man.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + rst2man=$1 + input=$2 diff --git a/graphics/igt-gpu-tools/files/patch-meson.build b/graphics/igt-gpu-tools/files/patch-meson.build new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-meson.build @@ -0,0 +1,33 @@ +--- meson.build.orig 2022-08-17 23:41:17 UTC ++++ meson.build +@@ -86,7 +86,7 @@ build_info = ['Build type: ' + get_option('buildtype') + + build_info = ['Build type: ' + get_option('buildtype')] + +-inc = include_directories('include/drm-uapi', 'include/linux-uapi', 'lib', 'lib/stubs/syscalls', '.') ++inc = include_directories('include/drm-uapi', 'include/linux-uapi', 'lib', 'lib/stubs/syscalls', '.', '/usr/local/include') + + inc_for_gtkdoc = include_directories('lib') + +@@ -120,8 +120,10 @@ pciaccess = dependency('pciaccess', version : '>=0.10' + build_info += 'With libdrm: ' + ','.join(libdrm_info) + + pciaccess = dependency('pciaccess', version : '>=0.10') +-libkmod = dependency('libkmod') +-libprocps = dependency('libprocps', required : true) ++# --- FreeBSD --- ++libkmod = dependency('libkmod', required : false) ++libprocps = dependency('libprocps', required : false) ++# ----- END ----- + + libunwind = dependency('libunwind', required : get_option('libunwind')) + build_info += 'With libunwind: @0@'.format(libunwind.found()) +@@ -313,7 +315,7 @@ endif + if libdrm_intel.found() + subdir('assembler') + endif +-subdir('overlay') ++#subdir('overlay') + subdir('man') + subdir('scripts') + diff --git a/graphics/igt-gpu-tools/files/patch-meson.sh b/graphics/igt-gpu-tools/files/patch-meson.sh new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-meson.sh @@ -0,0 +1,8 @@ +--- meson.sh.orig 2022-08-17 23:41:17 UTC ++++ meson.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + cat > Makefile < + #include + #include ++#ifdef __linux__ + #include ++#endif + #if HAVE_OPING + #include + #endif +@@ -14,7 +16,9 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#endif + #include + #include + #include +@@ -32,6 +36,16 @@ + + #define KMSG_HEADER "[IGT] " + #define KMSG_WARN 4 ++ ++#ifdef __FreeBSD__ ++#include ++struct signalfd_siginfo { ++ uint32_t ssi_signo; ++ uint32_t ssi_pid; ++}; ++#define WDIOC_KEEPALIVE WDIOCPATPAT ++#define signalfd(fd, mask, flags) -ENOSYS ++#endif + + static struct { + int *fds; diff --git a/graphics/igt-gpu-tools/files/patch-runner_job__list.c b/graphics/igt-gpu-tools/files/patch-runner_job__list.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-runner_job__list.c @@ -0,0 +1,72 @@ +--- runner/job_list.c.orig 2022-08-17 23:41:17 UTC ++++ runner/job_list.c +@@ -1,7 +1,12 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#elif defined(__FreeBSD__) ++#include ++#include ++#endif + #include + #include + #include +@@ -40,6 +45,31 @@ static void add_job_list_entry(struct job_list *job_li + entry->subtest_count = subtest_count; + } + ++#ifdef __FreeBSD__ ++static inline int ++job_list_fscanf(FILE *stream, char *fmt, char **subtestname) ++{ ++ int bufsize; ++ char c; ++ ++ for (bufsize = 0; ++ (c = fgetc(stream)) != '\n' && c != EOF; ++ ++bufsize) ++ ; ++ ++ if (bufsize == 0) ++ return 0; ++ ++ *subtestname = malloc(bufsize + 2); ++ ++ /* no fseek() in pipes */ ++ stream->_r += bufsize + 1; ++ stream->_p -= bufsize + 1; ++ ++ return (fscanf(stream, "%s\n", *subtestname)); ++} ++#endif ++ + static void add_subtests(struct job_list *job_list, struct settings *settings, + char *binary, + struct regex_list *include, struct regex_list *exclude) +@@ -72,7 +102,11 @@ static void add_subtests(struct job_list *job_list, st + return; + } + ++#ifdef __linux__ + while (fscanf(p, "%ms", &subtestname) == 1) { ++#elif defined(__FreeBSD__) ++ while (job_list_fscanf(p, "%s", &subtestname) == 1) { ++#endif + char piglitname[256]; + + generate_piglit_name(binary, subtestname, piglitname, sizeof(piglitname)); +@@ -226,7 +260,12 @@ static bool job_list_from_test_list(struct job_list *j + if (settings->include_regexes.size && !matches_any(line, &settings->include_regexes)) + continue; + ++#ifdef __linux__ + if (sscanf(line, "igt@%ms", &binary) == 1) { ++#elif defined(__FreeBSD__) ++ binary = malloc(strlen(line)-4); ++ if (sscanf(line, "igt@%s", binary) == 1) { ++#endif + if ((delim = strchr(binary, '@')) != NULL) + *delim++ = '\0'; + diff --git a/graphics/igt-gpu-tools/files/patch-runner_runner__tests.c b/graphics/igt-gpu-tools/files/patch-runner_runner__tests.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-runner_runner__tests.c @@ -0,0 +1,183 @@ +--- runner/runner_tests.c.orig 2022-08-17 23:41:17 UTC ++++ runner/runner_tests.c +@@ -35,29 +35,37 @@ static const char *igt_get_result(struct json_object * + + static const char *igt_get_result(struct json_object *tests, const char* testname) + { ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + struct json_object *obj; + + igt_assert(json_object_object_get_ex(tests, testname, &obj)); + igt_assert(json_object_object_get_ex(obj, "result", &obj)); + + return json_object_get_string(obj); ++#elif defined(__FreeBSD__) ++ return ""; ++#endif + } + + static void igt_assert_no_result_for(struct json_object *tests, const char* testname) + { ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + struct json_object *obj; + igt_assert(!json_object_object_get_ex(tests, testname, &obj)); ++#endif + } + + + static void igt_assert_eqstr(const char *one, const char *two) + { ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + if (one == NULL && two == NULL) + return; + + igt_assert_f(one != NULL && two != NULL, "Strings differ (one is NULL): %s vs %s\n", one, two); + + igt_assert_f(!strcmp(one, two), "Strings differ: '%s' vs '%s'\n", one, two); ++#endif + } + + static void debug_print_executions(struct job_list *list) +@@ -1069,6 +1077,7 @@ igt_main + igt_assert_f((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0, + "Dry run resume somehow deleted the results directory.\n"); + ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + /* Execute from resume should work */ + igt_assert(execute(&state, settings, list)); + igt_assert_f((fd = openat(dirfd, "uname.txt", O_RDONLY)) >= 0, +@@ -1078,6 +1087,7 @@ igt_main + "Dry run resume didn't create result directory.\n"); + igt_assert_f((fd = openat(subdirfd, "journal.txt", O_RDONLY)) >= 0, + "Dry run resume didn't create a journal.\n"); ++#endif + } + + igt_fixture { +@@ -1112,6 +1122,7 @@ igt_main + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); + ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + igt_assert(initialize_execute_state(&state, settings, list)); + + igt_assert_eq(state.next, 0); +@@ -1128,6 +1139,7 @@ igt_main + "Execute state initialization created a journal.\n"); + igt_assert_f((fd = openat(dirfd, "uname.txt", O_RDONLY)) < 0, + "Execute state initialization created uname.txt.\n"); ++#endif + } + + igt_fixture { +@@ -1177,6 +1189,7 @@ igt_main + + free_job_list(list); + free_settings(settings); ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + igt_assert(initialize_execute_state_from_resume(dirfd, &state, settings, list)); + + igt_assert_eq(state.next, 0); +@@ -1184,6 +1197,7 @@ igt_main + igt_assert_eq(list->entries[0].subtest_count, 2); + igt_assert_eqstr(list->entries[0].subtests[0], "*"); + igt_assert_eqstr(list->entries[0].subtests[1], excludestring); ++#endif + } + + igt_fixture { +@@ -1234,12 +1248,14 @@ igt_main + + free_job_list(list); + free_settings(settings); ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + igt_assert(initialize_execute_state_from_resume(dirfd, &state, settings, list)); + + /* All subtests are in journal, the entry should be considered completed */ + igt_assert_eq(state.next, 1); + igt_assert_eq(list->size, 1); + igt_assert_eq(list->entries[0].subtest_count, 4); ++#endif + } + + igt_fixture { +@@ -1343,6 +1359,7 @@ igt_main + + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + igt_assert(initialize_execute_state(&state, settings, list)); + + igt_assert(execute(&state, settings, list)); +@@ -1366,6 +1383,7 @@ igt_main + snprintf(testdirname, 16, "%zd", expected_tests); + igt_assert_f((subdirfd = openat(dirfd, testdirname, O_DIRECTORY | O_RDONLY)) < 0, + "Execute created too many directories\n"); ++#endif + } + + igt_fixture { +@@ -1483,6 +1501,7 @@ igt_main + igt_assert(create_job_list(list, settings)); + igt_assert(initialize_execute_state(&state, settings, list)); + ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + igt_assert(execute(&state, settings, list)); + igt_assert_f((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0, + "Execute didn't create the results directory\n"); +@@ -1516,6 +1535,7 @@ igt_main + close(subdirfd); + subdirfd = -1; + } ++#endif + } + + igt_fixture { +@@ -1567,6 +1587,7 @@ igt_main + igt_assert_eq(list->entries[0].subtest_count, 1); + + igt_assert(initialize_execute_state(&state, settings, list)); ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + igt_assert(execute(&state, settings, list)); + + igt_assert_f((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0, +@@ -1583,6 +1604,7 @@ igt_main + igt_assert_eqstr(igt_get_result(tests, "igt@dynamic@dynamic-subtest@passing"), "pass"); + + igt_assert_eq(json_object_put(results), 1); ++#endif + } + + igt_fixture { +@@ -1619,6 +1641,7 @@ igt_main + igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings)); + igt_assert(create_job_list(list, settings)); + igt_assert(initialize_execute_state(&state, settings, list)); ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + igt_assert(execute(&state, settings, list)); + + igt_assert_f((dirfd = open(dirname, O_DIRECTORY | O_RDONLY)) >= 0, +@@ -1631,6 +1654,7 @@ igt_main + igt_assert_eqstr(igt_get_result(tests, "igt@dynamic@dynamic-subtest@passing"), "pass"); + + igt_assert_eq(json_object_put(results), 1); ++#endif + } + + igt_fixture { +@@ -1924,6 +1948,7 @@ igt_main + } + + igt_subtest("file-descriptor-leakage") { ++#ifdef __linux__ /* TODO: FreeBSD SIGNALFD */ + int i; + + /* +@@ -1939,6 +1964,7 @@ igt_main + igt_assert_neq(close(i), 0); + igt_assert_eq(errno, EBADF); + } ++#endif + } + + igt_fixture { diff --git a/graphics/igt-gpu-tools/files/patch-runner_settings.c b/graphics/igt-gpu-tools/files/patch-runner_settings.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-runner_settings.c @@ -0,0 +1,51 @@ +--- runner/settings.c.orig 2022-08-17 23:41:17 UTC ++++ runner/settings.c +@@ -872,6 +872,36 @@ bool serialize_settings(struct settings *settings) + #undef SERIALIZE_LINE + } + ++#ifdef __FreeBSD__ ++static inline int ++settings_fscanf(FILE *stream, char **name, char **val) ++{ ++ char c, **buf = name; ++ int i, buflen, rewind = 0; ++ ++ /* get buffer size for name AND value */ ++ for (i = 0; i < 2; ++i, buf = val) { ++ for (buflen = 0; ++ (c = fgetc(stream)) != ':' && c != '\n' && c != EOF; ++ ++buflen) ++ ; ++ ++ /* add 1 to make room for '\0' */ ++ *buf = malloc(buflen + 1); ++ ++ /* add 1 to include ':' or '\n' */ ++ rewind += buflen + 1; ++ } ++ ++ /* rewind to start of new line for fscanf */ ++ i = fseek(stream, -rewind, SEEK_CUR); ++ if (i < 0) ++ return (i); ++ ++ return (fscanf(stream, "%s : %[^\n]\n", *name, *val)); ++} ++#endif ++ + bool read_settings_from_file(struct settings *settings, FILE *f) + { + #define PARSE_LINE(s, name, val, field, write) \ +@@ -887,7 +917,11 @@ bool read_settings_from_file(struct settings *settings + + settings->dmesg_warn_level = -1; + ++#ifdef __linux__ + while (fscanf(f, "%ms : %m[^\n]", &name, &val) == 2) { ++#elif defined(__FreeBSD__) ++ while (settings_fscanf(f, &name, &val) == 2) { ++#endif + int numval = atoi(val); + PARSE_LINE(settings, name, val, abort_mask, numval); + PARSE_LINE(settings, name, val, disk_usage_limit, strtoul(val, NULL, 10)); diff --git a/graphics/igt-gpu-tools/files/patch-scripts_code__cov__capture b/graphics/igt-gpu-tools/files/patch-scripts_code__cov__capture new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-scripts_code__cov__capture @@ -0,0 +1,14 @@ +--- scripts/code_cov_capture.orig 2022-08-17 23:41:17 UTC ++++ scripts/code_cov_capture +@@ -1,7 +1,9 @@ +-#!/bin/bash ++#!/bin/sh + +-trap 'catch $LINENO' ERR ++set -e ++trap 'catch $LINENO' EXIT + catch() { ++ [ $? -eq 0 ] && exit + echo "$0: error on line $1. Code coverage not stored." >&2 + exit 1 + } diff --git a/graphics/igt-gpu-tools/files/patch-scripts_code__cov__gather__on__build b/graphics/igt-gpu-tools/files/patch-scripts_code__cov__gather__on__build new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-scripts_code__cov__gather__on__build @@ -0,0 +1,8 @@ +--- scripts/code_cov_gather_on_build.orig 2022-08-17 23:41:17 UTC ++++ scripts/code_cov_gather_on_build +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + KSRC=$1 + KOBJ=$2 diff --git a/graphics/igt-gpu-tools/files/patch-scripts_code__cov__gen__report b/graphics/igt-gpu-tools/files/patch-scripts_code__cov__gen__report new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-scripts_code__cov__gen__report @@ -0,0 +1,111 @@ +--- scripts/code_cov_gen_report.orig 2022-08-17 23:41:17 UTC ++++ scripts/code_cov_gen_report +@@ -1,11 +1,13 @@ +-#!/bin/bash ++#!/bin/sh + + MERGED_INFO="merged" + GATHER_ON_BUILD="code_cov_gather_on_build.sh" + PARSE_INFO="code_cov_parse_info.pl" + +-trap 'catch $LINENO' ERR ++set -e ++trap 'catch $LINENO' EXIT + catch() { ++ [ $? -eq 0 ] && exit + echo "$0: error on line $1. HTML report not generated." + exit $1 + } +@@ -32,7 +34,7 @@ PARSE_ARGS= + FORCE= + PARSE_ARGS= + +-while [ "$1" != "" ]; do ++while [ "x$1" != "x" ]; do + case $1 in + --info|-i) + MODE=info +@@ -41,7 +43,7 @@ while [ "$1" != "" ]; do + MODE=tar.gz + ;; + --kernel-source|-k) +- if [ "$2" == "" ]; then ++ if [ "x$2" = "x" ]; then + usage 1 + else + KSRC=$(realpath $2) +@@ -49,7 +51,7 @@ while [ "$1" != "" ]; do + fi + ;; + --kernel-object|-O) +- if [ "$2" == "" ]; then ++ if [ "x$2" = "x" ]; then + usage 1 + else + KOBJ=$(realpath $2) +@@ -57,7 +59,7 @@ while [ "$1" != "" ]; do + fi + ;; + --output-dir|-o) +- if [ "$2" == "" ]; then ++ if [ "x$2" = "x" ]; then + usage 1 + else + DEST_DIR=$(realpath $2) +@@ -65,7 +67,7 @@ while [ "$1" != "" ]; do + fi + ;; + --read|-r) +- if [ "$2" == "" ]; then ++ if [ "x$2" = "x" ]; then + usage 1 + else + RESULTS=$(realpath $2) +@@ -76,7 +78,7 @@ while [ "$1" != "" ]; do + PARSE_ARGS="$PARSE_ARGS $1" + ;; + --func-filters|--source-filters) +- if [ "$2" == "" ]; then ++ if [ "x$2" = "x" ]; then + usage 1 + else + PARSE_ARGS="$PARSE_ARGS $1 $2" +@@ -98,7 +100,7 @@ done + shift + done + +-if [ "x$RESULTS" == "x" -o "x$KSRC" == "x" -o "x$DEST_DIR" == "x" -o "x$MODE" == "x" ]; then ++if [ "x$RESULTS" = "x" -o "x$KSRC" = "x" -o "x$DEST_DIR" = "x" -o "x$MODE" = "x" ]; then + echo "Missing a mandatory argument" + usage 1 + fi +@@ -136,8 +138,7 @@ if [ "$MODE" != "info" ]; then + echo "Creating per-file info files..." + echo -n "" >${MERGED_INFO}.info + for i in $RESULTS/*.tar.gz; do +- TITLE=$(basename $i) +- TITLE=${TITLE/.tar.gz/} ++ TITLE=$(basename "$i" .tar.gz) + + echo "Adding results from $i..." + tar xf $i +@@ -153,8 +154,7 @@ if [ "$MODE" != "info" ]; then + + TITLE=${MERGED_INFO} + else +- TITLE=$(basename $RESULTS) +- TITLE=${TITLE/.tar.gz/} ++ TITLE=$(basename "$RESULTS" .tar.gz) + + echo "Adding results from $RESULTS..." + tar xf $RESULTS +@@ -175,8 +175,7 @@ else + echo "Copying $RESULTS to $DEST_DIR..." + cp $RESULTS . + +- TITLE=$(basename $RESULTS) +- TITLE=${TITLE/.info/} ++ TITLE=$(basename "$RESULTS" .info) + fi + fi + diff --git a/graphics/igt-gpu-tools/files/patch-scripts_code__cov__selftest.sh b/graphics/igt-gpu-tools/files/patch-scripts_code__cov__selftest.sh new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-scripts_code__cov__selftest.sh @@ -0,0 +1,14 @@ +--- scripts/code_cov_selftest.sh.orig 2022-08-17 23:41:17 UTC ++++ scripts/code_cov_selftest.sh +@@ -1,7 +1,9 @@ +-#!/bin/bash ++#!/bin/sh + +-trap 'catch $LINENO' ERR ++set -e ++trap 'catch $LINENO' EXIT + catch() { ++ [ $? -eq 0 ] && exit + echo "===> ERROR: Code coverage selftest failed on $0:$1" >&2 + exit 1 + } diff --git a/graphics/igt-gpu-tools/files/patch-scripts_generate__clear__kernel.sh b/graphics/igt-gpu-tools/files/patch-scripts_generate__clear__kernel.sh new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-scripts_generate__clear__kernel.sh @@ -0,0 +1,135 @@ +--- scripts/generate_clear_kernel.sh.orig 2022-08-17 23:41:17 UTC ++++ scripts/generate_clear_kernel.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # SPDX-License-Identifier: MIT + # +@@ -25,7 +25,7 @@ export ASSEMBLY_SOURCE=./lib/i915/shaders/clear_kernel + + export ASSEMBLY_SOURCE=./lib/i915/shaders/clear_kernel + +-function get_help { ++get_help() { + echo "Usage: ${0} [options]" + echo "Note: hsw_clear_kernel.c/ivb_clear_kernel.c automatically generated by this script should never be modified - it would be imported to i915, to use as it is..." + echo " " +@@ -40,14 +40,14 @@ function get_help { + echo " Usage example: \"./scripts/generate_clear_kernel.sh -g hsw -o hsw_clear_buffer.h -m ~/mesa/build/src/intel/tools/i965_asm\"" + } + +-function include_array # $1=array_name - update Mesa output with desired format ++include_array() # $1=array_name - update Mesa output with desired format + { + array_declaration="static const u32 $(basename $1)_clear_kernel[] = {" + close_array=";" + sed -i "1s/.*/$array_declaration/" $output_file + sed -i "$ s/$/$close_array/" $output_file + } +-function prefix_header # $1=filename $2=comment ++prefix_header() # $1=filename $2=comment + { + cat < ++asm_cb_kernel() # as-root + { + check_output_file + +@@ -82,22 +82,22 @@ function asm_cb_kernel # as-root + $mesa_i965_asm -g $gen_device -t c_literal $input_asm_source -o $output_file + + if [ ! -f ${output_file} ]; then +- echo -e "Failed to assemble CB Kernel with Mesa tool\n" ++ printf "Failed to assemble CB Kernel with Mesa tool\n" + get_help + exit 1 + fi + + # Generate header file +- if [ "$gen_device" == "hsw" ]; then +- echo "Generating gen7.5 CB Kernel assembled file \"hsw_clear_kernel.c\" for i915 driver..." ++ if [ "$gen_device" = "hsw" ]; then ++ printf 'Generating gen7.5 CB Kernel assembled file "hsw_clear_kernel.c" for i915 driver...' + + i915_filename=hsw_clear_kernel.c + include_array $gen_device + prefix_header > $i915_filename + cat $output_file >> $i915_filename + +- elif [ "$gen_device" == "ivb" ]; then +- echo "Generating gen7 CB Kernel assembled file \"ivb_clear_kernel.c\" for i915 driver..." ++ elif [ "$gen_device" = "ivb" ]; then ++ printf 'Generating gen7 CB Kernel assembled file "ivb_clear_kernel.c" for i915 driver...' + + i915_filename=ivb_clear_kernel.c + include_array $gen_device +@@ -113,7 +113,7 @@ while getopts "hg:o:m:" opt; do + o) output_file="$OPTARG" ;; + m) mesa_i965_asm="$OPTARG" ;; + \?) +- echo -e "Unknown option: -$OPTARG\n" ++ printf "Unknown option: -%s\n" "$OPTARG" + get_help + exit 1 + ;; +@@ -122,30 +122,30 @@ if [ "x$1" != "x" ]; then + shift $(($OPTIND-1)) + + if [ "x$1" != "x" ]; then +- echo -e "Unknown option: $1\n" ++ printf "Unknown option: %s\n" "$1" + get_help + exit 1 + fi + +-if [ "x$mesa_i965_asm" == "x" ]; then +- echo -e "i965_asm binary not found\n" ++if [ "x$mesa_i965_asm" = "x" ]; then ++ printf "i965_asm binary not found\n" + get_help + exit 1 + fi + + if [ "x$gen_device" != "x" ]; then +- if [ "$gen_device" == "hsw" ]; then ++ if [ "$gen_device" = "hsw" ]; then + input_asm_source="${ASSEMBLY_SOURCE}/hsw.asm" +- elif [ "$gen_device" == "ivb" ]; then ++ elif [ "$gen_device" = "ivb" ]; then + input_asm_source="${ASSEMBLY_SOURCE}/ivb.asm" + else +- echo -e "Unknown platform specified\n" ++ printf "Unknown platform specified\n" + get_help + exit 1 + fi + asm_cb_kernel + else +- echo -e "Platform generation not specified\n" ++ printf "Platform generation not specified\n" + get_help + exit 1 + fi diff --git a/graphics/igt-gpu-tools/files/patch-scripts_run-tests.sh b/graphics/igt-gpu-tools/files/patch-scripts_run-tests.sh new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-scripts_run-tests.sh @@ -0,0 +1,95 @@ +--- scripts/run-tests.sh.orig 2022-08-17 23:41:17 UTC ++++ scripts/run-tests.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright © 2014 Intel Corporation + # +@@ -38,7 +38,7 @@ RESUME= + RUNNER= + RESUME= + +-function find_file # basename ++find_file() # basename + { + base=$1 + shift +@@ -72,7 +72,7 @@ IGT_TEST_ROOT="`readlink -f ${IGT_TEST_ROOT}`" + + IGT_TEST_ROOT="`readlink -f ${IGT_TEST_ROOT}`" + +-function find_runner_binary # basename ++find_runner_binary() # basename + { + base=$1 + shift +@@ -89,20 +89,20 @@ function find_runner_binary # basename + return 1 + } + +-function find_lcov_binary # basename ++find_lcov_binary() # basename + { +- if command -v $LCOV_CMD &> /dev/null; then ++ if command -v $LCOV_CMD > /dev/null 2>&1; then + return 0 + fi + + return 1 + } + +-function download_piglit { ++download_piglit() { + git clone https://anongit.freedesktop.org/git/piglit.git "$ROOT/piglit" + } + +-function execute_runner # as-root ++execute_runner() # as-root + { + local need_root=$1 + shift +@@ -112,14 +112,14 @@ function execute_runner # as-root + + export IGT_TEST_ROOT IGT_CONFIG_PATH IGT_KERNEL_TREE + +- if [ "$need_root" -ne 0 -a "$EUID" -ne 0 ]; then ++ if [ "$need_root" -ne 0 -a "$(id -u)" -ne 0 ]; then + sudo="sudo --preserve-env=IGT_TEST_ROOT,IGT_CONFIG_PATH,IGT_KERNEL_TREE" + fi + + $sudo $runner "$@" + } + +-function print_help { ++print_help() { + echo "Usage: run-tests.sh [options]" + echo "Available options:" + echo " -c " +@@ -191,7 +191,7 @@ fi + exit 1 + fi + +-if [ "x$PIGLIT" == "x" ]; then ++if [ "x$PIGLIT" = "x" ]; then + PIGLIT="$ROOT/piglit/piglit" + fi + +@@ -241,7 +241,7 @@ if [ "x$RESUME_RUN" != "x" ]; then + fi + + if [ "x$RESUME_RUN" != "x" ]; then +- if [ "x$COV_ARGS" != "x" -a "x$COV_PER_TEST" == "x" ]; then ++ if [ "x$COV_ARGS" != "x" -a "x$COV_PER_TEST" = "x" ]; then + echo "Can't continue collecting coverage tests. Next time, run" + echo "$0 with '-P' in order to generate separate code coverage results". + exit 1 +@@ -252,7 +252,7 @@ fi + execute_runner 1 $RUNNER $RUN_ARGS -o -s "$RESULTS" $COV_ARGS $VERBOSE $FILTER + fi + +-if [ "$SUMMARY" == "html" ]; then ++if [ "$SUMMARY" = "html" ]; then + if [ ! -x "$PIGLIT" ]; then + echo "Could not find Piglit, required for HTML generation." + echo "Please install Piglit or use -d to download Piglit locally." diff --git a/graphics/igt-gpu-tools/files/patch-scripts_who.sh b/graphics/igt-gpu-tools/files/patch-scripts_who.sh new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-scripts_who.sh @@ -0,0 +1,8 @@ +--- scripts/who.sh.orig 2022-08-17 23:41:17 UTC ++++ scripts/who.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # usage: sudo who.sh + # diff --git a/graphics/igt-gpu-tools/files/patch-tests_core__auth.c b/graphics/igt-gpu-tools/files/patch-tests_core__auth.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_core__auth.c @@ -0,0 +1,13 @@ +--- tests/core_auth.c.orig 2022-08-17 23:41:17 UTC ++++ tests/core_auth.c +@@ -48,6 +48,10 @@ + # include + #endif + ++#ifdef __FreeBSD__ ++#define pthread_self() getpid() ++#endif ++ + IGT_TEST_DESCRIPTION("Call drmGetMagic() and drmAuthMagic() and see if it behaves."); + + static bool diff --git a/graphics/igt-gpu-tools/files/patch-tests_device__reset.c b/graphics/igt-gpu-tools/files/patch-tests_device__reset.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_device__reset.c @@ -0,0 +1,10 @@ +--- tests/device_reset.c.orig 2022-08-17 23:41:17 UTC ++++ tests/device_reset.c +@@ -15,7 +15,6 @@ IGT_TEST_DESCRIPTION("Examine behavior of a driver on + + IGT_TEST_DESCRIPTION("Examine behavior of a driver on device sysfs reset"); + +- + #define DEV_PATH_LEN 80 + #define DEV_BUS_ADDR_LEN 13 /* addr has form 0000:00:00.0 */ + diff --git a/graphics/igt-gpu-tools/files/patch-tests_dmabuf__sync__file.c b/graphics/igt-gpu-tools/files/patch-tests_dmabuf__sync__file.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_dmabuf__sync__file.c @@ -0,0 +1,195 @@ +--- tests/dmabuf_sync_file.c.orig 2022-08-17 23:41:17 UTC ++++ tests/dmabuf_sync_file.c +@@ -4,7 +4,9 @@ + #include "igt_vgem.h" + #include "sw_sync.h" + ++#ifdef __linux__ + #include ++#endif + #include + + IGT_TEST_DESCRIPTION("Tests for sync_file support in dma-buf"); +@@ -19,6 +21,7 @@ static bool has_dmabuf_export_sync_file(int fd) + + static bool has_dmabuf_export_sync_file(int fd) + { ++#ifdef __linux__ + struct vgem_bo bo; + int dmabuf, ret; + struct igt_dma_buf_sync_file arg; +@@ -39,10 +42,14 @@ static bool has_dmabuf_export_sync_file(int fd) + igt_assert(ret == 0 || errno == ENOTTY); + + return ret == 0; ++#elif defined(__FreeBSD__) ++ return false; ++#endif + } + + static int dmabuf_export_sync_file(int dmabuf, uint32_t flags) + { ++#ifdef __linux__ + struct igt_dma_buf_sync_file arg; + + arg.flags = flags; +@@ -50,10 +57,14 @@ static int dmabuf_export_sync_file(int dmabuf, uint32_ + do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); + + return arg.fd; ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + static bool has_dmabuf_import_sync_file(int fd) + { ++#ifdef __linux__ + struct vgem_bo bo; + int dmabuf, timeline, fence, ret; + struct igt_dma_buf_sync_file arg; +@@ -79,30 +90,38 @@ static bool has_dmabuf_import_sync_file(int fd) + igt_assert(ret == 0 || errno == ENOTTY); + + return ret == 0; ++#elif defined(__FreeBSD__) ++ return false; ++#endif + } + + static void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd) + { ++#ifdef __linux__ + struct igt_dma_buf_sync_file arg; + + arg.flags = flags; + arg.fd = sync_fd; + do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); ++#endif + } + + static void + dmabuf_import_timeline_fence(int dmabuf, uint32_t flags, + int timeline, uint32_t seqno) + { ++#ifdef __linux__ + int fence; + + fence = sw_sync_timeline_create_fence(timeline, seqno); + dmabuf_import_sync_file(dmabuf, flags, fence); + close(fence); ++#endif + } + + static bool dmabuf_busy(int dmabuf, uint32_t flags) + { ++#ifdef __linux__ + struct pollfd pfd = { .fd = dmabuf }; + + /* If DMA_BUF_SYNC_WRITE is set, we don't want to set POLLIN or +@@ -115,6 +134,9 @@ static bool dmabuf_busy(int dmabuf, uint32_t flags) + pfd.events |= POLLIN; + + return poll(&pfd, 1, 0) == 0; ++#elif defined(__FreeBSD__) ++ return false; ++#endif + } + + static bool sync_file_busy(int sync_file) +@@ -125,6 +147,7 @@ static bool dmabuf_sync_file_busy(int dmabuf, uint32_t + + static bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags) + { ++#ifdef __linux__ + int sync_file; + bool busy; + +@@ -133,10 +156,14 @@ static bool dmabuf_sync_file_busy(int dmabuf, uint32_t + close(sync_file); + + return busy; ++#elif defined(__FreeBSD__) ++ return false; ++#endif + } + + static void test_export_basic(int fd) + { ++#ifdef __linux__ + struct vgem_bo bo; + int dmabuf; + uint32_t fence; +@@ -189,10 +216,12 @@ static void test_export_basic(int fd) + + close(dmabuf); + gem_close(fd, bo.handle); ++#endif + } + + static void test_export_before_signal(int fd) + { ++#ifdef __linux__ + struct vgem_bo bo; + int dmabuf, read_fd, write_fd; + uint32_t fence; +@@ -243,10 +272,12 @@ static void test_export_before_signal(int fd) + + close(dmabuf); + gem_close(fd, bo.handle); ++#endif + } + + static void test_export_multiwait(int fd) + { ++#ifdef __linux__ + struct vgem_bo bo; + int dmabuf, sync_file; + uint32_t fence1, fence2, fence3; +@@ -282,10 +313,12 @@ static void test_export_multiwait(int fd) + close(sync_file); + close(dmabuf); + gem_close(fd, bo.handle); ++#endif + } + + static void test_export_wait_after_attach(int fd) + { ++#ifdef __linux__ + struct vgem_bo bo; + int dmabuf, read_sync_file, write_sync_file; + uint32_t fence1, fence2; +@@ -333,10 +366,12 @@ static void test_export_wait_after_attach(int fd) + + close(dmabuf); + gem_close(fd, bo.handle); ++#endif + } + + static void test_import_basic(int fd) + { ++#ifdef __linux__ + struct vgem_bo bo; + int dmabuf, timeline; + +@@ -402,10 +437,12 @@ static void test_import_basic(int fd) + igt_assert(!dmabuf_sync_file_busy(dmabuf, DMA_BUF_SYNC_READ)); + igt_assert(!dmabuf_sync_file_busy(dmabuf, DMA_BUF_SYNC_WRITE)); + igt_assert(!dmabuf_sync_file_busy(dmabuf, DMA_BUF_SYNC_RW)); ++#endif + } + + static void test_import_multiple(int fd, bool write) + { ++#ifdef __linux__ + struct vgem_bo bo; + int i, dmabuf, read_sync_file, write_sync_file; + int write_timeline = -1, read_timelines[32]; +@@ -459,6 +496,7 @@ static void test_import_multiple(int fd, bool write) + igt_assert(!sync_file_busy(read_sync_file)); + igt_assert(!dmabuf_busy(dmabuf, DMA_BUF_SYNC_WRITE)); + igt_assert(!sync_file_busy(write_sync_file)); ++#endif + } + + igt_main diff --git a/graphics/igt-gpu-tools/files/patch-tests_drm__import__export.c b/graphics/igt-gpu-tools/files/patch-tests_drm__import__export.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_drm__import__export.c @@ -0,0 +1,13 @@ +--- tests/drm_import_export.c.orig 2022-08-17 23:41:17 UTC ++++ tests/drm_import_export.c +@@ -45,6 +45,10 @@ IGT_TEST_DESCRIPTION("Basic check to verify the behavi + #define DURATION 10 + IGT_TEST_DESCRIPTION("Basic check to verify the behaviour of libdrm bo for prime/flink"); + ++#ifdef __FreeBSD__ ++#define gettid() getpid() ++#endif ++ + int fd; + drm_intel_bufmgr *bufmgr; + int fd1; diff --git a/graphics/igt-gpu-tools/files/patch-tests_dumb__buffer.c b/graphics/igt-gpu-tools/files/patch-tests_dumb__buffer.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_dumb__buffer.c @@ -0,0 +1,14 @@ +--- tests/dumb_buffer.c.orig 2022-08-17 23:41:17 UTC ++++ tests/dumb_buffer.c +@@ -50,6 +50,11 @@ + #include "igt_aux.h" + #include "ioctl_wrappers.h" + ++#ifdef __FreeBSD__ ++#undef jmp_buf ++#define sighandler_t sig_t ++#endif ++ + IGT_TEST_DESCRIPTION("This is a test for the generic dumb buffer interface."); + + static int __dumb_create(int fd, struct drm_mode_create_dumb *create) diff --git a/graphics/igt-gpu-tools/files/patch-tests_fbdev.c b/graphics/igt-gpu-tools/files/patch-tests_fbdev.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_fbdev.c @@ -0,0 +1,54 @@ +--- tests/fbdev.c.orig 2022-08-17 23:41:17 UTC ++++ tests/fbdev.c +@@ -35,7 +35,9 @@ + #include + #include + ++#ifdef __linux__ + #include ++#endif + + #include "igt.h" + +@@ -55,6 +57,7 @@ static void pan_test(int fd, const struct fb_var_scree + + static void pan_test(int fd, const struct fb_var_screeninfo *var, int expected_ret) + { ++#ifdef __linux__ + struct fb_var_screeninfo pan_var, new_var; + int ret; + +@@ -72,10 +75,12 @@ static void pan_test(int fd, const struct fb_var_scree + igt_assert_f(pan_var.xoffset == new_var.xoffset && pan_var.yoffset == new_var.yoffset, + "panning to (%u, %u) moved to (%u, %u)\n", + pan_var.xoffset, pan_var.yoffset, new_var.xoffset, new_var.yoffset); ++#endif + } + + static void mode_tests(int fd) + { ++#ifdef __linux__ + struct fb_var_screeninfo var_info; + struct fb_fix_screeninfo fix_info; + +@@ -200,10 +205,12 @@ static void mode_tests(int fd) + /* restore original panning offsets */ + ioctl(fd, FBIOPAN_DISPLAY, &var_info); + } ++#endif + } + + static void framebuffer_tests(int fd) + { ++#ifdef __linux__ + const int values[] = { 0, 0x55, 0xaa, 0xff }; + struct fb_fix_screeninfo fix_info; + unsigned char * volatile map; +@@ -413,6 +420,7 @@ static void framebuffer_tests(int fd) + memset(map, 0, fix_info.smem_len); + munmap(map, fix_info.smem_len); + } ++#endif + } + + igt_main diff --git a/graphics/igt-gpu-tools/files/patch-tests_generate__testlist.sh b/graphics/igt-gpu-tools/files/patch-tests_generate__testlist.sh new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_generate__testlist.sh @@ -0,0 +1,27 @@ +--- tests/generate_testlist.sh.orig 2022-08-17 23:41:17 UTC ++++ tests/generate_testlist.sh +@@ -1,18 +1,18 @@ +-#!/bin/bash ++#!/bin/sh + + OUTPUT=$1 + shift + + echo TESTLIST > $OUTPUT + +-if [[ $# -gt 0 ]] ; then +- echo -n $1 >> $OUTPUT ++if [ $# -gt 0 ] ; then ++ printf "$1" >> $OUTPUT + shift + fi + +-while [[ $# -gt 0 ]] ; do +- echo -n " $1" >> $OUTPUT ++while [ $# -gt 0 ] ; do ++ printf " $1" >> $OUTPUT + shift + done + +-echo -e "\nEND TESTLIST" >> $OUTPUT ++printf "\nEND TESTLIST\n" >> $OUTPUT diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__close__race.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__close__race.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__close__race.c @@ -0,0 +1,23 @@ +--- tests/i915/gem_close_race.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_close_race.c +@@ -53,6 +53,10 @@ + #define BLT_WRITE_ALPHA (1<<21) + #define BLT_WRITE_RGB (1<<20) + ++#ifdef __FreeBSD__ ++#define gettid() getpid() ++#endif ++ + IGT_TEST_DESCRIPTION("Test try to race gem_close against workload submission."); + + static uint32_t devid; +@@ -61,7 +65,9 @@ static uint64_t data_addr; + static uint64_t exec_addr; + static uint64_t data_addr; + ++#ifdef __linux__ + #define sigev_notify_thread_id _sigev_un._tid ++#endif + + static void selfcopy(int fd, uint32_t ctx, uint32_t handle, int loops) + { diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__concurrent__all.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__concurrent__all.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__concurrent__all.c @@ -0,0 +1,14 @@ +--- tests/i915/gem_concurrent_all.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_concurrent_all.c +@@ -53,6 +53,11 @@ + #include "igt.h" + #include "igt_vgem.h" + ++/* improper substitution */ ++#ifdef __FreeBSD__ ++#define MADV_DONTFORK MADV_NOSYNC ++#endif ++ + IGT_TEST_DESCRIPTION("Test of pread/pwrite/mmap behavior when writing to active" + " buffers."); + diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__create.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__create.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__create.c @@ -0,0 +1,13 @@ +--- tests/i915/gem_create.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_create.c +@@ -61,6 +61,10 @@ + #include "i915/gem_mman.h" + #include "i915_drm.h" + ++#ifdef __FreeBSD__ ++#define sighandler_t sig_t ++#endif ++ + IGT_TEST_DESCRIPTION("Ensure that basic gem_create and gem_create_ext works" + " and that invalid input combinations are rejected."); + diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__ctx__exec.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__ctx__exec.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__ctx__exec.c @@ -0,0 +1,13 @@ +--- tests/i915/gem_ctx_exec.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_ctx_exec.c +@@ -48,6 +48,10 @@ + #include "igt_sysfs.h" + #include "sw_sync.h" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + IGT_TEST_DESCRIPTION("Test context batch buffer execution."); + + /* Copied from gem_exec_nop.c */ diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__ctx__persistence.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__ctx__persistence.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__ctx__persistence.c @@ -0,0 +1,13 @@ +--- tests/i915/gem_ctx_persistence.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_ctx_persistence.c +@@ -50,6 +50,10 @@ static unsigned long reset_timeout_ms = RESET_TIMEOUT_ + static unsigned long reset_timeout_ms = RESET_TIMEOUT_MS; + #define NSEC_PER_MSEC (1000 * 1000ull) + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + static void cleanup(int i915) + { + igt_drop_caches_set(i915, diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__ctx__shared.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__ctx__shared.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__ctx__shared.c @@ -0,0 +1,13 @@ +--- tests/i915/gem_ctx_shared.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_ctx_shared.c +@@ -54,6 +54,10 @@ + #define MAX_PRIO I915_CONTEXT_MAX_USER_PRIORITY + #define MIN_PRIO I915_CONTEXT_MIN_USER_PRIORITY + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + static int priorities[] = { + [LO] = MIN_PRIO / 2, + [HI] = MAX_PRIO / 2, diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__exec__fence.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__exec__fence.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__exec__fence.c @@ -0,0 +1,13 @@ +--- tests/i915/gem_exec_fence.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_exec_fence.c +@@ -35,6 +35,10 @@ + #include "intel_ctx.h" + #include "sw_sync.h" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + IGT_TEST_DESCRIPTION("Check that execbuf waits for explicit fences"); + + #ifndef SYNC_IOC_MERGE diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__exec__latency.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__exec__latency.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__exec__latency.c @@ -0,0 +1,13 @@ +--- tests/i915/gem_exec_latency.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_exec_latency.c +@@ -55,6 +55,10 @@ + #define CORK 0x2 + #define PREEMPT 0x4 + ++#ifdef __FreeBSD__ ++#define SCHED_RESET_ON_FORK 0 ++#endif ++ + static unsigned int ring_size; + static double rcs_clock; + static struct intel_mmio_data mmio_data; diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__exec__schedule.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__exec__schedule.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__exec__schedule.c @@ -0,0 +1,67 @@ +--- tests/i915/gem_exec_schedule.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_exec_schedule.c +@@ -23,7 +23,9 @@ + + #include "config.h" + ++#ifdef __linux__ + #include ++#endif + + #include + #include +@@ -64,6 +66,10 @@ + #define MI_SEMAPHORE_SAD_EQ_SDD (4 << 12) + #define MI_SEMAPHORE_SAD_NEQ_SDD (5 << 12) + ++#ifdef __FreeBSD__ ++#define SCHED_RESET_ON_FORK 0 ++#endif ++ + IGT_TEST_DESCRIPTION("Check that we can control the order of execution"); + + static unsigned int offset_in_page(void *addr) +@@ -2510,7 +2516,11 @@ static int userfaultfd(int flags) + + static int userfaultfd(int flags) + { ++#ifdef __linux__ + return syscall(SYS_userfaultfd, flags); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + struct ufd_thread { +@@ -2569,6 +2579,7 @@ static void test_pi_userfault(int i915, + const intel_ctx_cfg_t *cfg, + unsigned int engine) + { ++#ifdef __linux__ + const uint32_t bbe = MI_BATCH_BUFFER_END; + struct uffdio_api api = { .api = UFFD_API }; + struct uffdio_register reg; +@@ -2670,6 +2681,7 @@ static void test_pi_userfault(int i915, + gem_close(i915, t.batch); + munmap(t.page, 4096); + close(ufd); ++#endif + } + + static void *iova_thread(struct ufd_thread *t, int prio) +@@ -2705,6 +2717,7 @@ static void test_pi_iova(int i915, const intel_ctx_cfg + static void test_pi_iova(int i915, const intel_ctx_cfg_t *cfg, + unsigned int engine, unsigned int flags) + { ++#ifdef __linux__ + intel_ctx_cfg_t ufd_cfg = *cfg; + const intel_ctx_t *spinctx; + struct uffdio_api api = { .api = UFFD_API }; +@@ -2839,6 +2852,7 @@ static void test_pi_iova(int i915, const intel_ctx_cfg + gem_vm_destroy(i915, ufd_cfg.vm); + + close(ufd); ++#endif + } + + static void measure_semaphore_power(int i915, const intel_ctx_t *ctx) diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__lmem__swapping.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__lmem__swapping.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__lmem__swapping.c @@ -0,0 +1,13 @@ +--- tests/i915/gem_lmem_swapping.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_lmem_swapping.c +@@ -25,6 +25,10 @@ + #include "i915/i915_blt.h" + #include "i915/intel_mocs.h" + ++#ifdef __FreeBSD__ ++#define MAP_POPULATE MAP_PREFAULT_READ ++#endif ++ + IGT_TEST_DESCRIPTION("Exercise local memory swapping."); + + #define __round_mask(x, y) ((__typeof__(x))((y) - 1)) diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__madvise.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__madvise.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__madvise.c @@ -0,0 +1,13 @@ +--- tests/i915/gem_madvise.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_madvise.c +@@ -39,6 +39,10 @@ + #include "drm.h" + #include "i915/gem_create.h" + ++#ifdef __FreeBSD__ ++#define sighandler_t sig_t ++#endif ++ + IGT_TEST_DESCRIPTION("Checks that the kernel reports EFAULT when trying to use" + " purged bo."); + diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__mmap__gtt.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__mmap__gtt.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__mmap__gtt.c @@ -0,0 +1,31 @@ +--- tests/i915/gem_mmap_gtt.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_mmap_gtt.c +@@ -54,6 +54,16 @@ + + #define abs(x) ((x) >= 0 ? (x) : -(x)) + ++#ifdef __FreeBSD__ ++#define mmap64(addr, len, prot, flags, fd, offset) \ ++ mmap(addr, len, prot, flags, fd, offset) ++#define PTRACE_TRACEME PT_TRACE_ME ++#define PTRACE_ATTACH PT_ATTACH ++#define PTRACE_PEEKDATA PT_READ_D ++#define PTRACE_POKEDATA PT_WRITE_D ++#define PTRACE_DETACH PT_DETACH ++#endif ++ + IGT_TEST_DESCRIPTION("Ensure that all operations around MMAP_GTT ioctl works."); + + static int OBJECT_SIZE = 16*1024*1024; +@@ -566,7 +576,11 @@ test_ptrace(int fd) + for (int i = 0; i < sz / sizeof(long); i++) { + long ret; + ++#ifdef __linux__ + ret = ptrace(PTRACE_PEEKDATA, pid, gtt + i); ++#elif defined(__FreeBSD__) ++ ret = ptrace(PTRACE_PEEKDATA, pid, gtt + i, 0); ++#endif + igt_assert_eq_u64(ret, CC); + cpy[i] = ret; + diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__mmap__offset.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__mmap__offset.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__mmap__offset.c @@ -0,0 +1,31 @@ +--- tests/i915/gem_mmap_offset.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_mmap_offset.c +@@ -38,6 +38,16 @@ + #include "igt.h" + #include "igt_x86.h" + ++#ifdef __FreeBSD__ ++#define mmap64(addr, len, prot, flags, fd, offset) \ ++ mmap(addr, len, prot, flags, fd, offset) ++#define PTRACE_TRACEME PT_TRACE_ME ++#define PTRACE_ATTACH PT_ATTACH ++#define PTRACE_PEEKDATA PT_READ_D ++#define PTRACE_POKEDATA PT_WRITE_D ++#define PTRACE_DETACH PT_DETACH ++#endif ++ + IGT_TEST_DESCRIPTION("Basic MMAP_OFFSET IOCTL tests for mem regions\n"); + + static int mmap_offset_ioctl(int i915, struct drm_i915_gem_mmap_offset *arg) +@@ -370,7 +380,11 @@ static void test_ptrace(int i915) + for (int i = 0; i < SZ / sizeof(long); i++) { + long ret; + ++#ifdef __linux__ + ret = ptrace(PTRACE_PEEKDATA, pid, ptr + i); ++#elif defined(__FreeBSD__) ++ ret = ptrace(PTRACE_PEEKDATA, pid, ptr + i, 0); ++#endif + igt_assert_eq_u64(ret, CC); + cpy[i] = ret; + diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__pread.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__pread.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__pread.c @@ -0,0 +1,40 @@ +--- tests/i915/gem_pread.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_pread.c +@@ -25,7 +25,9 @@ + * + */ + ++#ifdef __linux__ + #include ++#endif + + #include "igt.h" + #include +@@ -81,7 +83,11 @@ static int userfaultfd(int flags) + + static int userfaultfd(int flags) + { ++#ifdef __linux__ + return syscall(SYS_userfaultfd, flags); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + struct ufd_thread { +@@ -154,6 +160,7 @@ static void test_exhaustion(int i915) + + static void test_exhaustion(int i915) + { ++#ifdef __linux__ + struct uffdio_api api = { .api = UFFD_API }; + struct uffdio_register reg; + struct uffdio_copy copy; +@@ -221,6 +228,7 @@ static void test_exhaustion(int i915) + close(ufd); + + close(t.vgem); ++#endif + } + + #define OBJECT_SIZE 16384 diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__pwrite.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__pwrite.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__pwrite.c @@ -0,0 +1,40 @@ +--- tests/i915/gem_pwrite.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_pwrite.c +@@ -25,7 +25,9 @@ + * + */ + ++#ifdef __linux__ + #include ++#endif + + #include + #include +@@ -283,7 +285,11 @@ static int userfaultfd(int flags) + + static int userfaultfd(int flags) + { ++#ifdef __linux__ + return syscall(SYS_userfaultfd, flags); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + struct ufd_thread { +@@ -378,6 +384,7 @@ static void test_exhaustion(int i915) + + static void test_exhaustion(int i915) + { ++#ifdef __linux__ + struct uffdio_api api = { .api = UFFD_API }; + struct uffdio_register reg; + struct uffdio_copy copy; +@@ -445,6 +452,7 @@ static void test_exhaustion(int i915) + close(ufd); + + close(t.vgem); ++#endif + } + + uint32_t *src, dst; diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__shrink.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__shrink.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__shrink.c @@ -0,0 +1,13 @@ +--- tests/i915/gem_shrink.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_shrink.c +@@ -38,6 +38,10 @@ + #define MADV_FREE 8 + #endif + ++#ifdef __FreeBSD__ ++#define MAP_POPULATE MAP_PREFAULT_READ ++#endif ++ + static void get_pages(int fd, uint64_t alloc) + { + uint32_t handle = gem_create(fd, alloc); diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__userptr__blits.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__userptr__blits.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__userptr__blits.c @@ -0,0 +1,52 @@ +--- tests/i915/gem_userptr_blits.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_userptr_blits.c +@@ -36,7 +36,9 @@ + * The goal is to simply ensure the basics work. + */ + ++#ifdef __linux__ + #include ++#endif + + #include + #include +@@ -66,6 +68,11 @@ + + #include "eviction_common.c" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#define MADV_HUGEPAGE MADV_SEQUENTIAL ++#endif ++ + #ifndef PAGE_SIZE + #define PAGE_SIZE 4096 + #endif +@@ -2154,7 +2161,11 @@ static int userfaultfd(int flags) + + static int userfaultfd(int flags) + { ++#ifdef __linux__ + return syscall(SYS_userfaultfd, flags); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + static bool has_userptr_probe(int fd) +@@ -2240,6 +2251,7 @@ static void test_userfault(int i915) + + static void test_userfault(int i915) + { ++#ifdef __linux__ + struct uffdio_api api = { .api = UFFD_API }; + struct uffdio_register reg; + struct uffdio_copy copy; +@@ -2295,6 +2307,7 @@ static void test_userfault(int i915) + + munmap(t.page, 4096); + close(ufd); ++#endif + } + + uint64_t total_ram; diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_gem__wait.c b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__wait.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_gem__wait.c @@ -0,0 +1,13 @@ +--- tests/i915/gem_wait.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/gem_wait.c +@@ -32,6 +32,10 @@ + #include "igt.h" + #include "igt_vgem.h" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + IGT_TEST_DESCRIPTION("Tests the GEM_WAIT ioctl"); + + static int __gem_wait(int fd, struct drm_i915_gem_wait *w) diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_i915__hangman.c b/graphics/igt-gpu-tools/files/patch-tests_i915_i915__hangman.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_i915__hangman.c @@ -0,0 +1,13 @@ +--- tests/i915/i915_hangman.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/i915_hangman.c +@@ -50,6 +50,10 @@ static int sysfs = -1; + + #define OFFSET_ALIVE 10 + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + IGT_TEST_DESCRIPTION("Tests for hang detection and recovery"); + + static void check_alive(void) diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_i915__module__load.c b/graphics/igt-gpu-tools/files/patch-tests_i915_i915__module__load.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_i915__module__load.c @@ -0,0 +1,12 @@ +--- tests/i915/i915_module_load.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/i915_module_load.c +@@ -23,7 +23,9 @@ + #include "igt.h" + #include + #include ++#ifdef __linux__ + #include ++#endif + #include + #include + #include diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_i915__pm__backlight.c b/graphics/igt-gpu-tools/files/patch-tests_i915_i915__pm__backlight.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_i915__pm__backlight.c @@ -0,0 +1,13 @@ +--- tests/i915/i915_pm_backlight.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/i915_pm_backlight.c +@@ -46,6 +46,10 @@ struct context { + #define FADESTEPS 10 + #define FADESPEED 100 /* milliseconds between steps */ + ++#ifdef __FreeBSD__ ++#include ++#endif ++ + IGT_TEST_DESCRIPTION("Basic backlight sysfs test"); + + static int backlight_read(int *result, const char *fname) diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_i915__pm__rpm.c b/graphics/igt-gpu-tools/files/patch-tests_i915_i915__pm__rpm.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_i915__pm__rpm.c @@ -0,0 +1,43 @@ +--- tests/i915/i915_pm_rpm.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/i915_pm_rpm.c +@@ -40,8 +40,10 @@ + #include + #include + #include ++#ifdef __linux__ + #include + #include ++#endif + + #include + +@@ -54,6 +56,17 @@ + #include "igt_device.h" + #include "igt_edid.h" + ++#ifdef __FreeBSD__ ++#include ++#include ++ ++#define I2C_RDWR I2CRDWR ++#define I2C_M_RD IIC_M_RD ++#define i2c_msg iic_msg ++#define i2c_rdwr_ioctl_data iic_rdwr_data ++#define addr slave ++#endif ++ + #define MSR_PC8_RES 0x630 + #define MSR_PC9_RES 0x631 + #define MSR_PC10_RES 0x632 +@@ -124,7 +137,11 @@ static int modprobe(const char *driver) + + static int modprobe(const char *driver) + { ++#ifdef __linux__ + return igt_kmod_load(driver, NULL); ++#elif defined(__FreeBSD__) ++ return -ENOSYS; ++#endif + } + + /* If the read fails, then the machine doesn't support PC8+ residencies. */ diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_kms__psr2__su.c b/graphics/igt-gpu-tools/files/patch-tests_i915_kms__psr2__su.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_kms__psr2__su.c @@ -0,0 +1,18 @@ +--- tests/i915/kms_psr2_su.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/kms_psr2_su.c +@@ -29,7 +29,15 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#endif ++ ++/* FreeBSD: POSIX TIMER */ ++#ifdef __FreeBSD__ ++#define timerfd_create(c, f) -1 ++#define timerfd_settime(fd, f, n, o) -1 ++#endif + + IGT_TEST_DESCRIPTION("Test PSR2 selective update"); + diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_kms__psr__stress__test.c b/graphics/igt-gpu-tools/files/patch-tests_i915_kms__psr__stress__test.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_kms__psr__stress__test.c @@ -0,0 +1,32 @@ +--- tests/i915/kms_psr_stress_test.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/kms_psr_stress_test.c +@@ -6,7 +6,9 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#endif + + #define INVALIDATES_PER_SEC 15 + #define FLIPS_PER_SEC 30 +@@ -18,6 +20,12 @@ + #define FRAMEBUFFERS_LEN 60 + + #define DRAW_METHOD IGT_DRAW_BLT ++ ++/* FreeBSD: POSIX TIMER */ ++#ifdef __FreeBSD__ ++#define timerfd_create(c, f) -1 ++#define timerfd_settime(fd, f, n, o) -1 ++#endif + + typedef struct { + int drm_fd; +@@ -374,4 +382,4 @@ igt_main + close(data.debugfs_fd); + close(data.drm_fd); + } +-} +\ No newline at end of file ++} diff --git a/graphics/igt-gpu-tools/files/patch-tests_i915_sysfs__heartbeat__interval.c b/graphics/igt-gpu-tools/files/patch-tests_i915_sysfs__heartbeat__interval.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_i915_sysfs__heartbeat__interval.c @@ -0,0 +1,13 @@ +--- tests/i915/sysfs_heartbeat_interval.c.orig 2022-08-17 23:41:17 UTC ++++ tests/i915/sysfs_heartbeat_interval.c +@@ -42,6 +42,10 @@ + #include "igt_sysfs.h" + #include "sw_sync.h" + ++#ifdef __FreeBSD__ ++#define sighandler_t sig_t ++#endif ++ + #define ATTR "heartbeat_interval_ms" + #define RESET_TIMEOUT 50 /* milliseconds, at least one jiffie for kworker */ + diff --git a/graphics/igt-gpu-tools/files/patch-tests_igt__command__line.sh b/graphics/igt-gpu-tools/files/patch-tests_igt__command__line.sh new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_igt__command__line.sh @@ -0,0 +1,8 @@ +--- tests/igt_command_line.sh.orig 2022-08-17 23:41:17 UTC ++++ tests/igt_command_line.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright © 2014 Intel Corporation + # diff --git a/graphics/igt-gpu-tools/files/patch-tests_kms__content__protection.c b/graphics/igt-gpu-tools/files/patch-tests_kms__content__protection.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_kms__content__protection.c @@ -0,0 +1,12 @@ +--- tests/kms_content_protection.c.orig 2022-08-17 23:41:17 UTC ++++ tests/kms_content_protection.c +@@ -24,7 +24,9 @@ + + #include + #include ++#ifdef __linux__ + #include ++#endif + #include + #include + #include "igt.h" diff --git a/graphics/igt-gpu-tools/files/patch-tests_kms__cursor__legacy.c b/graphics/igt-gpu-tools/files/patch-tests_kms__cursor__legacy.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_kms__cursor__legacy.c @@ -0,0 +1,13 @@ +--- tests/kms_cursor_legacy.c.orig 2022-08-17 23:41:17 UTC ++++ tests/kms_cursor_legacy.c +@@ -47,6 +47,10 @@ + + #define PAGE_SIZE 4096 + ++#ifdef __FreeBSD__ ++#define SCHED_IDLE SCHED_OTHER ++#endif ++ + IGT_TEST_DESCRIPTION("Stress legacy cursor ioctl"); + + igt_pipe_crc_t *pipe_crc; diff --git a/graphics/igt-gpu-tools/files/patch-tests_kms__flip.c b/graphics/igt-gpu-tools/files/patch-tests_kms__flip.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_kms__flip.c @@ -0,0 +1,13 @@ +--- tests/kms_flip.c.orig 2022-08-17 23:41:17 UTC ++++ tests/kms_flip.c +@@ -45,6 +45,10 @@ + #include "i915/gem_create.h" + #include "igt_stats.h" + ++#ifdef __FreeBSD__ ++#include ++#endif ++ + #define TEST_DPMS (1 << 0) + + #define TEST_PAN (1 << 3) diff --git a/graphics/igt-gpu-tools/files/patch-tests_kms__sysfs__edid__timing.c b/graphics/igt-gpu-tools/files/patch-tests_kms__sysfs__edid__timing.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_kms__sysfs__edid__timing.c @@ -0,0 +1,13 @@ +--- tests/kms_sysfs_edid_timing.c.orig 2022-08-17 23:41:17 UTC ++++ tests/kms_sysfs_edid_timing.c +@@ -26,6 +26,10 @@ + #include + #include + ++#ifdef __FreeBSD__ ++#include ++#endif ++ + #define THRESHOLD_PER_CONNECTOR 150 + #define THRESHOLD_PER_CONNECTOR_MEAN 140 + #define THRESHOLD_ALL_CONNECTORS_MEAN 100 diff --git a/graphics/igt-gpu-tools/files/patch-tests_meson.build b/graphics/igt-gpu-tools/files/patch-tests_meson.build new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_meson.build @@ -0,0 +1,174 @@ +--- tests/meson.build.orig 2022-08-17 23:41:17 UTC ++++ tests/meson.build +@@ -6,14 +6,14 @@ test_progs = [ + 'core_setmaster', + 'core_setmaster_vs_auth', + 'debugfs_test', +- 'dmabuf', +- 'dmabuf_sync_file', ++ #'dmabuf', ++ 'dmabuf_sync_file', + 'device_reset', +- 'drm_buddy', ++ #'drm_buddy', + 'drm_import_export', +- 'drm_mm', ++ #'drm_mm', + 'drm_read', +- 'fbdev', ++ #'fbdev', + 'feature_discovery', + 'kms_3d', + 'kms_addfb_basic', +@@ -54,7 +54,7 @@ test_progs = [ + 'kms_rmfb', + 'kms_rotation_crc', + 'kms_scaling_modes', +- 'kms_selftest', ++ #'kms_selftest', + 'kms_sequence', + 'kms_setmode', + 'kms_sysfs_edid_timing', +@@ -222,7 +222,7 @@ i915_progs = [ + 'i915_pm_rps', + 'i915_pm_sseu', + 'i915_query', +- 'i915_selftest', ++ #'i915_selftest', + 'i915_suspend', + 'kms_big_fb', + 'kms_big_joiner' , +@@ -340,21 +340,21 @@ test_list += 'gem_create' + install : true) + test_list += 'gem_create' + +-test_executables += executable('gem_ctx_freq', +- join_paths('i915', 'gem_ctx_freq.c'), +- dependencies : test_deps + [ lib_igt_perf ], +- install_dir : libexecdir, +- install_rpath : libexecdir_rpathdir, +- install : true) +-test_list += 'gem_ctx_freq' ++#test_executables += executable('gem_ctx_freq', ++# join_paths('i915', 'gem_ctx_freq.c'), ++# dependencies : test_deps + [ lib_igt_perf ], ++# install_dir : libexecdir, ++# install_rpath : libexecdir_rpathdir, ++# install : true) ++#test_list += 'gem_ctx_freq' + +-test_executables += executable('gem_ctx_sseu', +- join_paths('i915', 'gem_ctx_sseu.c'), +- dependencies : test_deps + [ lib_igt_perf ], +- install_dir : libexecdir, +- install_rpath : libexecdir_rpathdir, +- install : true) +-test_list += 'gem_ctx_sseu' ++#test_executables += executable('gem_ctx_sseu', ++# join_paths('i915', 'gem_ctx_sseu.c'), ++# dependencies : test_deps + [ lib_igt_perf ], ++# install_dir : libexecdir, ++# install_rpath : libexecdir_rpathdir, ++# install : true) ++#test_list += 'gem_ctx_sseu' + + test_executables += executable('gem_eio', + join_paths('i915', 'gem_eio.c'), +@@ -364,12 +364,12 @@ test_list += 'gem_eio' + install : true) + test_list += 'gem_eio' + +-test_executables += executable('gem_exec_balancer', 'i915/gem_exec_balancer.c', +- dependencies : test_deps + [ lib_igt_perf ], +- install_dir : libexecdir, +- install_rpath : libexecdir_rpathdir, +- install : true) +-test_list += 'gem_exec_balancer' ++#test_executables += executable('gem_exec_balancer', 'i915/gem_exec_balancer.c', ++# dependencies : test_deps + [ lib_igt_perf ], ++# install_dir : libexecdir, ++# install_rpath : libexecdir_rpathdir, ++# install : true) ++#test_list += 'gem_exec_balancer' + + test_executables += executable('gem_mmap_offset', + join_paths('i915', 'gem_mmap_offset.c'), +@@ -379,44 +379,44 @@ test_list += 'gem_mmap_offset' + install : true) + test_list += 'gem_mmap_offset' + +-test_executables += executable('i915_pm_freq_mult', +- join_paths('i915', 'i915_pm_freq_mult.c'), +- dependencies : test_deps + [ lib_igt_perf ], +- install_dir : libexecdir, +- install_rpath : libexecdir_rpathdir, +- install : true) +-test_list += 'i915_pm_freq_mult' ++#test_executables += executable('i915_pm_freq_mult', ++# join_paths('i915', 'i915_pm_freq_mult.c'), ++# dependencies : test_deps + [ lib_igt_perf ], ++# install_dir : libexecdir, ++# install_rpath : libexecdir_rpathdir, ++# install : true) ++#test_list += 'i915_pm_freq_mult' + +-test_executables += executable('i915_pm_rc6_residency', +- join_paths('i915', 'i915_pm_rc6_residency.c'), +- dependencies : test_deps + [ lib_igt_perf ], +- install_dir : libexecdir, +- install_rpath : libexecdir_rpathdir, +- install : true) +-test_list += 'i915_pm_rc6_residency' ++#test_executables += executable('i915_pm_rc6_residency', ++# join_paths('i915', 'i915_pm_rc6_residency.c'), ++# dependencies : test_deps + [ lib_igt_perf ], ++# install_dir : libexecdir, ++# install_rpath : libexecdir_rpathdir, ++# install : true) ++#test_list += 'i915_pm_rc6_residency' + +-test_executables += executable('perf_pmu', +- join_paths('i915', 'perf_pmu.c'), +- dependencies : test_deps + [ lib_igt_perf ], +- install_dir : libexecdir, +- install_rpath : libexecdir_rpathdir, +- install : true) +-test_list += 'perf_pmu' ++#test_executables += executable('perf_pmu', ++# join_paths('i915', 'perf_pmu.c'), ++# dependencies : test_deps + [ lib_igt_perf ], ++# install_dir : libexecdir, ++# install_rpath : libexecdir_rpathdir, ++# install : true) ++#test_list += 'perf_pmu' + +-test_executables += executable('perf', +- join_paths('i915', 'perf.c'), +- dependencies : test_deps + [ lib_igt_i915_perf ], +- install_dir : libexecdir, +- install_rpath : libexecdir_rpathdir, +- install : true) +-test_list += 'perf' ++#test_executables += executable('perf', ++# join_paths('i915', 'perf.c'), ++# dependencies : test_deps + [ lib_igt_i915_perf ], ++# install_dir : libexecdir, ++# install_rpath : libexecdir_rpathdir, ++# install : true) ++#test_list += 'perf' + +-test_executables += executable('core_hotunplug', 'core_hotunplug.c', +- dependencies : test_deps + [ lib_igt_i915_perf ], +- install_dir : libexecdir, +- install_rpath : libexecdir_rpathdir, +- install : true) +-test_list += 'core_hotunplug' ++#test_executables += executable('core_hotunplug', 'core_hotunplug.c', ++# dependencies : test_deps + [ lib_igt_i915_perf ], ++# install_dir : libexecdir, ++# install_rpath : libexecdir_rpathdir, ++# install : true) ++#test_list += 'core_hotunplug' + + executable('testdisplay', ['testdisplay.c', 'testdisplay_hotplug.c'], + dependencies : test_deps, diff --git a/graphics/igt-gpu-tools/files/patch-tests_sw__sync.c b/graphics/igt-gpu-tools/files/patch-tests_sw__sync.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_sw__sync.c @@ -0,0 +1,12 @@ +--- tests/sw_sync.c.orig 2022-08-17 23:41:17 UTC ++++ tests/sw_sync.c +@@ -38,6 +38,9 @@ + + #include "sw_sync.h" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif + + IGT_TEST_DESCRIPTION("Test SW Sync Framework"); + diff --git a/graphics/igt-gpu-tools/files/patch-tests_syncobj__timeline.c b/graphics/igt-gpu-tools/files/patch-tests_syncobj__timeline.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_syncobj__timeline.c @@ -0,0 +1,13 @@ +--- tests/syncobj_timeline.c.orig 2022-08-17 23:41:17 UTC ++++ tests/syncobj_timeline.c +@@ -31,6 +31,10 @@ + #include + #include "drm.h" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + IGT_TEST_DESCRIPTION("Tests for the drm timeline sync object API"); + + /* One tenth of a second */ diff --git a/graphics/igt-gpu-tools/files/patch-tests_syncobj__wait.c b/graphics/igt-gpu-tools/files/patch-tests_syncobj__wait.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_syncobj__wait.c @@ -0,0 +1,13 @@ +--- tests/syncobj_wait.c.orig 2022-08-17 23:41:17 UTC ++++ tests/syncobj_wait.c +@@ -31,6 +31,10 @@ + #include + #include "drm.h" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + IGT_TEST_DESCRIPTION("Tests for the drm sync object wait API"); + + /* One tenth of a second */ diff --git a/graphics/igt-gpu-tools/files/patch-tests_tools__test.c b/graphics/igt-gpu-tools/files/patch-tests_tools__test.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_tools__test.c @@ -0,0 +1,15 @@ +--- tests/tools_test.c.orig 2022-08-17 23:41:17 UTC ++++ tests/tools_test.c +@@ -28,7 +28,12 @@ + #include + #include + #include ++#ifdef __linux__ + #include ++#elif defined(__FreeBSD__) ++#include ++#define get_current_dir_name() getwd(NULL) ++#endif + + #define TOOLS "../tools/" + diff --git a/graphics/igt-gpu-tools/files/patch-tests_vc4__purgeable__bo.c b/graphics/igt-gpu-tools/files/patch-tests_vc4__purgeable__bo.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_vc4__purgeable__bo.c @@ -0,0 +1,13 @@ +--- tests/vc4_purgeable_bo.c.orig 2022-08-17 23:41:17 UTC ++++ tests/vc4_purgeable_bo.c +@@ -35,6 +35,10 @@ + #include + #include "vc4_drm.h" + ++#ifdef __FreeBSD__ ++#undef jmp_buf ++#endif ++ + struct igt_vc4_bo { + struct igt_list_head node; + int handle; diff --git a/graphics/igt-gpu-tools/files/patch-tests_vc4__wait__bo.c b/graphics/igt-gpu-tools/files/patch-tests_vc4__wait__bo.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_vc4__wait__bo.c @@ -0,0 +1,13 @@ +--- tests/vc4_wait_bo.c.orig 2022-08-17 23:41:17 UTC ++++ tests/vc4_wait_bo.c +@@ -34,6 +34,10 @@ + #include + #include "vc4_drm.h" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + static void + test_used_bo(int fd, uint64_t timeout) + { diff --git a/graphics/igt-gpu-tools/files/patch-tests_vc4__wait__seqno.c b/graphics/igt-gpu-tools/files/patch-tests_vc4__wait__seqno.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tests_vc4__wait__seqno.c @@ -0,0 +1,13 @@ +--- tests/vc4_wait_seqno.c.orig 2022-08-17 23:41:17 UTC ++++ tests/vc4_wait_seqno.c +@@ -33,6 +33,10 @@ + #include + #include "vc4_drm.h" + ++#ifdef __FreeBSD__ ++#define ETIME ETIMEDOUT ++#endif ++ + igt_main + { + int fd; diff --git a/graphics/igt-gpu-tools/files/patch-tools_intel__gvtg__test.c b/graphics/igt-gpu-tools/files/patch-tools_intel__gvtg__test.c new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tools_intel__gvtg__test.c @@ -0,0 +1,12 @@ +--- tools/intel_gvtg_test.c.orig 2022-08-17 23:41:17 UTC ++++ tools/intel_gvtg_test.c +@@ -44,6 +44,9 @@ + #include + #include + #include ++#ifdef __FreeBSD__ ++#include ++#endif + #include + #include + #include diff --git a/graphics/igt-gpu-tools/files/patch-tools_meson.build b/graphics/igt-gpu-tools/files/patch-tools_meson.build new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/files/patch-tools_meson.build @@ -0,0 +1,24 @@ +--- tools/meson.build.orig 2022-08-17 23:41:17 UTC ++++ tools/meson.build +@@ -89,10 +89,10 @@ install_subdir('registers', install_dir : datadir) + + install_subdir('registers', install_dir : datadir) + +-executable('intel_gpu_top', 'intel_gpu_top.c', +- install : true, +- install_rpath : bindir_rpathdir, +- dependencies : [lib_igt_perf,lib_igt_device_scan,lib_igt_drm_fdinfo,math]) ++#executable('intel_gpu_top', 'intel_gpu_top.c', ++# install : true, ++# install_rpath : bindir_rpathdir, ++# dependencies : [lib_igt_perf,lib_igt_device_scan,lib_igt_drm_fdinfo,math]) + + executable('amd_hdmi_compliance', 'amd_hdmi_compliance.c', + dependencies : [tool_deps], +@@ -111,5 +111,5 @@ endif + install : true) + endif + +-subdir('i915-perf') ++#subdir('i915-perf') + subdir('null_state_gen') diff --git a/graphics/igt-gpu-tools/pkg-descr b/graphics/igt-gpu-tools/pkg-descr new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/pkg-descr @@ -0,0 +1,10 @@ +IGT GPU Tools is a collection of tools for development and testing of the +DRM drivers. There are many macro-level test suites that get used against +the drivers, including xtest, rendercheck, piglit, and oglconform, but +failures from those can be difficult to track down to kernel changes, and +many require complicated build procedures or specific testing environments +to get useful results. Therefore, IGT GPU Tools includes low-level tools +and tests specifically for development and testing of the DRM Drivers. + +Generated documentation for the latest master is published under +WWW: https://drm.pages.freedesktop.org/igt-gpu-tools/ diff --git a/graphics/igt-gpu-tools/pkg-plist b/graphics/igt-gpu-tools/pkg-plist new file mode 100644 --- /dev/null +++ b/graphics/igt-gpu-tools/pkg-plist @@ -0,0 +1,499 @@ +bin/amd_hdmi_compliance +%%TEST%%bin/code_cov_capture +%%TEST%%bin/code_cov_gather_on_build +%%TEST%%bin/code_cov_gather_on_test +%%TEST%%bin/code_cov_gen_report +%%TEST%%bin/code_cov_parse_info +bin/dpcd_reg +%%RUNNER%%bin/igt_results +%%RUNNER%%bin/igt_resume +%%RUNNER%%bin/igt_runner +bin/igt_stats +bin/intel-gen4asm +bin/intel-gen4disasm +bin/intel_audio_dump +bin/intel_backlight +bin/intel_bios_dumper +bin/intel_display_crc +bin/intel_display_poller +bin/intel_dp_compliance +bin/intel_dump_decode +bin/intel_error_decode +bin/intel_firmware_decode +bin/intel_forcewaked +bin/intel_framebuffer_dump +bin/intel_gem_info +bin/intel_gpu_abrt +bin/intel_gpu_frequency +bin/intel_gpu_time +bin/intel_gtt +bin/intel_guc_logger +bin/intel_gvtg_test +bin/intel_infoframes +bin/intel_l3_parity +bin/intel_lid +bin/intel_opregion_decode +bin/intel_panel_fitter +bin/intel_perf_counters +bin/intel_pm_rpm +bin/intel_reg +bin/intel_reg_checker +bin/intel_residency +bin/intel_stepping +bin/intel_vbt_decode +bin/intel_watermark +bin/lsgpu +bin/msm_dp_compliance +include/i915-perf/igt_list.h +include/i915-perf/intel_chipset.h +include/i915-perf/perf.h +include/i915-perf/perf_data.h +include/i915-perf/perf_data_reader.h +lib/libi915_perf.so +lib/libi915_perf.so.1 +lib/libigt.so +lib/libigt.so.0 +libdata/pkgconfig/i915-perf.pc +libdata/pkgconfig/intel-gen4asm.pc +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_abm +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_assr +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_basic +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_bypass +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_color +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_cs_nop +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_dp_dsc +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_hotplug +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_ilr +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_info +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_link_settings +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_max_bpc +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_mem_leak +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_mode_switch +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_module_load +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_plane +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_prime +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_psr +%%TEST%%libexec/igt-gpu-tools/amdgpu/amd_vrr_range +%%TEST%%libexec/igt-gpu-tools/api_intel_allocator +%%TEST%%libexec/igt-gpu-tools/api_intel_bb +libexec/igt-gpu-tools/benchmarks/gem_blt +libexec/igt-gpu-tools/benchmarks/gem_busy +libexec/igt-gpu-tools/benchmarks/gem_create +libexec/igt-gpu-tools/benchmarks/gem_exec_ctx +libexec/igt-gpu-tools/benchmarks/gem_exec_fault +libexec/igt-gpu-tools/benchmarks/gem_exec_nop +libexec/igt-gpu-tools/benchmarks/gem_exec_reloc +libexec/igt-gpu-tools/benchmarks/gem_exec_trace +libexec/igt-gpu-tools/benchmarks/gem_latency +libexec/igt-gpu-tools/benchmarks/gem_prw +libexec/igt-gpu-tools/benchmarks/gem_set_domain +libexec/igt-gpu-tools/benchmarks/gem_syslatency +libexec/igt-gpu-tools/benchmarks/gem_userptr_benchmark +libexec/igt-gpu-tools/benchmarks/gem_wsim +libexec/igt-gpu-tools/benchmarks/intel_upload_blit_large +libexec/igt-gpu-tools/benchmarks/intel_upload_blit_large_gtt +libexec/igt-gpu-tools/benchmarks/intel_upload_blit_large_map +libexec/igt-gpu-tools/benchmarks/intel_upload_blit_small +libexec/igt-gpu-tools/benchmarks/kms_vblank +libexec/igt-gpu-tools/benchmarks/libgem_exec_tracer.so +libexec/igt-gpu-tools/benchmarks/prime_lookup +libexec/igt-gpu-tools/benchmarks/vgem_mmap +%%TEST%%libexec/igt-gpu-tools/core_auth +%%TEST%%libexec/igt-gpu-tools/core_getclient +%%TEST%%libexec/igt-gpu-tools/core_getstats +%%TEST%%libexec/igt-gpu-tools/core_getversion +%%TEST%%libexec/igt-gpu-tools/core_setmaster +%%TEST%%libexec/igt-gpu-tools/core_setmaster_vs_auth +%%TEST%%libexec/igt-gpu-tools/debugfs_test +%%TEST%%libexec/igt-gpu-tools/device_reset +%%TEST%%libexec/igt-gpu-tools/dmabuf_sync_file +%%TEST%%libexec/igt-gpu-tools/drm_fdinfo +%%TEST%%libexec/igt-gpu-tools/drm_import_export +%%TEST%%libexec/igt-gpu-tools/drm_read +%%TEST%%libexec/igt-gpu-tools/dumb_buffer +%%TEST%%libexec/igt-gpu-tools/feature_discovery +%%TEST%%libexec/igt-gpu-tools/gem_bad_reloc +%%TEST%%libexec/igt-gpu-tools/gem_basic +%%TEST%%libexec/igt-gpu-tools/gem_blits +%%TEST%%libexec/igt-gpu-tools/gem_busy +%%TEST%%libexec/igt-gpu-tools/gem_caching +%%TEST%%libexec/igt-gpu-tools/gem_ccs +%%TEST%%libexec/igt-gpu-tools/gem_close +%%TEST%%libexec/igt-gpu-tools/gem_close_race +%%TEST%%libexec/igt-gpu-tools/gem_concurrent_all +%%TEST%%libexec/igt-gpu-tools/gem_concurrent_blit +%%TEST%%libexec/igt-gpu-tools/gem_create +%%TEST%%libexec/igt-gpu-tools/gem_cs_tlb +%%TEST%%libexec/igt-gpu-tools/gem_ctx_bad_destroy +%%TEST%%libexec/igt-gpu-tools/gem_ctx_create +%%TEST%%libexec/igt-gpu-tools/gem_ctx_engines +%%TEST%%libexec/igt-gpu-tools/gem_ctx_exec +%%TEST%%libexec/igt-gpu-tools/gem_ctx_isolation +%%TEST%%libexec/igt-gpu-tools/gem_ctx_param +%%TEST%%libexec/igt-gpu-tools/gem_ctx_persistence +%%TEST%%libexec/igt-gpu-tools/gem_ctx_shared +%%TEST%%libexec/igt-gpu-tools/gem_ctx_switch +%%TEST%%libexec/igt-gpu-tools/gem_eio +%%TEST%%libexec/igt-gpu-tools/gem_evict_alignment +%%TEST%%libexec/igt-gpu-tools/gem_evict_everything +%%TEST%%libexec/igt-gpu-tools/gem_exec_alignment +%%TEST%%libexec/igt-gpu-tools/gem_exec_async +%%TEST%%libexec/igt-gpu-tools/gem_exec_await +%%TEST%%libexec/igt-gpu-tools/gem_exec_basic +%%TEST%%libexec/igt-gpu-tools/gem_exec_big +%%TEST%%libexec/igt-gpu-tools/gem_exec_capture +%%TEST%%libexec/igt-gpu-tools/gem_exec_create +%%TEST%%libexec/igt-gpu-tools/gem_exec_endless +%%TEST%%libexec/igt-gpu-tools/gem_exec_fair +%%TEST%%libexec/igt-gpu-tools/gem_exec_fence +%%TEST%%libexec/igt-gpu-tools/gem_exec_flush +%%TEST%%libexec/igt-gpu-tools/gem_exec_gttfill +%%TEST%%libexec/igt-gpu-tools/gem_exec_latency +%%TEST%%libexec/igt-gpu-tools/gem_exec_lut_handle +%%TEST%%libexec/igt-gpu-tools/gem_exec_nop +%%TEST%%libexec/igt-gpu-tools/gem_exec_parallel +%%TEST%%libexec/igt-gpu-tools/gem_exec_params +%%TEST%%libexec/igt-gpu-tools/gem_exec_reloc +%%TEST%%libexec/igt-gpu-tools/gem_exec_schedule +%%TEST%%libexec/igt-gpu-tools/gem_exec_store +%%TEST%%libexec/igt-gpu-tools/gem_exec_suspend +%%TEST%%libexec/igt-gpu-tools/gem_exec_whisper +%%TEST%%libexec/igt-gpu-tools/gem_fd_exhaustion +%%TEST%%libexec/igt-gpu-tools/gem_fence_thrash +%%TEST%%libexec/igt-gpu-tools/gem_fence_upload +%%TEST%%libexec/igt-gpu-tools/gem_fenced_exec_thrash +%%TEST%%libexec/igt-gpu-tools/gem_flink_basic +%%TEST%%libexec/igt-gpu-tools/gem_flink_race +%%TEST%%libexec/igt-gpu-tools/gem_gpgpu_fill +%%TEST%%libexec/igt-gpu-tools/gem_gtt_cpu_tlb +%%TEST%%libexec/igt-gpu-tools/gem_gtt_hog +%%TEST%%libexec/igt-gpu-tools/gem_gtt_speed +%%TEST%%libexec/igt-gpu-tools/gem_huc_copy +%%TEST%%libexec/igt-gpu-tools/gem_linear_blits +%%TEST%%libexec/igt-gpu-tools/gem_lmem_swapping +%%TEST%%libexec/igt-gpu-tools/gem_lut_handle +%%TEST%%libexec/igt-gpu-tools/gem_madvise +%%TEST%%libexec/igt-gpu-tools/gem_media_fill +%%TEST%%libexec/igt-gpu-tools/gem_media_vme +%%TEST%%libexec/igt-gpu-tools/gem_mmap +%%TEST%%libexec/igt-gpu-tools/gem_mmap_gtt +%%TEST%%libexec/igt-gpu-tools/gem_mmap_offset +%%TEST%%libexec/igt-gpu-tools/gem_mmap_wc +%%TEST%%libexec/igt-gpu-tools/gem_partial_pwrite_pread +%%TEST%%libexec/igt-gpu-tools/gem_pipe_control_store_loop +%%TEST%%libexec/igt-gpu-tools/gem_ppgtt +%%TEST%%libexec/igt-gpu-tools/gem_pread +%%TEST%%libexec/igt-gpu-tools/gem_pread_after_blit +%%TEST%%libexec/igt-gpu-tools/gem_pwrite +%%TEST%%libexec/igt-gpu-tools/gem_pwrite_snooped +%%TEST%%libexec/igt-gpu-tools/gem_pxp +%%TEST%%libexec/igt-gpu-tools/gem_read_read_speed +%%TEST%%libexec/igt-gpu-tools/gem_readwrite +%%TEST%%libexec/igt-gpu-tools/gem_reg_read +%%TEST%%libexec/igt-gpu-tools/gem_render_copy +%%TEST%%libexec/igt-gpu-tools/gem_render_copy_redux +%%TEST%%libexec/igt-gpu-tools/gem_render_linear_blits +%%TEST%%libexec/igt-gpu-tools/gem_render_tiled_blits +%%TEST%%libexec/igt-gpu-tools/gem_request_retire +%%TEST%%libexec/igt-gpu-tools/gem_reset_stats +%%TEST%%libexec/igt-gpu-tools/gem_ringfill +%%TEST%%libexec/igt-gpu-tools/gem_set_tiling_vs_blt +%%TEST%%libexec/igt-gpu-tools/gem_set_tiling_vs_gtt +%%TEST%%libexec/igt-gpu-tools/gem_set_tiling_vs_pwrite +%%TEST%%libexec/igt-gpu-tools/gem_shrink +%%TEST%%libexec/igt-gpu-tools/gem_softpin +%%TEST%%libexec/igt-gpu-tools/gem_spin_batch +%%TEST%%libexec/igt-gpu-tools/gem_streaming_writes +%%TEST%%libexec/igt-gpu-tools/gem_stress +%%TEST%%libexec/igt-gpu-tools/gem_sync +%%TEST%%libexec/igt-gpu-tools/gem_tiled_blits +%%TEST%%libexec/igt-gpu-tools/gem_tiled_fence_blits +%%TEST%%libexec/igt-gpu-tools/gem_tiled_partial_pwrite_pread +%%TEST%%libexec/igt-gpu-tools/gem_tiled_pread_basic +%%TEST%%libexec/igt-gpu-tools/gem_tiled_pread_pwrite +%%TEST%%libexec/igt-gpu-tools/gem_tiled_swapping +%%TEST%%libexec/igt-gpu-tools/gem_tiled_wb +%%TEST%%libexec/igt-gpu-tools/gem_tiled_wc +%%TEST%%libexec/igt-gpu-tools/gem_tiling_max_stride +%%TEST%%libexec/igt-gpu-tools/gem_unfence_active_buffers +%%TEST%%libexec/igt-gpu-tools/gem_unref_active_buffers +%%TEST%%libexec/igt-gpu-tools/gem_userptr_blits +%%TEST%%libexec/igt-gpu-tools/gem_vm_create +%%TEST%%libexec/igt-gpu-tools/gem_wait +%%TEST%%libexec/igt-gpu-tools/gem_watchdog +%%TEST%%libexec/igt-gpu-tools/gem_workarounds +%%TEST%%libexec/igt-gpu-tools/gen3_mixed_blits +%%TEST%%libexec/igt-gpu-tools/gen3_render_linear_blits +%%TEST%%libexec/igt-gpu-tools/gen3_render_mixed_blits +%%TEST%%libexec/igt-gpu-tools/gen3_render_tiledx_blits +%%TEST%%libexec/igt-gpu-tools/gen3_render_tiledy_blits +%%TEST%%libexec/igt-gpu-tools/gen7_exec_parse +%%TEST%%libexec/igt-gpu-tools/gen9_exec_parse +%%TEST%%libexec/igt-gpu-tools/i915_fb_tiling +%%TEST%%libexec/igt-gpu-tools/i915_getparams_basic +%%TEST%%libexec/igt-gpu-tools/i915_hangman +%%TEST%%libexec/igt-gpu-tools/i915_module_load +%%TEST%%libexec/igt-gpu-tools/i915_pciid +%%TEST%%libexec/igt-gpu-tools/i915_pm_backlight +%%TEST%%libexec/igt-gpu-tools/i915_pm_dc +%%TEST%%libexec/igt-gpu-tools/i915_pm_lpsp +%%TEST%%libexec/igt-gpu-tools/i915_pm_rpm +%%TEST%%libexec/igt-gpu-tools/i915_pm_rps +%%TEST%%libexec/igt-gpu-tools/i915_pm_sseu +%%TEST%%libexec/igt-gpu-tools/i915_query +%%TEST%%libexec/igt-gpu-tools/i915_suspend +%%TEST%%libexec/igt-gpu-tools/kms_3d +%%TEST%%libexec/igt-gpu-tools/kms_addfb_basic +%%TEST%%libexec/igt-gpu-tools/kms_async_flips +%%TEST%%libexec/igt-gpu-tools/kms_atomic +%%TEST%%libexec/igt-gpu-tools/kms_atomic_interruptible +%%TEST%%libexec/igt-gpu-tools/kms_atomic_transition +%%TEST%%libexec/igt-gpu-tools/kms_big_fb +%%TEST%%libexec/igt-gpu-tools/kms_big_joiner +%%TEST%%libexec/igt-gpu-tools/kms_busy +%%TEST%%libexec/igt-gpu-tools/kms_bw +%%TEST%%libexec/igt-gpu-tools/kms_ccs +%%TEST%%libexec/igt-gpu-tools/kms_cdclk +%%CHAMELIUM%%libexec/igt-gpu-tools/kms_chamelium +%%TEST%%libexec/igt-gpu-tools/kms_color +%%CHAMELIUM%%libexec/igt-gpu-tools/kms_color_chamelium +%%TEST%%libexec/igt-gpu-tools/kms_concurrent +%%TEST%%libexec/igt-gpu-tools/kms_content_protection +%%TEST%%libexec/igt-gpu-tools/kms_cursor_crc +%%TEST%%libexec/igt-gpu-tools/kms_cursor_edge_walk +%%TEST%%libexec/igt-gpu-tools/kms_cursor_legacy +%%TEST%%libexec/igt-gpu-tools/kms_display_modes +%%TEST%%libexec/igt-gpu-tools/kms_dither +%%TEST%%libexec/igt-gpu-tools/kms_dp_aux_dev +%%TEST%%libexec/igt-gpu-tools/kms_dp_tiled_display +%%TEST%%libexec/igt-gpu-tools/kms_draw_crc +%%TEST%%libexec/igt-gpu-tools/kms_dsc +%%TEST%%libexec/igt-gpu-tools/kms_fbcon_fbt +%%TEST%%libexec/igt-gpu-tools/kms_fence_pin_leak +%%TEST%%libexec/igt-gpu-tools/kms_flip +%%TEST%%libexec/igt-gpu-tools/kms_flip_event_leak +%%TEST%%libexec/igt-gpu-tools/kms_flip_scaled_crc +%%TEST%%libexec/igt-gpu-tools/kms_flip_tiling +%%TEST%%libexec/igt-gpu-tools/kms_force_connector_basic +%%TEST%%libexec/igt-gpu-tools/kms_frontbuffer_tracking +%%TEST%%libexec/igt-gpu-tools/kms_getfb +%%TEST%%libexec/igt-gpu-tools/kms_hdmi_inject +%%TEST%%libexec/igt-gpu-tools/kms_hdr +%%TEST%%libexec/igt-gpu-tools/kms_invalid_mode +%%TEST%%libexec/igt-gpu-tools/kms_lease +%%TEST%%libexec/igt-gpu-tools/kms_legacy_colorkey +%%TEST%%libexec/igt-gpu-tools/kms_mmap_write_crc +%%TEST%%libexec/igt-gpu-tools/kms_multipipe_modeset +%%TEST%%libexec/igt-gpu-tools/kms_panel_fitting +%%TEST%%libexec/igt-gpu-tools/kms_pipe_b_c_ivb +%%TEST%%libexec/igt-gpu-tools/kms_pipe_crc_basic +%%TEST%%libexec/igt-gpu-tools/kms_plane +%%TEST%%libexec/igt-gpu-tools/kms_plane_alpha_blend +%%TEST%%libexec/igt-gpu-tools/kms_plane_cursor +%%TEST%%libexec/igt-gpu-tools/kms_plane_lowres +%%TEST%%libexec/igt-gpu-tools/kms_plane_multiple +%%TEST%%libexec/igt-gpu-tools/kms_plane_scaling +%%TEST%%libexec/igt-gpu-tools/kms_prime +%%TEST%%libexec/igt-gpu-tools/kms_prop_blob +%%TEST%%libexec/igt-gpu-tools/kms_properties +%%TEST%%libexec/igt-gpu-tools/kms_psr +%%TEST%%libexec/igt-gpu-tools/kms_psr2_sf +%%TEST%%libexec/igt-gpu-tools/kms_psr2_su +%%TEST%%libexec/igt-gpu-tools/kms_psr_stress_test +%%TEST%%libexec/igt-gpu-tools/kms_pwrite_crc +%%TEST%%libexec/igt-gpu-tools/kms_rmfb +%%TEST%%libexec/igt-gpu-tools/kms_rotation_crc +%%TEST%%libexec/igt-gpu-tools/kms_scaling_modes +%%TEST%%libexec/igt-gpu-tools/kms_sequence +%%TEST%%libexec/igt-gpu-tools/kms_setmode +%%TEST%%libexec/igt-gpu-tools/kms_sysfs_edid_timing +%%TEST%%libexec/igt-gpu-tools/kms_tv_load_detect +%%TEST%%libexec/igt-gpu-tools/kms_universal_plane +%%TEST%%libexec/igt-gpu-tools/kms_vblank +%%TEST%%libexec/igt-gpu-tools/kms_vrr +%%TEST%%libexec/igt-gpu-tools/kms_writeback +%%TEST%%libexec/igt-gpu-tools/meta_test +%%TEST%%libexec/igt-gpu-tools/msm_mapping +%%TEST%%libexec/igt-gpu-tools/msm_recovery +%%TEST%%libexec/igt-gpu-tools/msm_submit +%%TEST%%libexec/igt-gpu-tools/panfrost_gem_new +%%TEST%%libexec/igt-gpu-tools/panfrost_get_param +%%TEST%%libexec/igt-gpu-tools/panfrost_prime +%%TEST%%libexec/igt-gpu-tools/panfrost_submit +%%TEST%%libexec/igt-gpu-tools/prime_busy +%%TEST%%libexec/igt-gpu-tools/prime_mmap +%%TEST%%libexec/igt-gpu-tools/prime_mmap_coherency +%%TEST%%libexec/igt-gpu-tools/prime_mmap_kms +%%TEST%%libexec/igt-gpu-tools/prime_self_import +%%TEST%%libexec/igt-gpu-tools/prime_udl +%%TEST%%libexec/igt-gpu-tools/prime_vgem +%%TEST%%libexec/igt-gpu-tools/sw_sync +%%TEST%%libexec/igt-gpu-tools/syncobj_basic +%%TEST%%libexec/igt-gpu-tools/syncobj_timeline +%%TEST%%libexec/igt-gpu-tools/syncobj_wait +%%TEST%%libexec/igt-gpu-tools/sysfs_clients +%%TEST%%libexec/igt-gpu-tools/sysfs_defaults +%%TEST%%libexec/igt-gpu-tools/sysfs_heartbeat_interval +%%TEST%%libexec/igt-gpu-tools/sysfs_preempt_timeout +%%TEST%%libexec/igt-gpu-tools/sysfs_timeslice_duration +%%TEST%%libexec/igt-gpu-tools/template +%%TEST%%libexec/igt-gpu-tools/test-list-full.txt +%%TEST%%libexec/igt-gpu-tools/test-list.txt +%%TEST%%libexec/igt-gpu-tools/testdisplay +%%TEST%%libexec/igt-gpu-tools/tools_test +%%TEST%%libexec/igt-gpu-tools/v3d_get_bo_offset +%%TEST%%libexec/igt-gpu-tools/v3d_get_param +%%TEST%%libexec/igt-gpu-tools/v3d_mmap +%%TEST%%libexec/igt-gpu-tools/vc4_create_bo +%%TEST%%libexec/igt-gpu-tools/vc4_dmabuf_poll +%%TEST%%libexec/igt-gpu-tools/vc4_label_bo +%%TEST%%libexec/igt-gpu-tools/vc4_lookup_fail +%%TEST%%libexec/igt-gpu-tools/vc4_purgeable_bo +%%TEST%%libexec/igt-gpu-tools/vc4_tiling +%%TEST%%libexec/igt-gpu-tools/vc4_wait_bo +%%TEST%%libexec/igt-gpu-tools/vc4_wait_seqno +%%TEST%%libexec/igt-gpu-tools/vgem_basic +%%TEST%%libexec/igt-gpu-tools/vgem_slow +%%MANPAGES%%man/man1/intel_audio_dump.1.gz +%%MANPAGES%%man/man1/intel_bios_dumper.1.gz +%%MANPAGES%%man/man1/intel_error_decode.1.gz +%%MANPAGES%%man/man1/intel_gpu_frequency.1.gz +%%MANPAGES%%man/man1/intel_gpu_top.1.gz +%%MANPAGES%%man/man1/intel_gtt.1.gz +%%MANPAGES%%man/man1/intel_infoframes.1.gz +%%MANPAGES%%man/man1/intel_lid.1.gz +%%MANPAGES%%man/man1/intel_panel_fitter.1.gz +%%MANPAGES%%man/man1/intel_reg.1.gz +%%MANPAGES%%man/man1/intel_stepping.1.gz +%%MANPAGES%%man/man1/intel_upload_blit_large.1.gz +%%MANPAGES%%man/man1/intel_upload_blit_large_gtt.1.gz +%%MANPAGES%%man/man1/intel_upload_blit_large_map.1.gz +%%MANPAGES%%man/man1/intel_upload_blit_small.1.gz +%%MANPAGES%%man/man1/intel_vbt_decode.1.gz +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/annotation-glossary.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/ch01.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/ch02.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/deprecated-api-index.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/full-api-index.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/home.png +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-amdgpu-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-core-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-debugfs-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-drm-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gem-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gen3-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gen7-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-ALSA.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Audio.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Batch-Buffer.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Blitter-library.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Buffer-operations.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-CRC.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Chamelium.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Chipset.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Collection.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Core.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Device-selection.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Draw.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Dummyload.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Frame.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Framebuffer.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-GEM-Context.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-GEM-Create.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-GEM-Engine-Topology.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-GEM-Scheduler.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-GEM-Submission.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-GT.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-I915-GPU-CRC.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-IGT-List.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-IGT-Map.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-IO.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Intel-Context-Wrapper.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Intel-allocator.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-KMS.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Power-Management.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Primes.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Random.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-SW-Sync.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-Stats.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-VC4.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-VGEM.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-aux.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-debugfs.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-drmtest.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-igt-device.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-io.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-ioctl-wrappers.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-kmod.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-msm.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-syncobj.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-sysfs.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools-x86.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-gpu-tools.devhelp2 +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-i915-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-kms-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-meta-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-perf-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-pm-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-prime-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-sw-sync-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-test-programs-common-features.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-testdisplay-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-tools-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/igt-vgem-tests.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/index.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/left-insensitive.png +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/left.png +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/right-insensitive.png +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/right.png +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/style.css +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/test-programs.html +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/up-insensitive.png +%%DOCS%%share/gtk-doc/html/igt-gpu-tools/up.png +%%TEST%%%%DATADIR%%/1080p-left.png +%%TEST%%%%DATADIR%%/1080p-right.png +%%TEST%%%%DATADIR%%/README +%%TEST%%%%DATADIR%%/blacklist-pre-merge.txt +%%TEST%%%%DATADIR%%/blacklist.txt +%%TEST%%%%DATADIR%%/fast-feedback.testlist +%%TEST%%%%DATADIR%%/meta.testlist +%%TEST%%%%DATADIR%%/pass.png +%%DATADIR%%/registers/audio_config_haswell_plus.txt +%%DATADIR%%/registers/audio_debug_haswell_plus.txt +%%DATADIR%%/registers/base_interrupt.txt +%%DATADIR%%/registers/base_other.txt +%%DATADIR%%/registers/base_power.txt +%%DATADIR%%/registers/base_rings.txt +%%DATADIR%%/registers/broadwell +%%DATADIR%%/registers/cherryview +%%DATADIR%%/registers/chv_display_base.txt +%%DATADIR%%/registers/chv_dpio_phy_x1.txt +%%DATADIR%%/registers/chv_dpio_phy_x2.txt +%%DATADIR%%/registers/chv_pipe_b_extra.txt +%%DATADIR%%/registers/chv_pipe_c.txt +%%DATADIR%%/registers/common_display.txt +%%DATADIR%%/registers/gen6_other.txt +%%DATADIR%%/registers/gen7_other.txt +%%DATADIR%%/registers/gen8_interrupt.txt +%%DATADIR%%/registers/gen8_other.txt +%%DATADIR%%/registers/haswell +%%DATADIR%%/registers/haswell_other.txt +%%DATADIR%%/registers/icelake +%%DATADIR%%/registers/icl_delta.txt +%%DATADIR%%/registers/ivybridge +%%DATADIR%%/registers/kabylake +%%DATADIR%%/registers/sandybridge +%%DATADIR%%/registers/skl_display.txt +%%DATADIR%%/registers/skl_powerwells.txt +%%DATADIR%%/registers/skylake +%%DATADIR%%/registers/tigerlake +%%DATADIR%%/registers/tigerlake_delta.txt +%%DATADIR%%/registers/valleyview +%%DATADIR%%/registers/vlv_cck.txt +%%DATADIR%%/registers/vlv_display_base.txt +%%DATADIR%%/registers/vlv_dpio_phy.txt +%%DATADIR%%/registers/vlv_dsi.txt +%%DATADIR%%/registers/vlv_flisdsi.txt +%%DATADIR%%/registers/vlv_pipe_a.txt +%%DATADIR%%/registers/vlv_pipe_b.txt +%%DATADIR%%/registers/vlv_power.txt