Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
Re: UPDATE: libplacebo 7.360.1
To:
ports@openbsd.org
Date:
Wed, 17 Jun 2026 16:12:21 -0400

Download raw body.

Thread
  • Brad Smith:

    UPDATE: libplacebo 7.360.1

  • ping.
    
    On 2026-05-10 7:49 p.m., Brad Smith wrote:
    > Here is an update to libplacebo 7.360.1.
    >
    >
    > v7.360.0
    >
    > This release introduces some new features, alongside a bunch of miscellaneous bug
    > fixes across the board, in particular, major improvements to the Vulkan renderer.
    >
    > Additions:
    >
    > - add pl_gpu_limits.host_ptr_slow to notify if host pointer import is slow
    > - add PL_DEINTERLACE_BWDIF
    > - add PL_CLEAR_BLUR and pl_render_params.blur_radius to allow clearing with a
    >    blurred copy of image
    > - add pl_daylight_from_temp, pl_blackbody_from_temp
    > - add PL_COLOR_SYSTEM_YCGCO_{RE,RO}
    > - add pl_vulkan_swapchain_params.{alpha,color}_bits
    > - add pl_d3d11_swapchain_params.{alpha,color}_bits
    >
    > Changes:
    >
    > - pl_shader_{encode,decode}_color no longer (de)linearizes XYZ
    > - pl_avframe_set_repr now sets frame.alpha_mode
    > - pl_white_from_temp now computes a blend of the daylight and blackbody
    >    temperatures (old behavior can be achieved with pl_daylight_from_temp)
    >
    > Fixes and enhancements:
    >
    > - fix double application of alpha mode
    > - fix math in pl_primaries_compatible
    > - refactor and fix host-visible VRAM limit for Vulkan
    > - fix unsigned integer overflow with complex overlays
    > - fix many issues with frame_queue, mostly for interlaced sources and other
    >    esoteric files
    > - fix internal primaries/transfer function mapping of Vulkan color spaces
    > - Vulkan swapchain improvements by using VK_KHR_swapchain_maintenance1 when
    >    available
    > - switch to extended HLG gamma formula
    > - fix issues with SDR output in HDR mode on Windows with d3d11
    > - fix pl_filter_config_eq when comparing tunable with not tunable
    > - improve surface format and colorspace selection for Vulkan swapchains
    > - use deferred memory allocation for Vulkan swapchains
    > - render overlays with the same colorspace as source image
    > - convert background color to target and use infinite contrast for them
    > - prefer Vulkan formats that can be used for direct-to-display output on Apple
    >
    > Please test (mpv).
    >
    >
    > Index: Makefile
    > ===================================================================
    > RCS file: /cvs/ports/graphics/libplacebo/Makefile,v
    > retrieving revision 1.15
    > diff -u -p -u -p -r1.15 Makefile
    > --- Makefile	9 Nov 2025 12:34:31 -0000	1.15
    > +++ Makefile	12 Apr 2026 03:56:51 -0000
    > @@ -2,11 +2,10 @@ COMMENT=	reusable library for GPU-accele
    >   
    >   GH_ACCOUNT=	haasn
    >   GH_PROJECT=	libplacebo
    > -GH_TAGNAME=	v7.351.0
    > -REVISION=	0
    > +GH_TAGNAME=	v7.360.1
    >   CATEGORIES=	graphics
    >   
    > -SHARED_LIBS=	placebo	9.0
    > +SHARED_LIBS=	placebo	10.0
    >   
    >   MAINTAINER=	Brad Smith <brad@comstyle.com>
    >   
    > @@ -21,7 +20,7 @@ WANTLIB +=	GL epoxy
    >   MODULES=	devel/meson
    >   
    >   BUILD_DEPENDS=	devel/fast-float \
    > -		graphics/glad>=2.0.6 \
    > +		graphics/glad \
    >   		graphics/vulkan-headers
    >   
    >   LIB_DEPENDS=	graphics/lcms2 \
    > Index: distinfo
    > ===================================================================
    > RCS file: /cvs/ports/graphics/libplacebo/distinfo,v
    > retrieving revision 1.11
    > diff -u -p -u -p -r1.11 distinfo
    > --- distinfo	3 Nov 2025 12:20:48 -0000	1.11
    > +++ distinfo	12 Apr 2026 03:56:51 -0000
    > @@ -1,2 +1,2 @@
    > -SHA256 (libplacebo-7.351.0.tar.gz) = cWlUUB2bduaQb93aZv68WIZJPQZz3SZeweblL05c18Y=
    > -SIZE (libplacebo-7.351.0.tar.gz) = 848715
    > +SHA256 (libplacebo-7.360.1.tar.gz) = 0F/fkL6i9inqotEV6Qn9NWOIrGOeVPd7h6AYptdiJL0=
    > +SIZE (libplacebo-7.360.1.tar.gz) = 862269
    > Index: patches/patch-src_glsl_meson_build
    > ===================================================================
    > RCS file: patches/patch-src_glsl_meson_build
    > diff -N patches/patch-src_glsl_meson_build
    > --- patches/patch-src_glsl_meson_build	9 Nov 2025 12:34:31 -0000	1.1
    > +++ /dev/null	1 Jan 1970 00:00:00 -0000
    > @@ -1,21 +0,0 @@
    > -glsl/spirv_shaderc: check if shaderc recognizes Vulkan 1.4
    > -https://code.videolan.org/videolan/libplacebo/-/commit/3662b1f5d5a721f31cbf6c0ad090ac2345834cab
    > -
    > -Index: src/glsl/meson.build
    > ---- src/glsl/meson.build.orig
    > -+++ src/glsl/meson.build
    > -@@ -4,6 +4,14 @@ components.set('shaderc', shaderc.found())
    > - if shaderc.found()
    > -   build_deps += shaderc
    > -   sources += 'glsl/spirv_shaderc.c'
    > -+
    > -+  # Version check for shaderc is not possible because everything after v2023.8
    > -+  # uses this version due to a malformed version line.
    > -+  # See https://github.com/google/shaderc/issues/1496
    > -+  conf_internal.set('PL_HAVE_SHADERC_VK_1_4',
    > -+    cc.has_header_symbol('shaderc/shaderc.h', 'shaderc_env_version_vulkan_1_4', dependencies: shaderc))
    > -+  conf_internal.set('PL_HAVE_SHADERC_VK_1_3',
    > -+    cc.has_header_symbol('shaderc/shaderc.h', 'shaderc_env_version_vulkan_1_3', dependencies: shaderc))
    > - endif
    > -
    > - # glslang
    > Index: patches/patch-src_glsl_spirv_shaderc_c
    > ===================================================================
    > RCS file: patches/patch-src_glsl_spirv_shaderc_c
    > diff -N patches/patch-src_glsl_spirv_shaderc_c
    > --- patches/patch-src_glsl_spirv_shaderc_c	9 Nov 2025 12:34:31 -0000	1.1
    > +++ /dev/null	1 Jan 1970 00:00:00 -0000
    > @@ -1,50 +0,0 @@
    > -glsl/spirv_shaderc: check if shaderc recognizes Vulkan 1.4
    > -https://code.videolan.org/videolan/libplacebo/-/commit/3662b1f5d5a721f31cbf6c0ad090ac2345834cab
    > -
    > -Index: src/glsl/spirv_shaderc.c
    > ---- src/glsl/spirv_shaderc.c.orig
    > -+++ src/glsl/spirv_shaderc.c
    > -@@ -22,6 +22,17 @@
    > - #include "spirv.h"
    > - #include "utils.h"
    > -
    > -+#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
    > -+#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
    > -+
    > -+#if defined(PL_HAVE_SHADERC_VK_1_4)
    > -+# define SHADERC_VULKAN_MAX PL_VLK_VERSION(1, 4)
    > -+#elif defined(PL_HAVE_SHADERC_VK_1_3)
    > -+# define SHADERC_VULKAN_MAX PL_VLK_VERSION(1, 3)
    > -+#else
    > -+# define SHADERC_VULKAN_MAX PL_VLK_VERSION(1, 2)
    > -+#endif
    > -+
    > - const struct spirv_compiler pl_spirv_shaderc;
    > -
    > - struct priv {
    > -@@ -57,8 +68,25 @@ static pl_spirv shaderc_create(pl_log log, struct pl_s
    > -
    > -     // Clamp to supported version by shaderc
    > -     if (ver < spirv->version.spv_version) {
    > -+        PL_WARN(spirv, "SPIR-V %u.%u is not supported by the current"
    > -+                       " version of shaderc. Falling back to %u.%u!",
    > -+                spirv->version.spv_version >> 16, (spirv->version.spv_version >> 8) & 0xff,
    > -+                ver >> 16, (ver >> 8) & 0xff);
    > -         spirv->version.spv_version = ver;
    > -         spirv->version.env_version = pl_spirv_version_to_vulkan(ver);
    > -+    }
    > -+
    > -+    if (SHADERC_VULKAN_MAX < spirv->version.env_version) {
    > -+        PL_WARN(spirv, "Vulkan %u.%u is not supported by the current"
    > -+                       " version of shaderc. Falling back to %u.%u!",
    > -+                       VK_API_VERSION_MAJOR(spirv->version.env_version),
    > -+                       VK_API_VERSION_MINOR(spirv->version.env_version),
    > -+                       VK_API_VERSION_MAJOR(SHADERC_VULKAN_MAX),
    > -+                       VK_API_VERSION_MINOR(SHADERC_VULKAN_MAX));
    > -+        // The SPIR-V version has already been clamped above.
    > -+        // In practice, this only occurs for Vulkan 1.3 and 1.4,
    > -+        // where the SPIR-V version is the same (1.6).
    > -+        spirv->version.env_version = SHADERC_VULKAN_MAX;
    > -     }
    > -
    > -     pl_hash_merge(&spirv->signature, (uint64_t) spirv->version.spv_version << 32 |
    > Index: patches/patch-src_vulkan_utils_gen_py
    > ===================================================================
    > RCS file: patches/patch-src_vulkan_utils_gen_py
    > diff -N patches/patch-src_vulkan_utils_gen_py
    > --- patches/patch-src_vulkan_utils_gen_py	3 Nov 2025 12:27:56 -0000	1.1
    > +++ /dev/null	1 Jan 1970 00:00:00 -0000
    > @@ -1,22 +0,0 @@
    > -From 12509c0f1ee8c22ae163017f0a5e7b8a9d983a17 Mon Sep 17 00:00:00 2001
    > -From: Nicolas Chauvet <kwizart@gmail.com>
    > -Date: Tue, 29 Jul 2025 11:42:35 +0200
    > -Subject: [PATCH] vulkan/utils_gen: fix for python 3.14
    > -
    > -Python 3.14+ has added more type checking. This patch fixes usage
    > -
    > -Fixes: https://github.com/haasn/libplacebo/issues/335
    > -
    > -Index: src/vulkan/utils_gen.py
    > ---- src/vulkan/utils_gen.py.orig
    > -+++ src/vulkan/utils_gen.py
    > -@@ -202,7 +202,8 @@ if __name__ == '__main__':
    > -     if not xmlfile or xmlfile == '':
    > -         xmlfile = find_registry_xml(datadir)
    > -
    > --    registry = VkXML(ET.parse(xmlfile))
    > -+    tree = ET.parse(xmlfile)
    > -+    registry = VkXML(tree.getroot())
    > -     with open(outfile, 'w') as f:
    > -         f.write(TEMPLATE.render(
    > -             vkresults = get_vkenum(registry, 'VkResult'),
    
    
  • Brad Smith:

    UPDATE: libplacebo 7.360.1