diff --git a/graphics/filament/Makefile b/graphics/filament/Makefile index f45855a48cb3..c9e5453f2e31 100644 --- a/graphics/filament/Makefile +++ b/graphics/filament/Makefile @@ -1,53 +1,53 @@ PORTNAME= filament DISTVERSIONPREFIX= v -DISTVERSION= 1.36.0 +DISTVERSION= 1.37.0 CATEGORIES= graphics MAINTAINER= yuri@FreeBSD.org COMMENT= Real-time physically based rendering engine WWW= https://google.github.io/filament/ LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_armv7= compilation breaks: unexpected token in operand, see https://github.com/google/filament/issues/6131 BROKEN_i386= compilation breaks: register r11 is only available in 64-bit mode BUILD_DEPENDS= bash:shells/bash \ evdev-proto>0:devel/evdev-proto USES= cmake compiler:c++17-lang localbase:ldflags python:build sdl shebangfix xorg USE_SDL= sdl2 USE_XORG= x11 USE_GITHUB= yes GH_ACCOUNT= google SHEBANG_FILES= build/launch-c.in build/launch-cxx.in #CMAKE_ON= BUILD_SHARED_LIBS # not yet supported, see https://github.com/google/filament/issues/1075 CMAKE_OFF= USE_STATIC_LIBCXX FILAMENT_ENABLE_JAVA CMAKE_ARGS+= -DDIST_DIR="." # prevent subdirectory for libraries CMAKE_ARGS+= -DUSE_CCACHE:BOOL=${CCACHE_ENABLED:tu} CMAKE_ARGS+= -DPython3_EXECUTABLE=${PYTHON_CMD} LDFLAGS+= -lexecinfo -lSDL2 OPTIONS_DEFINE= SAMPLES OPTIONS_SUB= yes SAMPLES_DESC= Build samples SAMPLES_CMAKE_OFF= -DFILAMENT_SKIP_SAMPLES=ON # gltf_viewer is broken with the Vulkan backend, see https://github.com/google/filament/issues/6445 post-patch: @${REINPLACE_CMD} -e 's|"/proc/self/exe"|"/proc/curproc/file"|' ${WRKSRC}/libs/utils/src/linux/Path.cpp post-install: # remove unnecessary files @cd ${STAGEDIR}${PREFIX} && ${RM} -r README.md LICENSE docs # remove conflicting file, see https://github.com/google/filament/issues/5957 @${RM} ${STAGEDIR}${PREFIX}/lib/libzstd.a .include diff --git a/graphics/filament/distinfo b/graphics/filament/distinfo index afd530df2972..fbdc1556c4bc 100644 --- a/graphics/filament/distinfo +++ b/graphics/filament/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1684721878 -SHA256 (google-filament-v1.36.0_GH0.tar.gz) = 7c6b2a5c2b2d14d532d6c43ae3cb78754cfce5c739b9f9ca6b5e1af276b12573 -SIZE (google-filament-v1.36.0_GH0.tar.gz) = 500402413 +TIMESTAMP = 1685637225 +SHA256 (google-filament-v1.37.0_GH0.tar.gz) = 7d9504b19615975bf834c1e0225bc818145e16e0b59336938756f07d0906d8fb +SIZE (google-filament-v1.37.0_GH0.tar.gz) = 500505901 diff --git a/graphics/filament/files/patch-filament_backend_src_PlatformFactory.cpp b/graphics/filament/files/patch-filament_backend_src_PlatformFactory.cpp index f1497e65ba5d..d9c7385d548c 100644 --- a/graphics/filament/files/patch-filament_backend_src_PlatformFactory.cpp +++ b/graphics/filament/files/patch-filament_backend_src_PlatformFactory.cpp @@ -1,29 +1,20 @@ ---- filament/backend/src/PlatformFactory.cpp.orig 2023-01-26 04:37:03 UTC +--- filament/backend/src/PlatformFactory.cpp.orig 2023-05-30 23:22:31 UTC +++ filament/backend/src/PlatformFactory.cpp -@@ -41,7 +41,7 @@ - #if defined(FILAMENT_DRIVER_SUPPORTS_VULKAN) - #include "vulkan/PlatformVkCocoa.h" +@@ -32,7 +32,7 @@ + #if defined(FILAMENT_SUPPORTS_OPENGL) && !defined(FILAMENT_USE_EXTERNAL_GLES3) && !defined(FILAMENT_USE_SWIFTSHADER) + #include #endif -#elif defined(__linux__) +#elif defined(__linux__) || defined(__FreeBSD__) - #if defined(FILAMENT_SUPPORTS_GGP) - #include "vulkan/PlatformVkLinuxGGP.h" - #elif defined(FILAMENT_SUPPORTS_WAYLAND) -@@ -118,7 +118,7 @@ Platform* PlatformFactory::create(Backend* backend) no - return new PlatformVkAndroid(); - #elif defined(IOS) - return new PlatformVkCocoaTouch(); -- #elif defined(__linux__) -+ #elif defined(__linux__) || defined(__FreeBSD__) - #if defined(FILAMENT_SUPPORTS_GGP) - return new PlatformVkLinuxGGP(); - #elif defined(FILAMENT_SUPPORTS_WAYLAND) -@@ -155,7 +155,7 @@ Platform* PlatformFactory::create(Backend* backend) no + #if defined(FILAMENT_SUPPORTS_X11) + #if defined(FILAMENT_SUPPORTS_OPENGL) && !defined(FILAMENT_USE_EXTERNAL_GLES3) && !defined(FILAMENT_USE_SWIFTSHADER) + #include "backend/platforms/PlatformGLX.h" +@@ -120,7 +120,7 @@ Platform* PlatformFactory::create(Backend* backend) no return new PlatformCocoaTouchGL(); #elif defined(__APPLE__) return new PlatformCocoaGL(); - #elif defined(__linux__) + #elif defined(__linux__) || defined(__FreeBSD__) #if defined(FILAMENT_SUPPORTS_X11) return new PlatformGLX(); #elif defined(FILAMENT_SUPPORTS_EGL_ON_LINUX) diff --git a/graphics/filament/files/patch-filament_backend_src_vulkan_platform_PlatformVulkanAndroidLinuxWindows.cpp b/graphics/filament/files/patch-filament_backend_src_vulkan_platform_PlatformVulkanAndroidLinuxWindows.cpp new file mode 100644 index 000000000000..29208b26ecfd --- /dev/null +++ b/graphics/filament/files/patch-filament_backend_src_vulkan_platform_PlatformVulkanAndroidLinuxWindows.cpp @@ -0,0 +1,54 @@ +- workaround for https://github.com/google/filament/issues/6861 + +--- filament/backend/src/vulkan/platform/PlatformVulkanAndroidLinuxWindows.cpp.orig 2023-06-01 16:53:44 UTC ++++ filament/backend/src/vulkan/platform/PlatformVulkanAndroidLinuxWindows.cpp +@@ -38,7 +38,7 @@ + uint32_t height; + } wl; + }// anonymous namespace +-#elif defined(__linux__) && defined(FILAMENT_SUPPORTS_X11) ++#elif (defined(__linux__) || defined(__FreeBSD__)) && defined(FILAMENT_SUPPORTS_X11) + #include + #if defined(FILAMENT_SUPPORTS_XCB) + #include +@@ -83,11 +83,11 @@ Driver* PlatformVulkan::createDriver(void* const share + static const char* requiredInstanceExtensions[] = { + #if defined(__ANDROID__) + "VK_KHR_android_surface", +- #elif defined(__linux__) && defined(FILAMENT_SUPPORTS_GGP) ++ #elif (defined(__linux__) || defined(__FreeBSD__)) && defined(FILAMENT_SUPPORTS_GGP) + VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME, + #elif defined(__linux__) && defined(FILAMENT_SUPPORTS_WAYLAND) + "VK_KHR_wayland_surface", +- #elif defined(__linux__) && defined(FILAMENT_SUPPORTS_X11) ++ #elif (defined(__linux__) || defined(__FreeBSD__)) && defined(FILAMENT_SUPPORTS_X11) + #if defined(FILAMENT_SUPPORTS_XCB) + "VK_KHR_xcb_surface", + #endif +@@ -121,7 +121,7 @@ PlatformVulkan::SurfaceBundle PlatformVulkan::createVk + VkResult const result = vkCreateAndroidSurfaceKHR(instance, &createInfo, VKALLOC, + (VkSurfaceKHR*) &bundle.surface); + ASSERT_POSTCONDITION(result == VK_SUCCESS, "vkCreateAndroidSurfaceKHR error."); +- #elif defined(__linux__) && defined(FILAMENT_SUPPORTS_GGP) ++ #elif (defined(__linux__) || defined(__FreeBSD__)) && defined(FILAMENT_SUPPORTS_GGP) + VkStreamDescriptorSurfaceCreateInfoGGP const surface_create_info = { + .sType = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP, + .streamDescriptor = kGgpPrimaryStreamDescriptor, +@@ -135,7 +135,7 @@ PlatformVulkan::SurfaceBundle PlatformVulkan::createVk + VkResult const result = fpCreateStreamDescriptorSurfaceGGP(instance, &surface_create_info, + nullptr, (VkSurfaceKHR*) &bundle.surface); + ASSERT_POSTCONDITION(result == VK_SUCCESS, "vkCreateStreamDescriptorSurfaceGGP error."); +- #elif defined(__linux__) && defined(FILAMENT_SUPPORTS_WAYLAND) ++ #elif (defined(__linux__) || defined(__FreeBSD__)) && defined(FILAMENT_SUPPORTS_WAYLAND) + wl* ptrval = reinterpret_cast(nativeWindow); + bundle.width = ptrval->width; + bundle.height = ptrval->height; +@@ -150,7 +150,7 @@ PlatformVulkan::SurfaceBundle PlatformVulkan::createVk + VkResult const result = vkCreateWaylandSurfaceKHR(instance, &createInfo, VKALLOC, + (VkSurfaceKHR*) &bundle.surface); + ASSERT_POSTCONDITION(result == VK_SUCCESS, "vkCreateWaylandSurfaceKHR error."); +- #elif defined(__linux__) && defined(FILAMENT_SUPPORTS_X11) ++ #elif (defined(__linux__) || defined(__FreeBSD__)) && defined(FILAMENT_SUPPORTS_X11) + if (g_x11_vk.library == nullptr) { + g_x11_vk.library = dlopen(LIBRARY_X11, RTLD_LOCAL | RTLD_NOW); + ASSERT_PRECONDITION(g_x11_vk.library, "Unable to open X11 library."); diff --git a/graphics/filament/files/patch-libs_utils_CMakeLists.txt b/graphics/filament/files/patch-libs_utils_CMakeLists.txt index 2deb894bd724..4e45fbc7aa4d 100644 --- a/graphics/filament/files/patch-libs_utils_CMakeLists.txt +++ b/graphics/filament/files/patch-libs_utils_CMakeLists.txt @@ -1,15 +1,15 @@ ---- libs/utils/CMakeLists.txt.orig 2022-08-16 18:01:04 UTC +--- libs/utils/CMakeLists.txt.orig 2023-05-30 23:22:31 UTC +++ libs/utils/CMakeLists.txt -@@ -81,8 +81,10 @@ if (ANDROID) - list(APPEND SRCS src/android/ThermalManager.cpp) +@@ -82,8 +82,10 @@ if (ANDROID) + list(APPEND SRCS src/android/Systrace.cpp) endif() if (LINUX OR ANDROID) - list(APPEND SRCS src/linux/Condition.cpp) - list(APPEND SRCS src/linux/Mutex.cpp) + if (NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD") + list(APPEND SRCS src/linux/Condition.cpp) + list(APPEND SRCS src/linux/Mutex.cpp) + endif() list(APPEND SRCS src/linux/Path.cpp) endif() if (APPLE)