diff --git a/graphics/mesa-dri/Makefile b/graphics/mesa-dri/Makefile index 96b650db6d07..2f57b3e5c328 100644 --- a/graphics/mesa-dri/Makefile +++ b/graphics/mesa-dri/Makefile @@ -1,117 +1,116 @@ PORTNAME= mesa-dri PORTVERSION= ${MESAVERSION} -PORTREVISION= 2 CATEGORIES= graphics COMMENT= OpenGL hardware acceleration drivers for DRI2+ WWW= https://www.mesa3d.org/ LIB_DEPENDS+= libglapi.so:graphics/mesa-libs USES+= llvm:lib,noexport OPTIONS_GROUP= PLATFORM OPTIONS_GROUP_PLATFORM= PLATFORM_X11 PLATFORM_WAYLAND PLATFORM_X11_DESC= Enable X11 support for GBM/EGL PLATFORM_WAYLAND_DESC= Enable Wayland support for GBM/EGL PLATFORM_WAYLAND_IMPLIES= WAYLAND OPTIONS_DEFINE= WAYLAND ZSTD OPTIONS_DEFAULT= WAYLAND PLATFORM_X11 PLATFORM_WAYLAND ZSTD OPTIONS_SUB= yes WAYLAND_DESC= Enable support for the Wayland platform in Vulkan drivers WAYLAND_BUILD_DEPENDS= wayland-protocols>=1.8:graphics/wayland-protocols WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland WAYLAND_IMPLIES= PLATFORM_WAYLAND ZSTD_DESC= Use ZSTD for shader cache ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd ZSTD_MESON_ENABLED= zstd .include .include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common" ALL_GALLIUM_DRIVERS= CROCUS I915 IRIS PANFROST R300 R600 RADEONSI SVGA \ SWRAST ZINK ALL_VULKAN_DRIVERS= INTEL AMD SWRAST GALLIUM_DRIVERS+= SWRAST \ ZINK VULKAN_DRIVERS+= SWRAST # lavapipe .if ${ARCH} == aarch64 GALLIUM_DRIVERS+= PANFROST .endif .if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == i386 \ || ${ARCH:Mpowerpc*} || ${ARCH} == riscv64 GALLIUM_DRIVERS+= R300 R600 RADEONSI VULKAN_DRIVERS+= AMD BUILD_DEPENDS+= glslangValidator:graphics/glslang .endif .if ${ARCH} == amd64 || ${ARCH} == i386 GALLIUM_DRIVERS+= CROCUS I915 IRIS SVGA VULKAN_DRIVERS+= INTEL .endif LDFLAGS_i386= -Wl,-znotext .if ${PORT_OPTIONS:MPLATFORM_X11} MESA_PLATFORMS+= x11 USE_XORG+= xorgproto x11 xdamage xext xfixes xshmfence xv .if defined(VULKAN_DRIVERS) USE_XORG+= xcb xrandr .endif .endif .if ${PORT_OPTIONS:MPLATFORM_WAYLAND} MESA_PLATFORMS+= wayland .endif MESON_ARGS+= -Dgallium-drivers="${GALLIUM_DRIVERS:ts,:tl}" \ -Dvulkan-drivers="${VULKAN_DRIVERS:ts,:tl}" \ -Dplatforms="${MESA_PLATFORMS:ts,:tl}" # Vulkan Video extensions (keep in sync with mesa-gallium-va) MESON_ARGS+= -Dvideo-codecs="vc1dec,h264dec,h264enc,h265dec,h265enc" # Disable some options MESON_ARGS+= -Dandroid-libbacktrace=disabled \ -Dgallium-xa=disabled \ -Dgallium-vdpau=disabled \ -Dgallium-va=disabled \ -Dgles1=enabled \ -Dgles2=enabled \ -Dglx=disabled \ -Degl=enabled \ -Dlmsensors=disabled \ -Dmicrosoft-clc=disabled \ -Dosmesa=false \ -Dvalgrind=disabled .for _gd in ${ALL_GALLIUM_DRIVERS} . if defined(GALLIUM_DRIVERS) && ${GALLIUM_DRIVERS:M${_gd}} PLIST_SUB+= ${_gd}_GDRIVER="" . else PLIST_SUB+= ${_gd}_GDRIVER="@comment " . endif .endfor PLIST_SUB += ARCH=${ARCH:S/amd/x86_/} .for _vd in ${ALL_VULKAN_DRIVERS} . if defined(VULKAN_DRIVERS) && ${VULKAN_DRIVERS:M${_vd}} PLIST_SUB+= ${_vd}_VDRIVER="" . else PLIST_SUB+= ${_vd}_VDRIVER="@comment " . endif .endfor .include "${MASTERDIR}/Makefile.targets" post-install: @${RM} -r ${STAGEDIR}/etc/OpenCL ${INSTALL_DATA} ${FILESDIR}/01-freebsd.conf \ ${STAGEDIR}${PREFIX}/share/drirc.d .include diff --git a/graphics/mesa-dri/Makefile.common b/graphics/mesa-dri/Makefile.common index 1095a78d359c..9c76d24a46a9 100644 --- a/graphics/mesa-dri/Makefile.common +++ b/graphics/mesa-dri/Makefile.common @@ -1,94 +1,93 @@ # Makefile.common - shared code between MesaLib ports. # # !!! Here be dragons !!! (they seem to be everywhere these days) # # Remember to upgrade the following ports everytime you bump MESAVERSION: # # - graphics/libosmesa # - graphics/mesa-dri # - graphics/mesa-libs # - lang/clover MESAVERSION= ${MESABASEVERSION}${MESASUBVERSION:C/^(.)/.\1/} MESADISTVERSION=${MESABASEVERSION}${MESASUBVERSION:C/^(.)/-\1/} -MESABASEVERSION= 23.1.8 +MESABASEVERSION= 23.3.0 # if there is a subversion, don't include the '-' between 7.11-rc2. MESASUBVERSION= MASTER_SITES= https://mesa.freedesktop.org/archive/ \ https://mesa.freedesktop.org/archive/${MESABASEVERSION}/ \ ftp://ftp.freedesktop.org/pub/mesa/ \ ftp://ftp.freedesktop.org/pub/mesa/${MESABASEVERSION}/ DISTFILES= mesa-${MESADISTVERSION}${EXTRACT_SUFX} PATCH_SITES= https://gitlab.freedesktop.org/mesa/mesa/-/commit/ -PATCHFILES+= 9ba416cdc67073cdda9a73fe9d37304b82bdd526.patch:-p1 # https://gitlab.freedesktop.org/mesa/mesa/-/issues/8671 PATCHFILES+= 4a253aae7ca437201d2a31d2a11a1a5434fe41f1.patch:-p1 # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26284 MAINTAINER= x11@FreeBSD.org LICENSE= MIT LICENSE_FILE= ${WRKSRC}/docs/license.rst COMPONENT= ${PORTNAME:tl:C/^lib//:C/mesa-//} BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}mako>0:textproc/py-mako@${PY_FLAVOR} LIB_DEPENDS+= libexpat.so:textproc/expat2 .if ${COMPONENT} != clover .if ${PORT_OPTIONS:MPLATFORM_X11} USES+= xorg .endif .endif .if ${COMPONENT} != osmesa LIB_DEPENDS+= libdrm.so:graphics/libdrm .endif USES+= compiler:c++11-lib bison meson pathfix pkgconfig \ python:build shebangfix tar:xz .if ${/usr/bin/ld:L:tA} != /usr/bin/ld.lld # --build-id isn't supported by old GNU ld.bfd in base # Also ld.bfd have problems that seems related to --as-needed USE_BINUTILS= yes LDFLAGS+= -B${LOCALBASE}/bin .endif # only have one port to check with portscout. .if ${PORTNAME} != mesa-dri PORTSCOUT= ignore:1 .endif python_OLD_CMD= /usr/bin/env[[:space:]]python2 /usr/bin/python2 /bin/env[[:space:]]python SHEBANG_FILES= src/gallium/*/*/*.py src/gallium/tools/trace/*.py \ src/gallium/drivers/svga/svgadump/svga_dump.py \ src/mapi/glapi/gen/*.py src/mapi/mapi_abi.py \ src/mesa/main/get_*.py src/util/format_srgb.py \ src/amd/*/*.py src/intel/genxml/gen_pack_header.py MASTERDIR= ${.CURDIR:H:H}/graphics/mesa-dri PATCHDIR= ${MASTERDIR}/files WRKSRC= ${WRKDIR}/mesa-${MESADISTVERSION} DESCR= ${.CURDIR}/pkg-descr PLIST= ${.CURDIR}/pkg-plist PKGHELP= ${.CURDIR}/pkg-help PKGINSTALL= ${.CURDIR}/pkg-install PKGDEINSTALL= ${.CURDIR}/pkg-deinstall .include BINARY_ALIAS+= python3=${PYTHON_VERSION} CONFIGURE_ENV+= LLVM_CONFIG=${LLVM_CONFIG} # Some symbols in mesa's linker version scripts are not always defined, # depending on configuration options. Suppress errors with lld >= 17 due to # these undefined symbols. LDFLAGS+= -Wl,--undefined-version LDFLAGS+= -Wl,-rpath=${LOCALBASE}/llvm${LLVM_VERSION}/lib MESON_ARGS+= -Dllvm=enabled \ -Dlibunwind=disabled \ -Dlibelf=disabled diff --git a/graphics/mesa-dri/distinfo b/graphics/mesa-dri/distinfo index de765e7b28f9..839b3ee47f15 100644 --- a/graphics/mesa-dri/distinfo +++ b/graphics/mesa-dri/distinfo @@ -1,7 +1,5 @@ -TIMESTAMP = 1700484156 -SHA256 (mesa-23.1.8.tar.xz) = 45434ff91a709844130a3174d9c0ef39c6b50725b2bb0c13e736f36134db14ad -SIZE (mesa-23.1.8.tar.xz) = 18566724 -SHA256 (9ba416cdc67073cdda9a73fe9d37304b82bdd526.patch) = aac0f0bc9454d177729109103e4e851ee4bc894ba7cc28ea1712ed87b4660e85 -SIZE (9ba416cdc67073cdda9a73fe9d37304b82bdd526.patch) = 1511 +TIMESTAMP = 1701441510 +SHA256 (mesa-23.3.0.tar.xz) = 50f729dd60ed6335b989095baad81ef5edf7cfdd4b4b48b9b955917cb07d69c5 +SIZE (mesa-23.3.0.tar.xz) = 19234688 SHA256 (4a253aae7ca437201d2a31d2a11a1a5434fe41f1.patch) = 84f18f14788bd8f387e2fc754b945bf30f84b517dd917785ed5d8ef1d594e24a SIZE (4a253aae7ca437201d2a31d2a11a1a5434fe41f1.patch) = 1626 diff --git a/graphics/mesa-dri/files/patch-src_gallium_drivers_llvmpipe_lp__setup__tri.c b/graphics/mesa-dri/files/patch-src_gallium_drivers_llvmpipe_lp__setup__tri.c deleted file mode 100644 index 98a7bbeb9ac4..000000000000 --- a/graphics/mesa-dri/files/patch-src_gallium_drivers_llvmpipe_lp__setup__tri.c +++ /dev/null @@ -1,12 +0,0 @@ ---- src/gallium/drivers/llvmpipe/lp_setup_tri.c.orig 2022-10-11 18:53:31 UTC -+++ src/gallium/drivers/llvmpipe/lp_setup_tri.c -@@ -46,7 +46,9 @@ - #if defined(PIPE_ARCH_SSE) - #include - #elif defined(_ARCH_PWR8) && UTIL_ARCH_LITTLE_ENDIAN -+#undef bool - #include -+#define bool _Bool - #include "util/u_pwr8.h" - #endif - diff --git a/graphics/mesa-dri/files/patch-src_gallium_drivers_zink_zink__screen.c b/graphics/mesa-dri/files/patch-src_gallium_drivers_zink_zink__screen.c new file mode 100644 index 000000000000..2bb9b9119097 --- /dev/null +++ b/graphics/mesa-dri/files/patch-src_gallium_drivers_zink_zink__screen.c @@ -0,0 +1,12 @@ +--- src/gallium/drivers/zink/zink_screen.c.orig 2023-12-01 14:18:25 UTC ++++ src/gallium/drivers/zink/zink_screen.c +@@ -55,7 +55,9 @@ + #include + #include + #include ++#if DETECT_OS_LINUX + #include ++#endif + #endif + + static int num_screens = 0; diff --git a/graphics/mesa-dri/files/patch-src_util_u__memory.h b/graphics/mesa-dri/files/patch-src_util_u__memory.h index 27c553b712a7..fcaec0a4a2d2 100644 --- a/graphics/mesa-dri/files/patch-src_util_u__memory.h +++ b/graphics/mesa-dri/files/patch-src_util_u__memory.h @@ -1,27 +1,27 @@ ---- src/util/u_memory.h.orig 2023-09-06 23:29:52 UTC +--- src/util/u_memory.h.orig 2023-11-29 19:30:57 UTC +++ src/util/u_memory.h -@@ -90,7 +90,7 @@ mem_dup(const void *src, size_t size) - #define Offset(TYPE, MEMBER) ((uintptr_t)&(((TYPE *)NULL)->MEMBER)) +@@ -84,7 +84,7 @@ mem_dup(const void *src, size_t size) + } /* TODO: this could be different on non-x86 architectures. */ -#define CACHE_LINE_SIZE 64 +#define MESA_CACHE_LINE_SIZE 64 /** * Declare a variable on its own cache line. -@@ -107,12 +107,12 @@ mem_dup(const void *src, size_t size) +@@ -101,12 +101,12 @@ mem_dup(const void *src, size_t size) * aligned, but we only want to align the field. */ #define EXCLUSIVE_CACHELINE(decl) \ - union { char __cl_space[CACHE_LINE_SIZE]; \ + union { char __cl_space[MESA_CACHE_LINE_SIZE]; \ decl; } /* Allocate a structure aligned to a cache line. (used to make atomic ops faster) */ -#define MALLOC_STRUCT_CL(T) (struct T *)align_malloc(sizeof(struct T), CACHE_LINE_SIZE) -#define CALLOC_STRUCT_CL(T) (struct T *)align_calloc(sizeof(struct T), CACHE_LINE_SIZE) +#define MALLOC_STRUCT_CL(T) (struct T *)align_malloc(sizeof(struct T), MESA_CACHE_LINE_SIZE) +#define CALLOC_STRUCT_CL(T) (struct T *)align_calloc(sizeof(struct T), MESA_CACHE_LINE_SIZE) #define FREE_CL(ptr) align_free(ptr) #ifdef __cplusplus