--- graphics/mesa-dri/Makefile.common (revision 470441) +++ graphics/mesa-dri/Makefile.common (working copy) @@ -14,7 +14,7 @@ MESAVERSION= ${MESABASEVERSION}${MESASUBVERSION:C/^(.)/.\1/} MESADISTVERSION=${MESABASEVERSION}${MESASUBVERSION:C/^(.)/-\1/} -MESABASEVERSION= 18.0.4 +MESABASEVERSION= 18.1.0 # if there is a subversion, don't include the '-' between 7.11-rc2. MESASUBVERSION= --- graphics/mesa-dri/distinfo (revision 470441) +++ graphics/mesa-dri/distinfo (working copy) @@ -1,3 +1,3 @@ -TIMESTAMP = 1526581104 -SHA256 (mesa-18.0.4.tar.xz) = 1f3bcfe7cef0a5c20dae2b41df5d7e0a985e06be0183fa4d43b6068fcba2920f -SIZE (mesa-18.0.4.tar.xz) = 10939356 +TIMESTAMP = 1526720775 +SHA256 (mesa-18.1.0.tar.xz) = c855c5b67ef993b7621f76d8b120769ec0415f1c3616eaff44ef7f7f300aceba +SIZE (mesa-18.1.0.tar.xz) = 11118776 --- graphics/mesa-dri/files/patch-src_gallium_auxiliary_util_u__cpu__detect.c (nonexistent) +++ graphics/mesa-dri/files/patch-src_gallium_auxiliary_util_u__cpu__detect.c (working copy) @@ -0,0 +1,70 @@ +Assume NEON if targeting NEON-capable hardware, detect otherwise +Don't rely on SIGILL but use sysctl to detect AltiVec on powerpc* + +--- src/gallium/auxiliary/util/u_cpu_detect.c.orig 2017-10-02 15:49:02 UTC ++++ src/gallium/auxiliary/util/u_cpu_detect.c +@@ -53,8 +53,9 @@ + #endif + + #if defined(PIPE_OS_FREEBSD) || defined(PIPE_OS_DRAGONFLY) +-#include ++#include + #include ++#include + #endif + + #if defined(PIPE_OS_LINUX) +@@ -112,13 +113,21 @@ sigill_handler(int sig) + static void + check_os_altivec_support(void) + { ++#if defined(PIPE_OS_APPLE) || defined(PIPE_OS_FREEBSD) || defined(PIPE_OS_NETBSD) || defined(PIPE_OS_OPENBSD) + #if defined(PIPE_OS_APPLE) + int sels[2] = {CTL_HW, HW_VECTORUNIT}; ++#elif defined(PIPE_OS_NETBSD) || defined(PIPE_OS_OPENBSD) ++ int sels[2] = {CTL_MACHDEP, CPU_ALTIVEC}; ++#endif + int has_vu = 0; + int len = sizeof (has_vu); + int err; + ++#if defined(PIPE_OS_FREEBSD) ++ err = sysctlbyname("hw.altivec", &has_vu, &len, NULL, 0 ); ++#else + err = sysctl(sels, 2, &has_vu, &len, NULL, 0); ++#endif + + if (err == 0) { + if (has_vu != 0) { +@@ -311,13 +320,30 @@ check_os_arm_support(void) + * used. Because of this we cannot use PIPE_OS_ANDROID here, but rather + * have a separate macro that only gets enabled from respective Android.mk. + */ +-#if defined(HAS_ANDROID_CPUFEATURES) ++#if defined(__ARM_NEON) ++ util_cpu_caps.has_neon = 1; ++#elif defined(HAS_ANDROID_CPUFEATURES) + AndroidCpuFamily cpu_family = android_getCpuFamily(); + uint64_t cpu_features = android_getCpuFeatures(); + + if (cpu_family == ANDROID_CPU_FAMILY_ARM) { + if (cpu_features & ANDROID_CPU_ARM_FEATURE_NEON) + util_cpu_caps.has_neon = 1; ++ } ++#elif defined(PIPE_OS_FREEBSD) && defined(HWCAP_NEON) ++ Elf_Auxinfo auxv[AT_COUNT]; ++ size_t len = sizeof(auxv); ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_AUXV, ++ getpid(), ++ }; ++ ++ if (sysctl(mib, nitems(mib), auxv, &len, NULL, 0) != -1) { ++ for (size_t i = 0; i < nitems(auxv); i++) ++ if (auxv[i].a_type == AT_HWCAP && auxv[i].a_un.a_val & HWCAP_NEON) ++ util_cpu_caps.has_neon = 1; + } + #elif defined(PIPE_OS_LINUX) + Elf32_auxv_t aux; --- graphics/mesa-dri/files/patch-src_gallium_auxiliary_util_u__network.c (revision 470441) +++ graphics/mesa-dri/files/patch-src_gallium_auxiliary_util_u__network.c (nonexistent) @@ -1,11 +0,0 @@ ---- src/gallium/auxiliary/util/u_network.c.orig 2018-01-23 18:08:49 UTC -+++ src/gallium/auxiliary/util/u_network.c -@@ -9,7 +9,7 @@ - # include - # include - # include --#elif defined(PIPE_OS_LINUX) || defined(PIPE_OS_HAIKU) || \ -+#elif defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_HAIKU) || \ - defined(PIPE_OS_APPLE) || defined(PIPE_OS_CYGWIN) || defined(PIPE_OS_SOLARIS) - # include - # include --- graphics/mesa-dri/files/patch-src_gallium_drivers_freedreno_freedreno__screen.c (nonexistent) +++ graphics/mesa-dri/files/patch-src_gallium_drivers_freedreno_freedreno__screen.c (working copy) @@ -0,0 +1,30 @@ +- Without sysinfo() fall back to sysconf() + +--- src/gallium/drivers/freedreno/freedreno_screen.c.orig 2018-04-21 05:48:24 UTC ++++ src/gallium/drivers/freedreno/freedreno_screen.c +@@ -43,7 +43,11 @@ + #include + #include + #include ++#ifdef __GLIBC__ + #include ++#else ++#include ++#endif + + #include "freedreno_screen.h" + #include "freedreno_resource.h" +@@ -837,9 +841,13 @@ fd_screen_create(struct fd_device *dev) + screen->priority_mask = (1 << val) - 1; + } + ++#ifdef __GLIBC__ + struct sysinfo si; + sysinfo(&si); + screen->ram_size = si.totalram; ++#else ++ screen->ram_size = sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGE_SIZE); ++#endif + + DBG("Pipe Info:"); + DBG(" GPU-id: %d", screen->gpu_id); --- graphics/mesa-dri/files/patch-src_util_os__time.c (revision 470441) +++ graphics/mesa-dri/files/patch-src_util_os__time.c (working copy) @@ -1,16 +1,7 @@ - Use monotonic clock for timeouts ---- src/util/os_time.c.orig 2018-01-23 18:08:50 UTC +--- src/util/os_time.c.orig 2018-04-21 05:48:25 UTC +++ src/util/os_time.c -@@ -55,7 +55,7 @@ - int64_t - os_time_get_nano(void) - { --#if defined(PIPE_OS_LINUX) -+#if defined(PIPE_OS_BSD) || defined(PIPE_OS_LINUX) - - struct timespec tv; - clock_gettime(CLOCK_MONOTONIC, &tv); @@ -95,7 +95,7 @@ os_time_get_nano(void) void os_time_sleep(int64_t usecs)