1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
7 SDESC[standard]= Mesa 3D Graphics Library
8 HOMEPAGE= https://www.mesa3d.org/
12 SITES[main]= https://mesa.freedesktop.org/archive/
13 ftp://ftp.freedesktop.org/pub/mesa/
14 DISTFILE[1]= mesa-21.2.2.tar.xz:main
16 SPKGS[standard]= complete
20 OPTIONS_AVAILABLE= X86_DRIVERS ARM_DRIVERS LLVMPIPE WAYLAND
21 OPTIONS_STANDARD= X86_DRIVERS ARM_DRIVERS LLVMPIPE
22 OPT_ON[freebsd]= LLVMPIPE//i386|x86_64
23 OPT_ON[aarch64]= ARM_DRIVERS
24 OPT_ON[linux]= LLVMPIPE//i386|x86_64
25 OPT_ON[x86_64]= X86_DRIVERS
26 OPT_ON[dragonfly]= LLVMPIPE//i386|x86_64
27 OPT_ON[i386]= X86_DRIVERS
29 BUILD_DEPENDS= python-Mako:single:python_used
30 libpthread-stubs:single:standard
31 libelf:single:standard
32 libvdpau:single:standard
34 BUILDRUN_DEPENDS= libdrm:single:standard
35 EXRUN[drivers]= mesa:libs:standard
36 libelf:single:standard
38 USES= cpe bison gettext-tools gmake meson pkgconfig zstd
39 zlib expat shebangfix solaris-funcs python:build
41 XORG_COMPONENTS= x11 xdamage xext xfixes xshmfence xxf86vm xv xrandr
44 LICENSE= MIT:libs CUSTOM1:libs CUSTOM2:libs
45 LICENSE_NAME= CUSTOM1:"Kronos License (MIT with modifications)"
46 CUSTOM2:"SGI Free Software License B"
47 LICENSE_FILE= MIT:{{WRKDIR}}/LICENSE_MIT
48 CUSTOM1:{{WRKDIR}}/LICENSE_KHRONOS
49 CUSTOM2:{{WRKDIR}}/LICENSE_SGI
50 LICENSE_AWK= MIT:"^$$"
52 LICENSE_SOURCE= MIT:{{WRKSRC}}/include/GL/gl.h
53 CUSTOM2:{{WRKSRC}}/src/glx/eval.c
57 FPC_EQUIVALENT= graphics/mesa-libs
58 MESON_ARGS= -Dplatforms=x11{{WAYPLAT}}
61 -Ddri-drivers={{DRI_DRIVERS:tW:tl:C/[[:space:]]/,/g}}
62 -Dgallium-drivers={{GALLIUM_DRIVERS:tW:tl:C/[[:space:]]/,/g}}
63 -Dgallium-vdpau=enabled
67 -Dvulkan-drivers={{VULKAN_DRIVERS:tW:tl:C/[[:space:]]/,/g}}
68 SHEBANG_FILES= src/gallium/*/*/*.py
69 src/gallium/tools/trace/*.py
70 src/gallium/drivers/svga/svgadump/svga_dump.py
71 src/mapi/glapi/gen/*.py
73 src/mesa/main/get_*.py
74 src/util/format_srgb.py
76 src/intel/genxml/gen_pack_header.py
77 SHEBANG_OLD_PYTHON= /usr/bin/env[[:space:]]python2
79 /bin/env[[:space:]]python
80 SOL_FUNCTIONS= dirfd:src/util/disk_cache.c
81 asprintf:src/util/anon_file.c
82 asprintf:src/mesa/drivers/dri/common/megadriver_stub.c
83 asprintf:src/loader/loader.c
84 asprintf:src/egl/main/eglcurrent.c
85 asprintf:src/util/u_string.h
86 asprintf:src/amd/common/ac_rtld.c
87 strnlen:src/util/ralloc.c
88 strnlen:src/mesa/main/errors.c
89 strndup:src/loader/loader.c
90 strndup:src/egl/drivers/dri2/platform_x11.c
91 strndup:src/gallium/drivers/r600/evergreen_compute.c
92 strndup:src/gallium/drivers/radeonsi/si_debug.c
94 CONFIGURE_ENV= ax_cv_check_cflags___Wno_initializer_overrides=no
96 INSTALL_TARGET= install-strip
97 INSTALL_REQ_TOOLCHAIN= yes
99 CFLAGS= -Wno-pointer-sign
100 VAR_OPSYS[sunos]= CPPFLAGS=-D__EXTENSIONS__=1
101 CPPFLAGS=-Wno-unused-function
102 CXXFLAGS=-Drestrict=__restrict__
103 CFLAGS=-D_POSIX_PTHREAD_SEMANTICS
104 CFLAGS=-DF_DUPFD_CLOEXEC=F_DUPFD
105 CFLAGS=-Wno-incompatible-pointer-types
108 MAKEFILE_LINE=MESON_ARGS+=-Dshader-cache=false
110 [ARM_DRIVERS].DESCRIPTION= Build drivers for aarch64 architecture
111 [ARM_DRIVERS].MAKEFILE_ON= GALLIUM_DRIVERS+=FREEDRENO
114 [X86_DRIVERS].DESCRIPTION= Build drivers for i386 and x86_64 architectures
115 [X86_DRIVERS].MAKEFILE_ON= DRI_DRIVERS+=R100
119 GALLIUM_DRIVERS+=R300
120 GALLIUM_DRIVERS+=SVGA
121 VULKAN_DRIVERS+={{VULKAN_DRIVERS_X86}}
123 [WAYLAND].DESCRIPTION= Build Vulkan drivers for Wayland platform
124 [WAYLAND].BUILDRUN_DEPENDS_ON= wayland:primary:standard
125 [WAYLAND].BUILD_DEPENDS_ON= wayland-protocols:single:standard
126 python-Mako:single:python_default
127 [WAYLAND].MAKEFILE_ON= WAYPLAT=,wayland
128 VULKAN_DRIVERS+=INTEL
129 VULKAN_DRIVERS_X86+=RADEON
131 [LLVMPIPE].DESCRIPTION= Build LLVM-based drivers and libraries
132 [LLVMPIPE].BUILDRUN_DEPENDS_ON= llvm:single:standard
133 ocl-icd:primary:standard
134 [LLVMPIPE].BUILD_DEPENDS_ON= libclc:single:standard
135 opencl-headers:single:standard
136 [LLVMPIPE].MAKEFILE_OFF= MESON_ARGS+=-Dgallium-opencl=disabled
137 [LLVMPIPE].MAKEFILE_ON= GALLIUM_LLVM_DRIVERS+=R600
138 GALLIUM_LLVM_DRIVERS+=RADEONSI
139 GALLIUM_DRIVERS+={{GALLIUM_LLVM_DRIVERS}}
140 MESON_ARGS+=-Dllvm=true
141 MESON_ARGS+=-Dgallium-xvmc=enabled
142 MESON_ARGS+=-Dgallium-va=enabled
143 MESON_ARGS+=-Dgallium-opencl=icd
144 [LLVMPIPE].RUN_DEPENDS_ON= clang:dynlibs:standard
145 [LLVMPIPE].USES_ON= clang:keepcc
146 [LLVMPIPE].XORG_COMPONENTS_ON= xvmc
149 ${REINPLACE_CMD} -e 's|/etc/|${PREFIX}/etc/|g' \
150 ${WRKSRC}/src/util/xmlconfig.c
153 ${AWK} '/Copyright/,/DEALINGS/' ${WRKSRC}/include/GL/glext.h \
154 > ${WRKDIR}/LICENSE_KHRONOS
156 [FILE:1198:descriptions/desc.libs]
157 The Mesa project began as an open-source implementation of the OpenGL
158 specification - a system for rendering interactive 3D graphics.
160 Over the years the project has grown to implement more graphics APIs,
161 including OpenGL ES (versions 1, 2, 3), OpenCL, OpenMAX, VDPAU, VA API,
164 A variety of device drivers allows the Mesa libraries to be used in many
165 different environments ranging from software emulation to complete
166 hardware acceleration for modern GPUs.
168 Mesa ties into several other open-source projects: the Direct Rendering
169 Infrastructure and X.org to provide OpenGL support on Linux, FreeBSD
170 and other operating systems.
172 This package contains the Mesa OpenGL libraries for GLX and EGL clients.
173 These include libOSMesa, libEGL, libGL, and libglesv2 as well as utility
174 libraries libglapi and gbm. The OSMesa library is an Off-Screen version
175 of Mesa in order to do off-screen rendering in other packages like VTK.
176 Offscreen rendering is useful for a number of things, such as batch
177 processing, parallel processing, and remote processing.
179 This package also contains Mesa's libOpenCL implementation "Clover". It is
180 built upon GALLIUM and currently only supports Radeon GPUs.
183 [FILE:162:descriptions/desc.drivers]
184 This package contains the Mesa OpenGL libraries for GLX and EGL clients.
185 These include libEGL, libGL, and libglesv2 as well as utlity libraries
190 c4aaf1bf974217ed825e1c536de6ab72a4e266d44bcf69fc4ec499039f99e5c4 15755212 mesa-21.2.2.tar.xz
193 [FILE:981:manifests/plist.libs]
194 %%LLVMPIPE-ON%%etc/OpenCL/vendors/mesa.icd
198 libMesaOpenCL.so.1.0.0
199 %%LLVMPIPE-ON%%lib/gallium-pipe/
233 include/KHR/khrplatform.h
255 libxatracker.so.2.5.0
265 [FILE:837:manifests/plist.drivers]
266 %%ARM_DRIVERS-ON%%lib/dri/
275 %%LLVMPIPE-ON%%lib/dri/
279 radeonsi_drv_video.so
280 %%LLVMPIPE-ON%%lib/vdpau/
284 libvdpau_r600.so.1.0.0
286 libvdpau_radeonsi.so.1
287 libvdpau_radeonsi.so.1.0
288 libvdpau_radeonsi.so.1.0.0
289 %%X86_DRIVERS-ON%%lib/dri/
297 %%X86_DRIVERS-ON%%lib/vdpau/
301 libvdpau_r300.so.1.0.0
302 include/GL/internal/dri_interface.h
307 share/drirc.d/00-mesa-defaults.conf
310 [FILE:511:patches/patch-include_GL_internal_dri__interface.h]
311 GCC on 9.x doesn't allow types to be overwritten, these types are defined
312 in drm.h also, which causes build issues in xorg-server.
314 --- include/GL/internal/dri_interface.h.orig 2021-09-21 16:54:05 UTC
315 +++ include/GL/internal/dri_interface.h
317 #ifndef DRI_INTERFACE_H
318 #define DRI_INTERFACE_H
323 -typedef unsigned int drm_context_t;
324 -typedef unsigned int drm_drawable_t;
325 -typedef struct drm_clip_rect drm_clip_rect_t;
332 [FILE:227:patches/patch-src_amd_llvm_ac__llvm__build.h]
333 --- src/amd/llvm/ac_llvm_build.h.orig 2021-09-21 16:54:05 UTC
334 +++ src/amd/llvm/ac_llvm_build.h
348 [FILE:505:patches/patch-src_amd_vulkan_radv__device.c]
349 - Define CLOCK_MONOTONIC_RAW if missing
351 --- src/amd/vulkan/radv_device.c.orig 2021-09-21 16:54:05 UTC
352 +++ src/amd/vulkan/radv_device.c
353 @@ -106,6 +106,14 @@ radv_get_absolute_timeout(uint64_t timeo
354 return current_time + timeout;
357 +#ifndef CLOCK_MONOTONIC_RAW
358 +# ifdef CLOCK_MONOTONIC_FAST
359 +# define CLOCK_MONOTONIC_RAW CLOCK_MONOTONIC_FAST
361 +# define CLOCK_MONOTONIC_RAW CLOCK_MONOTONIC
366 radv_device_get_cache_uuid(enum radeon_family family, void *uuid)
370 [FILE:354:patches/patch-src_amd_vulkan_winsys_amdgpu_radv__amdgpu__cs.c]
371 - Define ETIME if missing
373 --- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c.orig 2021-09-21 16:54:05 UTC
374 +++ src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
377 enum { VIRTUAL_BUFFER_HASH_TABLE_SIZE = 1024 };
380 +#define ETIME ETIMEDOUT
383 struct radv_amdgpu_ib {
384 struct radeon_winsys_bo *bo;
388 [FILE:555:patches/patch-src_egl_drivers_dri2_egl__dri2.c]
389 --- src/egl/drivers/dri2/egl_dri2.c.orig 2021-09-21 16:54:06 UTC
390 +++ src/egl/drivers/dri2/egl_dri2.c
391 @@ -989,11 +989,13 @@ dri2_setup_screen(_EGLDisplay *disp)
392 disp->Extensions.KHR_gl_texture_3D_image = EGL_TRUE;
395 +# ifndef __DragonFly__
396 if (dri2_dpy->image->base.version >= 8 &&
397 dri2_dpy->image->createImageFromDmaBufs) {
398 disp->Extensions.EXT_image_dma_buf_import = EGL_TRUE;
399 disp->Extensions.EXT_image_dma_buf_import_modifiers = EGL_TRUE;
407 [FILE:790:patches/patch-src_egl_drivers_dri2_platform__wayland.c]
408 --- src/egl/drivers/dri2/platform_wayland.c.orig 2021-09-21 16:54:06 UTC
409 +++ src/egl/drivers/dri2/platform_wayland.c
410 @@ -1330,6 +1330,7 @@ registry_handle_global_drm(void *data, s
412 wl_registry_bind(registry, name, &wl_drm_interface, MIN2(version, 2));
413 wl_drm_add_listener(dri2_dpy->wl_drm, &drm_listener, dri2_dpy);
414 +#ifndef __DragonFly__
415 } else if (strcmp(interface, "zwp_linux_dmabuf_v1") == 0 && version >= 3) {
416 dri2_dpy->wl_dmabuf =
417 wl_registry_bind(registry, name, &zwp_linux_dmabuf_v1_interface,
418 @@ -1337,6 +1338,7 @@ registry_handle_global_drm(void *data, s
419 zwp_linux_dmabuf_v1_add_listener(dri2_dpy->wl_dmabuf, &dmabuf_listener,
428 [FILE:352:patches/patch-src_egl_main_eglglobals.c]
429 --- src/egl/main/eglglobals.c.orig 2021-09-21 16:54:06 UTC
430 +++ src/egl/main/eglglobals.c
431 @@ -138,7 +138,7 @@ _eglPointerIsDereferencable(void *p)
433 uintptr_t addr = (uintptr_t) p;
434 const long page_size = getpagesize();
436 +#if defined(HAVE_MINCORE) && !defined(__DragonFly__)
437 unsigned char valid = 0;
442 [FILE:3256:patches/patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c]
443 Revert the following commit.
445 FreeBSD and DragonFly don't have the required render nodes.
449 From 69a1b9959e59653da262185c4e2cf57d24939b19 Mon Sep 17 00:00:00 2001
450 From: Emil Velikov <emil.l.velikov@gmail.com>
451 Date: Mon, 29 Jun 2015 12:36:45 +0100
452 Subject: pipe-loader: drop support for non-render node devices
454 Render nodes have been around for quite some time. Removing support via
455 the master/primary node allows us to clean up the conditional
456 compilation and simplify the build greatly.
458 For example currently we the pipe-loader, which explicitly links against
459 xcb and friends (for X auth) if found at compile-time. That
460 would cause problems as one will be forced to use X/xcb, even if it's a
461 headless system that is used for opencl.
463 v2: Clarify the linking topic in the commit message.
465 Cc: Tom Stellard <thomas.stellard@amd.com>
466 Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
467 Reviewed-by: Francisco Jerez <currojerez@riseup.net>
470 --- src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c.orig 2021-09-21 16:54:06 UTC
471 +++ src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
472 @@ -198,6 +198,14 @@ pipe_loader_drm_probe_fd(struct pipe_loa
476 +open_drm_minor(int minor)
478 + char path[PATH_MAX];
479 + snprintf(path, sizeof(path), DRM_DEV_NAME, DRM_DIR_NAME, minor);
480 + return open(path, O_RDWR, 0);
484 open_drm_render_node_minor(int minor)
487 @@ -209,8 +217,15 @@ open_drm_render_node_minor(int minor)
489 pipe_loader_drm_probe(struct pipe_loader_device **devs, int ndev)
492 + int i, k, fd, num_render_node_devs;
496 + unsigned vendor_id;
498 + } render_node_devs[DRM_RENDER_NODE_MAX_NODES];
500 + /* Look for render nodes first */
501 for (i = DRM_RENDER_NODE_MIN_MINOR, j = 0;
502 i <= DRM_RENDER_NODE_MAX_MINOR; i++) {
503 struct pipe_loader_device *dev;
504 @@ -224,6 +239,9 @@ pipe_loader_drm_probe(struct pipe_loader
508 + render_node_devs[j].vendor_id = dev->u.pci.vendor_id;
509 + render_node_devs[j].chip_id = dev->u.pci.chip_id;
514 @@ -233,6 +251,46 @@ pipe_loader_drm_probe(struct pipe_loader
518 + num_render_node_devs = j;
520 + /* Next look for drm devices. */
521 + for (i = 0; i < DRM_MAX_MINOR; i++) {
522 + struct pipe_loader_device *dev;
523 + boolean duplicate = FALSE;
524 + fd = open_drm_minor(i);
528 + if (!pipe_loader_drm_probe_fd(&dev, fd)) {
533 + /* Check to make sure we aren't already accessing this device via
536 + for (k = 0; k < num_render_node_devs; k++) {
537 + if (dev->u.pci.vendor_id == render_node_devs[k].vendor_id &&
538 + dev->u.pci.chip_id == render_node_devs[k].chip_id) {
540 + dev->ops->release(&dev);
552 + dev->ops->release(&dev);
563 [FILE:271:patches/patch-src_gallium_auxiliary_rbug_rbug__texture.c]
564 --- src/gallium/auxiliary/rbug/rbug_texture.c.orig 2021-09-21 16:54:06 UTC
565 +++ src/gallium/auxiliary/rbug/rbug_texture.c
568 #include "c99_alloca.h"
574 #include "rbug_internal.h"
575 #include "rbug_texture.h"
579 [FILE:357:patches/patch-src_gallium_auxiliary_renderonly_renderonly.c]
580 --- src/gallium/auxiliary/renderonly/renderonly.c.orig 2021-09-21 16:54:06 UTC
581 +++ src/gallium/auxiliary/renderonly/renderonly.c
583 #include "util/u_inlines.h"
584 #include "util/u_memory.h"
591 renderonly_scanout_destroy(struct renderonly_scanout *scanout,
592 struct renderonly *ro)
595 [FILE:544:patches/patch-src_gallium_drivers_radeonsi_si__state__shaders.c]
596 --- src/gallium/drivers/radeonsi/si_state_shaders.c.orig 2021-09-21 16:54:06 UTC
597 +++ src/gallium/drivers/radeonsi/si_state_shaders.c
598 @@ -2138,6 +2138,7 @@ static void si_build_shader_variant(stru
603 if (shader->compiler_ctx_state.is_debug_context) {
604 FILE *f = open_memstream(&shader->shader_log, &shader->shader_log_size);
606 @@ -2145,6 +2146,7 @@ static void si_build_shader_variant(stru
612 si_shader_init_pm4_state(sscreen, shader);
616 [FILE:360:patches/patch-src_gallium_drivers_vc4_vc4__bufmgr.c]
617 # define ETIME as ETIMEOUT same as in intel driver
619 --- src/gallium/drivers/vc4/vc4_bufmgr.c.orig 2021-09-21 16:54:06 UTC
620 +++ src/gallium/drivers/vc4/vc4_bufmgr.c
624 #include <xf86drmMode.h>
626 +#define ETIME ETIMEDOUT
629 #include "util/u_hash_table.h"
630 #include "util/u_memory.h"
633 [FILE:271:patches/patch-src_gallium_winsys_amdgpu_drm_amdgpu__cs.c]
634 --- src/gallium/winsys/amdgpu/drm/amdgpu_cs.c.orig 2021-09-21 16:54:06 UTC
635 +++ src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
638 #include "amd/common/sid.h"
646 static struct pipe_fence_handle *
649 [FILE:575:patches/patch-src_glx_glxext.c]
650 # work-around for https://bugs.freedesktop.org/show_bug.cgi?id=100627
652 --- src/glx/glxext.c.orig 2021-09-21 16:54:06 UTC
654 @@ -933,6 +933,9 @@ __glXInitialize(Display * dpy)
655 #if defined(GLX_USE_DRM)
656 if (glx_direct && glx_accel) {
657 #if defined(HAVE_DRI3)
658 +#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && !defined(__DRM_NEXT__)
659 + if (env_var_as_boolean("LIBGL_DRI3_ENABLE", false))
661 if (!env_var_as_boolean("LIBGL_DRI3_DISABLE", false))
662 dpyPriv->dri3Display = dri3_create_display(dpy);
663 #endif /* HAVE_DRI3 */
666 [FILE:318:patches/patch-src_glx_meson.build]
667 --- src/glx/meson.build.orig 2021-09-21 16:54:06 UTC
668 +++ src/glx/meson.build
669 @@ -135,7 +135,7 @@ libglx = static_library(
673 - idep_mesautil, idep_xmlconfig,
674 + idep_xmlconfig, idep_mesautil,
675 dep_libdrm, dep_dri2proto, dep_glproto, dep_x11, dep_glvnd,
680 [FILE:1012:patches/patch-src_intel_common_intel__measure.c]
681 --- src/intel/common/intel_measure.c.orig 2021-09-21 16:54:06 UTC
682 +++ src/intel/common/intel_measure.c
684 #include "util/macros.h"
685 #include "util/u_debug.h"
689 +mkfifoat(int fd, const char *path, mode_t mode)
691 + int er, curfd = -1, newfd = -1;
693 + /* Get our current directory then switch to the given one. */
695 + if (fd != AT_FDCWD) {
696 + if ((curfd = open(".", O_RDONLY, 0)) == -1)
698 + if (fchdir(fd) == -1)
702 + if ((newfd = mkfifo(path, mode)) == -1)
705 + /* This leaves the fifo if it fails. */
707 + if (curfd != -1 && fchdir(curfd) == -1)
714 + /* Ignore errors in close(2). */
728 static const struct debug_control debug_control[] = {
729 { "draw", INTEL_MEASURE_DRAW },
732 [FILE:1014:patches/patch-src_intel_compiler_brw__eu__validate.c]
733 --- src/intel/compiler/brw_eu_validate.c.orig 2021-09-21 16:54:06 UTC
734 +++ src/intel/compiler/brw_eu_validate.c
743 +memmem(const void *l, size_t l_len, const void *s, size_t s_len)
746 + const char *cl = (const char *)l;
747 + const char *cs = (const char *)s;
749 + /* we need something to compare */
750 + if (l_len == 0 || s_len == 0)
753 + /* "s" must be smaller or equal to "l" */
757 + /* special case where s_len == 1 */
759 + return memchr(l, (int)*cs, l_len);
761 + /* the last position where its possible to find "s" in "l" */
762 + last = (char *)cl + l_len - s_len;
764 + for (cur = (char *)cl; cur <= last; cur++)
765 + if (cur[0] == cs[0] && memcmp(cur, cs, s_len) == 0)
772 /* We're going to do lots of string concatenation, so this should help. */
777 [FILE:954:patches/patch-src_intel_compiler_brw__fs__bank__conflicts.cpp]
778 --- src/intel/compiler/brw_fs_bank_conflicts.cpp.orig 2021-09-21 16:54:06 UTC
779 +++ src/intel/compiler/brw_fs_bank_conflicts.cpp
780 @@ -309,8 +309,13 @@ namespace {
781 const unsigned align = MAX2(sizeof(void *), __alignof__(vector_type));
782 const unsigned size = DIV_ROUND_UP(n, vector_width) * sizeof(vector_type);
785 + p = memalign(align, size);
786 + if (p == NULL) return NULL;
788 if (posix_memalign(&p, align, size))
792 return reinterpret_cast<vector_type *>(p);
794 @@ -737,7 +742,7 @@ namespace {
795 const weight_vector_type &conflicts)
797 const unsigned m = DIV_ROUND_UP(conflicts.size, vector_width);
798 - vector_type s_p = {}, s_n = {};
799 + vector_type s_p = {0}, s_n = {0};
801 for (unsigned r = 0; r < m; r++) {
802 s_p = adds(s_p, mask(bank_mask_p.v[r], conflicts.v[r]));
805 [FILE:234:patches/patch-src_intel_isl_isl.h]
806 --- src/intel/isl/isl.h.orig 2021-09-21 16:54:06 UTC
807 +++ src/intel/isl/isl.h
809 #include "util/format/u_format.h"
813 +# define restrict __restrict__
820 [FILE:302:patches/patch-src_intel_tools_aubinator__error__decode.c]
821 # expose getline in FreeBSD's stdio.h
823 --- src/intel/tools/aubinator_error_decode.c.orig 2021-09-21 16:54:06 UTC
824 +++ src/intel/tools/aubinator_error_decode.c
830 +#define _WITH_GETLINE
837 [FILE:238:patches/patch-src_intel_tools_error2aub.c]
838 --- src/intel/tools/error2aub.c.orig 2021-09-21 16:54:06 UTC
839 +++ src/intel/tools/error2aub.c
845 +#define _WITH_GETLINE
849 #include <inttypes.h>
852 [FILE:936:patches/patch-src_mesa_drivers_dri_i965_brw__bufmgr.c]
853 --- src/mesa/drivers/dri/i965/brw_bufmgr.c.orig 2021-09-21 16:54:06 UTC
854 +++ src/mesa/drivers/dri/i965/brw_bufmgr.c
863 /* VALGRIND_FREELIKE_BLOCK unfortunately does not actually undo the earlier
864 * VALGRIND_MALLOCLIKE_BLOCK but instead leaves vg convinced the memory is
865 * leaked. All because it does not call VG(cli_free) from its
866 @@ -1891,8 +1895,12 @@ brw_bufmgr_create(struct intel_device_in
867 bufmgr->initial_kflags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
869 /* Allocate VMA in userspace if we have softpin and full PPGTT. */
870 +#ifdef __DragonFly__
873 if (gem_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN) > 0 &&
874 gem_param(fd, I915_PARAM_HAS_ALIASING_PPGTT) > 1) {
876 bufmgr->initial_kflags |= EXEC_OBJECT_PINNED;
878 util_vma_heap_init(&bufmgr->vma_allocator[BRW_MEMZONE_LOW_4G],
881 [FILE:712:patches/patch-src_mesa_drivers_dri_i965_brw__disk__cache.c]
882 --- src/mesa/drivers/dri/i965/brw_disk_cache.c.orig 2021-09-21 16:54:06 UTC
883 +++ src/mesa/drivers/dri/i965/brw_disk_cache.c
884 @@ -394,6 +394,7 @@ brw_disk_cache_init(struct brw_screen *s
885 if (INTEL_DEBUG & DEBUG_DISK_CACHE_DISABLE_MASK)
888 +# ifdef HAVE_DL_ITERATE_PHDR
889 /* array length: print length + null char + 1 extra to verify it is unused */
891 ASSERTED int len = snprintf(renderer, sizeof(renderer), "i965_%04x",
892 @@ -413,5 +414,6 @@ brw_disk_cache_init(struct brw_screen *s
893 const uint64_t driver_flags =
894 brw_get_compiler_config_value(screen->compiler);
895 screen->disk_cache = disk_cache_create(renderer, timestamp, driver_flags);
901 [FILE:851:patches/patch-src_mesa_drivers_dri_i965_brw__program__binary.c]
902 --- src/mesa/drivers/dri/i965/brw_program_binary.c.orig 2021-09-21 16:54:06 UTC
903 +++ src/mesa/drivers/dri/i965/brw_program_binary.c
904 @@ -36,9 +36,11 @@ static uint8_t driver_sha1[20];
906 brw_program_binary_init(unsigned device_id)
908 +#ifdef HAVE_DL_ITERATE_PHDR
909 const struct build_id_note *note =
910 build_id_find_nhdr_for_addr(brw_program_binary_init);
915 * With Mesa's megadrivers, taking the sha1 of i965_dri.so may not be
916 @@ -52,7 +54,9 @@ brw_program_binary_init(unsigned device_
917 int len = snprintf(renderer, sizeof(renderer), "i965_%04x", device_id);
918 assert(len == sizeof(renderer) - 1);
919 _mesa_sha1_update(&ctx, renderer, len);
920 +#ifdef HAVE_DL_ITERATE_PHDR
921 _mesa_sha1_update(&ctx, build_id_data(note), build_id_length(note));
923 _mesa_sha1_final(&ctx, driver_sha1);
928 [FILE:328:patches/patch-src_util_build__id.c]
929 # Elf_ doesn't exist, use Elf32_ or Elf64_
931 --- src/util/build_id.c.orig 2021-09-21 16:54:06 UTC
932 +++ src/util/build_id.c
937 -#define ElfW(type) Elf_##type
939 +#define ElfW(type) Elf64_##type
941 +#define ElfW(type) Elf32_##type
945 struct build_id_note {
948 [FILE:422:patches/patch-src_util_compiler.h]
949 --- src/util/compiler.h.orig 2021-09-21 16:54:06 UTC
950 +++ src/util/compiler.h
952 #if defined(__linux__)
953 #include <byteswap.h>
954 #define CPU_TO_LE32( x ) bswap_32( x )
955 +#elif defined(__FreeBSD__) || defined(__DragonFly__)
956 +#include <sys/endian.h>
957 +#define CPU_TO_LE32( x ) bswap32( x )
958 #elif defined(__APPLE__)
959 #include <CoreFoundation/CFByteOrder.h>
960 #define CPU_TO_LE32( x ) CFSwapInt32HostToLittle( x )
963 [FILE:1512:patches/patch-src_util_futex.h]
964 - Implement futex_wake() and futex_wait() via _umtx_op()
966 --- src/util/futex.h.orig 2021-09-21 16:54:06 UTC
972 +#if defined(__FreeBSD__)
974 +# if __FreeBSD__ < 11
975 +# include <machine/atomic.h>
977 +#include <sys/umtx.h>
979 #include <linux/futex.h>
980 #include <sys/syscall.h>
982 #include <sys/time.h>
984 +#if defined(__FreeBSD__)
985 +static inline int futex_wake(uint32_t *addr, int count)
987 + return _umtx_op(addr, UMTX_OP_WAKE, (uint32_t)count, NULL, NULL) == -1 ? errno : 0;
990 +static inline int futex_wait(uint32_t *addr, int32_t value, struct timespec *timeout)
992 + void *uaddr = NULL, *uaddr2 = NULL;
993 + if (timeout != NULL) {
994 + const struct _umtx_time tmo = { ._timeout = *timeout, ._flags = UMTX_ABSTIME, ._clockid = CLOCK_MONOTONIC };
995 + uaddr = (void *)(uintptr_t)sizeof(tmo);
996 + uaddr2 = (void *)&tmo;
998 + return _umtx_op(addr, UMTX_OP_WAIT_UINT, (uint32_t)value, uaddr, uaddr2) == -1 ? errno : 0;
1001 static inline long sys_futex(void *addr1, int op, int val1, const struct timespec *timeout, void *addr2, int val3)
1003 return syscall(SYS_futex, addr1, op, val1, timeout, addr2, val3);
1004 @@ -51,6 +76,7 @@ static inline int futex_wait(uint32_t *a
1005 return sys_futex(addr, FUTEX_WAIT_BITSET, value, timeout, NULL,
1006 FUTEX_BITSET_MATCH_ANY);
1010 #elif defined(__FreeBSD__)
1011 #define UTIL_FUTEX_SUPPORTED 1
1014 [FILE:239:patches/patch-src_util_libsync.h]
1015 --- src/util/libsync.h.orig 2021-09-21 16:54:06 UTC
1016 +++ src/util/libsync.h
1018 #include <sys/poll.h>
1022 +#include <sys/ioccom.h>
1025 #if defined(__cplusplus)
1030 [FILE:310:patches/patch-src_util_memstream.c]
1031 --- src/util/memstream.c.orig 2021-09-21 16:54:06 UTC
1032 +++ src/util/memstream.c
1033 @@ -51,7 +51,7 @@ u_memstream_open(struct u_memstream *mem
1037 -#elif defined(__APPLE__)
1038 +#elif defined(__APPLE__) || defined(__sun)
1041 FILE *const f = open_memstream(bufp, sizep);
1044 [FILE:230:patches/patch-src_util_os__file.c]
1045 --- src/util/os_file.c.orig 2021-09-21 16:54:06 UTC
1046 +++ src/util/os_file.c
1052 +#define ENODATA ENOATTR
1056 os_file_create_unique(const char *filename, int filemode)
1059 [FILE:592:patches/patch-src_util_os__memory__aligned.h]
1060 --- src/util/os_memory_aligned.h.orig 2021-09-21 16:54:06 UTC
1061 +++ src/util/os_memory_aligned.h
1062 @@ -53,11 +53,16 @@ add_overflow_size_t(size_t a, size_t b,
1063 static inline void *
1064 os_malloc_aligned(size_t size, size_t alignment)
1067 + alignment = (alignment + sizeof(void*) - 1) & ~(sizeof(void*) - 1);
1068 + return memalign(alignment, size);
1071 alignment = (alignment + sizeof(void*) - 1) & ~(sizeof(void*) - 1);
1072 if(posix_memalign(&ptr, alignment, size) != 0)
1078 #define os_free_aligned(_ptr) free(_ptr)
1081 [FILE:853:patches/patch-src_util_strndup.h]
1082 --- src/util/strndup.h.orig 2021-09-21 16:54:06 UTC
1083 +++ src/util/strndup.h
1088 -#if defined(_WIN32)
1089 +#if defined(_WIN32) || defined(__sun)
1091 #include <stdlib.h> // size_t
1093 @@ -34,6 +34,7 @@ extern "C" {
1096 static inline char *
1097 +#if defined(_WIN32)
1098 strndup(const char *str, size_t max)
1101 @@ -50,6 +51,22 @@ strndup(const char *str, size_t max)
1102 memcpy(ptr, str, n);
1105 +#else // version without strnlen
1106 +strndup(const char *str, size_t n)
1111 + len = strlen(str);
1113 + return (strdup(str));
1114 + if ((copy = (char *)malloc(len + 1)) == NULL)
1116 + memcpy(copy, str, len);
1126 [FILE:430:patches/patch-src_util_u__atomic.h]
1127 --- src/util/u_atomic.h.orig 2021-09-21 16:54:06 UTC
1128 +++ src/util/u_atomic.h
1130 * locally coded assembly, compiler intrinsic or ultimately a
1131 * mutex-based implementation.
1134 -#define PIPE_ATOMIC_OS_SOLARIS
1135 -#elif defined(_MSC_VER)
1136 -#define PIPE_ATOMIC_MSVC_INTRINSIC
1137 -#elif defined(__GNUC__)
1138 +#if defined(__GNUC__)
1139 #define PIPE_ATOMIC_GCC_INTRINSIC
1141 #error "Unsupported platform"
1144 [FILE:188:patches/patch-src_util_u__math.h]
1145 --- src/util/u_math.h.orig 2021-09-21 16:54:06 UTC
1146 +++ src/util/u_math.h
1154 #define M_SQRT2 1.41421356237309504880
1157 [FILE:1523:patches/patch-src_util_u__thread.h]
1158 --- src/util/u_thread.h.orig 2021-09-21 16:54:06 UTC
1159 +++ src/util/u_thread.h
1162 #ifdef HAVE_PTHREAD_NP_H
1163 #include <pthread_np.h>
1168 @@ -129,7 +130,7 @@ static inline thrd_t u_thread_create(int
1169 static inline void u_thread_setname( const char *name )
1171 #if defined(HAVE_PTHREAD)
1172 -#if DETECT_OS_LINUX || DETECT_OS_CYGWIN || DETECT_OS_SOLARIS
1173 +#if DETECT_OS_LINUX || DETECT_OS_CYGWIN
1174 int ret = pthread_setname_np(pthread_self(), name);
1175 if (ret == ERANGE) {
1177 @@ -138,7 +139,7 @@ static inline void u_thread_setname( con
1179 pthread_setname_np(pthread_self(), buf);
1181 -#elif DETECT_OS_FREEBSD || DETECT_OS_OPENBSD
1182 +#elif DETECT_OS_FREEBSD || DETECT_OS_OPENBSD || DETECT_OS_DRAGONFLY
1183 pthread_set_name_np(pthread_self(), name);
1184 #elif DETECT_OS_NETBSD
1185 pthread_setname_np(pthread_self(), "%s", (void *)name);
1186 @@ -146,8 +147,6 @@ static inline void u_thread_setname( con
1187 pthread_setname_np(name);
1188 #elif DETECT_OS_HAIKU
1189 rename_thread(find_thread(NULL), name);
1191 -#warning Not sure how to call pthread_setname_np
1195 @@ -242,7 +241,7 @@ util_set_current_thread_affinity(const u
1196 static inline int64_t
1197 util_thread_get_time_nano(thrd_t thread)
1199 -#if defined(HAVE_PTHREAD) && !defined(__APPLE__) && !defined(__HAIKU__)
1200 +#if defined(HAVE_PTHREAD) && !defined(__APPLE__) && !defined(__HAIKU__) && !defined(__sun)
1206 [FILE:25:files/special.mk]
1207 GALLIUM_DRIVERS+= SWRAST
1210 [FILE:911:sunos/patch-src_gallium_targets_dri_meson.build]
1211 --- src/gallium/targets/dri/meson.build.orig 2020-12-31 03:59:58 UTC
1212 +++ src/gallium/targets/dri/meson.build
1213 @@ -45,11 +45,12 @@ libgallium_dri = shared_library(
1214 inc_gallium_winsys, include_directories('../../frontends/dri'),
1216 gnu_symbol_visibility : 'hidden',
1217 - link_args : [ld_args_build_id, ld_args_gc_sections, gallium_dri_ld_args],
1218 + link_args : [ld_args_gc_sections, gallium_dri_ld_args],
1219 link_depends : gallium_dri_link_depends,
1220 + link_whole : [libdri, libdricommon, libgallium, libr300, _libnir, libglsl, libglcpp], # libr600, libamd_common
1222 - libdri, libmesa_gallium, libdricommon, libmegadriver_stub, libgalliumvl,
1223 - libgallium, libglapi, libpipe_loader_static, libws_null, libwsw, libswdri,
1224 + libmesa_gallium, libmegadriver_stub, libgalliumvl,
1225 + libglapi, libpipe_loader_static, libws_null, libwsw, libswdri,
1231 [FILE:424:sunos/patch-src_gallium_targets_opencl_meson.build]
1232 --- src/gallium/targets/opencl/meson.build.orig 2021-01-29 18:33:19 UTC
1233 +++ src/gallium/targets/opencl/meson.build
1234 @@ -90,7 +90,7 @@ libopencl = shared_library(
1236 link_args : [ld_args_gc_sections, opencl_link_args],
1237 link_depends : opencl_link_deps,
1238 - link_whole : libclover,
1239 + link_whole : [libclover,libmesa_format],
1240 link_with : [libpipe_loader_dynamic, libgallium],
1245 [FILE:604:sunos/patch-src_gallium_targets_osmesa_meson.build]
1246 --- src/gallium/targets/osmesa/meson.build.orig 2020-12-31 03:59:58 UTC
1247 +++ src/gallium/targets/osmesa/meson.build
1248 @@ -49,9 +49,9 @@ libosmesa = shared_library(
1249 inc_gallium_drivers,
1251 link_depends : osmesa_link_deps,
1252 - link_whole : [libosmesa_st, libglapi_static],
1253 + link_whole : [libosmesa_st, libglapi_static, libsoftpipe, libgallium, _libnir, libglsl, libglcpp],
1255 - libmesa_gallium, libgallium, libws_null, osmesa_link_with,
1256 + libmesa_gallium, libws_null, osmesa_link_with,
1259 dep_ws2_32, dep_selinux, dep_thread, dep_clock, dep_unwind,
1262 [FILE:2062:sunos/patch-src_gallium_targets_pipe-loader_meson.build]
1263 --- src/gallium/targets/pipe-loader/meson.build.orig 2021-01-29 18:33:19 UTC
1264 +++ src/gallium/targets/pipe-loader/meson.build
1265 @@ -57,16 +57,16 @@ if with_gallium_v3d
1269 - [with_gallium_i915, 'i915', driver_i915, []],
1270 - [with_gallium_iris, 'iris', [driver_iris, idep_xmlconfig], []],
1271 - [with_gallium_nouveau, 'nouveau', driver_nouveau, []],
1272 - [with_gallium_r300, 'r300', driver_r300, []],
1273 - [with_gallium_r600, 'r600', driver_r600, []],
1274 - [with_gallium_radeonsi, 'radeonsi', [driver_radeonsi, idep_xmlconfig], []],
1275 - [with_gallium_freedreno, 'msm', driver_freedreno, []],
1276 - [with_gallium_kmsro, 'kmsro', _kmsro_targets, []],
1277 - [with_gallium_svga, 'vmwgfx', driver_svga, []],
1278 - [with_gallium_softpipe, 'swrast', [driver_swrast, driver_swr], [libwsw, libws_null]],
1279 + [with_gallium_i915, 'i915', driver_i915, [], []],
1280 + [with_gallium_iris, 'iris', [driver_iris, idep_xmlconfig], [], []],
1281 + [with_gallium_nouveau, 'nouveau', driver_nouveau, [], []],
1282 + [with_gallium_r300, 'r300', driver_r300, [], [libr300,libradeonwinsys,libmesa_format]],
1283 + [with_gallium_r600, 'r600', driver_r600, [], [libr600,libradeonwinsys,libmesa_format,libgalliumvl]],
1284 + [with_gallium_radeonsi, 'radeonsi', [driver_radeonsi], [], [libradeonsi,libradeonwinsys,libamd_common,libamd_common_llvm,libmesa_format,_libxmlconfig,libgalliumvl]],
1285 + [with_gallium_freedreno, 'msm', driver_freedreno, [], []],
1286 + [with_gallium_kmsro, 'kmsro', _kmsro_targets, [], []],
1287 + [with_gallium_svga, 'vmwgfx', driver_svga, [], [libsvga,libsvgadrm,libmesa_format]],
1288 + [with_gallium_softpipe, 'swrast', [driver_swrast, driver_swr], [libwsw, libws_null], [libllvmpipe,libmesa_format,libsoftpipe]],
1291 foreach x : pipe_loaders
1292 @@ -80,6 +80,7 @@ foreach x : pipe_loaders
1293 link_args : pipe_loader_link_args,
1294 link_depends : pipe_loader_link_deps,
1295 include_directories : pipe_loader_incs,
1296 + link_whole : [x[4]],
1297 link_with : [pipe_loader_link_with, x[3]],
1298 dependencies : [idep_mesautil, idep_nir, dep_thread, x[2]],
1302 [FILE:838:sunos/patch-src_gallium_targets_va_meson.build]
1303 --- src/gallium/targets/va/meson.build.orig 2021-01-29 18:33:19 UTC
1304 +++ src/gallium/targets/va/meson.build
1305 @@ -39,13 +39,14 @@ libva_gallium = shared_library(
1306 include_directories : [
1307 inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_util, inc_gallium_winsys, inc_gallium_drivers,
1309 - link_whole : [libva_st],
1310 + link_whole : [libva_st, _libxmlconfig, libmesa_format, libloader, libpipe_loader_static],
1312 libgalliumvlwinsys, libgalliumvl, libgallium,
1313 - libpipe_loader_static, libws_null, libwsw, libswdri, libswkmsdri,
1314 + libws_null, libwsw, libswdri, libswkmsdri,
1315 + libr600, libradeonsi,
1318 - dep_libdrm, driver_r600, driver_radeonsi, driver_nouveau,
1319 + dep_libdrm, driver_nouveau,
1322 link_depends : va_link_depends,
1325 [FILE:784:sunos/patch-src_gallium_targets_vdpau_meson.build]
1326 --- src/gallium/targets/vdpau/meson.build.orig 2020-12-31 03:59:58 UTC
1327 +++ src/gallium/targets/vdpau/meson.build
1328 @@ -44,10 +44,10 @@ libvdpau_gallium = shared_library(
1329 include_directories : [
1330 inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_util, inc_gallium_winsys, inc_gallium_drivers,
1332 - link_whole : [libvdpau_st],
1333 + link_whole : [libvdpau_st, libr300, libradeonwinsys, libmesa_format, _libxmlconfig, libpipe_loader_static, libgallium, _libnir], # libr600, libradeonsi, libamd_common, libamd_common_llvm,
1335 libgalliumvlwinsys, libgalliumvl, libgallium,
1336 - libpipe_loader_static, libws_null, libwsw, libswdri, libswkmsdri,
1337 + libws_null, libwsw, libswdri, libswkmsdri,
1343 [FILE:670:sunos/patch-src_gallium_targets_xa_meson.build]
1344 --- src/gallium/targets/xa/meson.build.orig 2020-12-31 03:59:58 UTC
1345 +++ src/gallium/targets/xa/meson.build
1346 @@ -40,9 +40,9 @@ libxatracker = shared_library(
1347 include_directories : [
1348 inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_util, inc_gallium_winsys, inc_gallium_drivers,
1350 - link_whole : [libxa_st],
1351 + link_whole : [libxa_st, libsvga, libsvgadrm, libpipe_loader_static, libmesa_format, _libxmlconfig, libgallium, _libnir],
1353 - libgalliumvl_stub, libgallium, libpipe_loader_static,
1354 + libgalliumvl_stub, libgallium,
1355 libws_null, libwsw, libswdri, libswkmsdri,
1357 link_depends : xa_link_depends,
1360 [FILE:846:sunos/patch-src_gallium_targets_xvmc_meson.build]
1361 --- src/gallium/targets/xvmc/meson.build.orig 2021-01-29 18:33:19 UTC
1362 +++ src/gallium/targets/xvmc/meson.build
1363 @@ -39,12 +39,12 @@ libxvmc_gallium = shared_library(
1364 include_directories : [
1365 inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_util, inc_gallium_winsys, inc_gallium_drivers,
1367 - link_whole : [libxvmc_st],
1368 + link_whole : [libxvmc_st,libradeonwinsys,libr600,_libxmlconfig,libmesa_format,libpipe_loader_static],
1370 libgalliumvlwinsys, libgalliumvl, libgallium,
1371 libpipe_loader_static, libws_null, libwsw, libswdri, libswkmsdri,
1373 - dependencies : [idep_mesautil, driver_r600, driver_nouveau],
1374 + dependencies : [idep_mesautil, driver_nouveau],
1375 link_depends : xvmc_link_depends,
1376 # Will be deleted during installation, see install_megadrivers.py
1380 [FILE:510:sunos/patch-src_gbm_meson.build]
1381 --- src/gbm/meson.build.orig 2021-01-29 18:33:19 UTC
1382 +++ src/gbm/meson.build
1383 @@ -49,8 +49,8 @@ libgbm = shared_library(
1384 include_directories : incs_gbm,
1385 c_args : [args_gbm],
1386 link_args : [ld_args_gc_sections],
1387 - link_with : libloader,
1388 - dependencies : [deps_gbm, dep_dl, dep_thread, idep_mesautil, idep_xmlconfig],
1389 + link_with : [libloader, _libxmlconfig],
1390 + dependencies : [deps_gbm, dep_dl, dep_thread, idep_mesautil],
1391 gnu_symbol_visibility : 'hidden',
1396 [FILE:997:sunos/patch-src_mesa_drivers_dri_meson.build]
1397 --- src/mesa/drivers/dri/meson.build.orig 2020-12-31 03:59:58 UTC
1398 +++ src/mesa/drivers/dri/meson.build
1404 +_dri_drivers = [ _libnir, libmesa_classic, libmesa_common, libintel_compiler, libglcpp, libdricommon ]
1408 @@ -59,14 +59,13 @@ if _dri_drivers != []
1410 link_whole : _dri_drivers,
1412 - libmegadriver_stub, libdricommon, libglapi,
1414 + libmegadriver_stub, libglapi, libintel_dev,
1417 dep_selinux, dep_libdrm, dep_m, dep_thread, dep_dl,
1418 - idep_nir, idep_xmlconfig, idep_mesautil,
1419 + idep_xmlconfig, idep_mesautil,
1421 - link_args : [ld_args_build_id, ld_args_bsymbolic, ld_args_gc_sections],
1422 + link_args : [ld_args_build_id, ld_args_gc_sections],
1423 # Will be deleted during installation, see install_megadrivers.py
1425 install_dir : dri_drivers_path,