Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: mpv is crashing in my PC
To:
Theo Buehler <tb@theobuehler.org>
Cc:
Walter Alejandro Iglesias <wai@roquesor.com>, ports@openbsd.org, brad@comstyle.com
Date:
Tue, 23 Jun 2026 14:51:46 +0100

Download raw body.

Thread
  • Theo Buehler:

    mpv is crashing in my PC

  • On 2026/06/23 15:09, Theo Buehler wrote:
    > On Sun, Jun 21, 2026 at 11:56:55AM +0200, Walter Alejandro Iglesias wrote:
    > > Some times I can reproduce videos fine, some times I get screen
    > > corruption (horizontal lines or a black screen) followed by a core
    > > dump.
    > > 
    > > I guess this waring message I get while reproducing isn't related but,
    > > anyways:
    > > 
    > >   [vo/gpu-next/libplacebo] Masking `storable` from wrapped texture because the corresponding format 'bgra8' does not support PL_FMT_CAP_STORABLE
    > 
    > I can no longer crash mpv after downgrading to libplacebo-7.351.0p0
    > and rebuilding mpv. So it will most likely be the update to
    > libplacebo-7.360.1.
    > 
    > I don't have useful debug info beyond similar traces to those already
    > sent to the list. I won't have time to debug this in the coming days.
    > 
    
    Seems to be some memory corruption going on. Trips more easily for me
    with hwdec=vaapi, but I have seen some without.
    
    Should we backout for now? (Diff below).
    
    >...
    Some examples with vaapi:
    
    ● Video  --vid=1  (h264 624x352 23.9679 fps) [default]
    ● Audio  --aid=1  'Stereo' (vorbis 2ch 48000 Hz) [default]
    MESA-INTEL: warning: /usr/xenocara/lib/mesa/mk/libanv_common/../../src/intel/vulkan/anv_formats.c:834: FINISHME: support more multi-planar formats with DRM modifiers
    Using hardware decoding (vaapi).
    AO: [sndio] 48000Hz stereo 2ch s16
    VO: [gpu-next] 624x352 => 626x352 vaapi[nv12]
    [vo/gpu-next/libplacebo] Masking `storable` from wrapped texture because the corresponding format 'bgra8' does not support PL_FMT_CAP_STORABLE
    [vo/gpu-next/libplacebo] Masking `storable` from wrapped texture because the corresponding format 'bgra8' does not support PL_FMT_CAP_STORABLE
    [vo/gpu-next/libplacebo] Masking `storable` from wrapped texture because the corresponding format 'bgra8' does not support PL_FMT_CAP_STORABLE
    AV: 00:00:01 / 00:00:02 (94%) A-V:  0.000
    Exiting... (End of file)
    ld.so: mpv: free(): error: chunk info corrupted
    Killed
    
    
    ● Video  --vid=1  (h264 624x352 23.9679 fps) [default]
    ● Audio  --aid=1  'Stereo' (vorbis 2ch 48000 Hz) [default]
    MESA-INTEL: warning: /usr/xenocara/lib/mesa/mk/libanv_common/../../src/intel/vulkan/anv_formats.c:834: FINISHME: support more multi-planar formats with DRM modifiers
    Using hardware decoding (vaapi).
    AO: [sndio] 48000Hz stereo 2ch s16
    VO: [gpu-next] 624x352 => 626x352 vaapi[nv12]
    [vo/gpu-next/libplacebo] Masking `storable` from wrapped texture because the corresponding format 'bgra8' does not support PL_FMT_CAP_STORABLE
    mpv(33209) in realloc(): write to free mem 0x4638d94b000[840..847]@65536
    Abort trap (core dumped)
    
    #0  thrkill () at /tmp/-:2
    #1  0x9c5511c37a4761b3 in ?? ()
    #2  0x000004640c51bd4b in _libc_abort () at /usr/src/lib/libc/stdlib/abort.c:51
    #3  0x000004640c50d4e4 in wrterror (d=0x46414bd6e30, msg=0x4640c49fb05 "write to free mem %p[%zu..%zu]@%zu") at /usr/src/lib/libc/stdlib/malloc.c:378
    #4  0x000004640c512f81 in validate_junk (pool=<optimized out>, p=<optimized out>, argsz=<optimized out>) at /usr/src/lib/libc/stdlib/malloc.c:781
    #5  0x000004640c512f81 in map (d=0x46414bd6e30, sz=65536, zero_fill=0) from /usr/lib/libc.so.103.0
    #6  0x000004640c50d8bd in omalloc (pool=0x46414bd6e30, sz=<optimized out>, zero_fill=0) at /usr/src/lib/libc/stdlib/malloc.c:1327
    #7  0x000004640c50f5f1 in orealloc (p=0x0, newsz=65536, argpool=<optimized out>) at /usr/src/lib/libc/stdlib/malloc.c:1787
    #8  _libc_realloc (ptr=0x0, size=65536) at /usr/src/lib/libc/stdlib/malloc.c:1953
    #9  0x000004641378190b in deflateInit2_ (strm=0x4643e1d55d0, level=9, method=<optimized out>, windowBits=<optimized out>, memLevel=8, strategy=0, version=0x463b8874ad5 "1.3.2", stream_size=112) at /usr/src/lib/libz/deflate.c:501
    #10 0x0000046413781696 in deflateInit_ (strm=0x0, level=6, version=0x4640c4bd419 <_thread_sys_sigprocmask+41> "r\vH\205\322t\002\211\0021\300\353\017d\211\004% ", stream_size=0) at /usr/src/lib/libz/deflate.c:377
    #11 0x00000463b962ce32 in ?? () from /usr/X11R6/lib/libvulkan_intel.so
    #12 0x00000463b962822a in ?? () from /usr/X11R6/lib/libvulkan_intel.so
    #13 0x00000463b9628b47 in ?? () from /usr/X11R6/lib/libvulkan_intel.so
    #14 0x00000463b9630efb in ?? () from /usr/X11R6/lib/libvulkan_intel.so
    #15 0x00000463b96e34ac in ?? () from /usr/X11R6/lib/libvulkan_intel.so
    #16 0x00000463e295e3f2 in _rthread_start (v=0x0) at /usr/src/lib/librthread/rthread.c:99
    #17 0x000004640c52f75a in __tfork_thread () at /usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87
    
    ● Video  --vid=1  (h264 624x352 23.9679 fps) [default]
    ● Audio  --aid=1  'Stereo' (vorbis 2ch 48000 Hz) [default]
    MESA-INTEL: warning: /usr/xenocara/lib/mesa/mk/libanv_common/../../src/intel/vulkan/anv_formats.c:834: FINISHME: support more multi-planar formats with DRM modifiers
    Using hardware decoding (vaapi).
    AO: [sndio] 48000Hz stereo 2ch s16
    VO: [gpu-next] 624x352 => 626x352 vaapi[nv12]
    [vo/gpu-next/libplacebo] Masking `storable` from wrapped texture because the corresponding format 'bgra8' does not support PL_FMT_CAP_STORABLE
    [vo/gpu-next/libplacebo] Masking `storable` from wrapped texture because the corresponding format 'bgra8' does not support PL_FMT_CAP_STORABLE
    [vo/gpu-next/libplacebo] Masking `storable` from wrapped texture because the corresponding format 'bgra8' does not support PL_FMT_CAP_STORABLE
    AV: 00:00:00 / 00:00:02 (2%) A-V: -0.000mpv(57212) in malloc(): write to free mem 0xe4ef5ca9600[24..31]@256
    Abort trap (core dumped) 
    
    (gdb) bt
    #0  thrkill () at /tmp/-:2
    #1  0xa7044de1ea0c780d in ?? ()
    #2  0x00000e4ef8df1d4b in _libc_abort () at /usr/src/lib/libc/stdlib/abort.c:51
    #3  0x00000e4ef8de34e4 in wrterror (d=0xe4efcaf8948, msg=0xe4ef8d75b05 "write to free mem %p[%zu..%zu]@%zu") at /usr/src/lib/libc/stdlib/malloc.c:378
    #4  0x00000e4ef8de4321 in validate_junk (pool=0xe4efcaf8948, p=0xe4ef5ca9600, argsz=0) at /usr/src/lib/libc/stdlib/malloc.c:781
    #5  malloc_bytes (d=0xe4efcaf8948, size=240) at /usr/src/lib/libc/stdlib/malloc.c:1219
    #6  omalloc (pool=0xe4efcaf8948, sz=240, zero_fill=0) at /usr/src/lib/libc/stdlib/malloc.c:1373
    #7  0x00000e4ef8de3794 in _libc_malloc (size=240) at /usr/src/lib/libc/stdlib/malloc.c:1527
    #8  0x00000e4fc2df555f in MosUtilities::MosAllocAndZeroMemory (size=0) at /usr/obj/ports/intel-media-driver-26.1.5/media-driver-intel-media-26.1.5/media_softlet/agnostic/common/os/mos_utilities_next.cpp:309
    #9  0x00000e4fc2ff05dd in DdiMediaDecode::CreateBuffer (this=0xe4f1056e500, type=VAIQMatrixBufferType, size=<optimized out>, numElements=1, data=0xe4f80d42a90, bufId=0xe4f06781504)
        at /usr/obj/ports/intel-media-driver-26.1.5/media-driver-intel-media-26.1.5/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp:998
    #10 0x00000e4fc2ff2adc in DdiDecode_CreateBuffer (ctx=<optimized out>, decCtx=0xe4ecc18a000, type=VAMacroblockParameterBufferType, size=0, numElements=4175502155, data=0xe4f80d420d0, bufId=0xe4f06781504)
        at /usr/obj/ports/intel-media-driver-26.1.5/media-driver-intel-media-26.1.5/media_driver/linux/common/codec/ddi/media_libva_decoder.cpp:153
    #11 0x00000e4fc2fd83d9 in DdiMedia_CreateBuffer (ctx=0xe4f8ab6a200, context=268435456, type=VAIQMatrixBufferType, size=240, num_elements=1, data=0xe4f80d42a90, bufId=<optimized out>)
        at /usr/obj/ports/intel-media-driver-26.1.5/media-driver-intel-media-26.1.5/media_driver/linux/common/ddi/media_libva.cpp:3254
    #12 0x00000e4f92686cc3 in vaCreateBuffer () from /usr/X11R6/lib/libva.so.2.23
    #13 0x00000e4ebbad39b9 in ff_vaapi_decode_make_param_buffer () from /usr/local/lib/libavcodec.so.27.2
    #14 0x00000e4ebbae34c9 in vaapi_h264_start_frame () from /usr/local/lib/libavcodec.so.27.2
    #15 0x00000e4ebb672c76 in h264_decode_frame () from /usr/local/lib/libavcodec.so.27.2
    #16 0x00000e4ebb5353b1 in ff_decode_receive_frame_internal () from /usr/local/lib/libavcodec.so.27.2
    #17 0x00000e4ebb995e64 in frame_worker_thread () from /usr/local/lib/libavcodec.so.27.2
    #18 0x00000e4fab9673f2 in _rthread_start (v=0x0) at /usr/src/lib/librthread/rthread.c:99
    #19 0x00000e4ef8e0575a in __tfork_thread () at /usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87
    
    
    >...
    
    Have seen this without hwdec=vaapi:
    
    #0  0x0000087fb6c25cad in glslang::TSymbolTableLevel::findFunctionNameList(std::__1::basic_string<char, std::__1::char_traits<char>, glslang::pool_allocator<char> > const&, glslang::TVector<glslang::TFunction const*>&) ()
       from /usr/local/lib/libglslang.so.10.0
    #1  0x0000087fb6bf1095 in glslang::TParseContext::handleVariable(glslang::TSourceLoc const&, glslang::TSymbol*, std::__1::basic_string<char, std::__1::char_traits<char>, glslang::pool_allocator<char> > const*) ()
       from /usr/local/lib/libglslang.so.10.0
    #2  0x0000087fb6b6acfe in yyparse(glslang::TParseContext*) () from /usr/local/lib/libglslang.so.10.0
    #3  0x0000087fb6bef216 in glslang::TParseContext::parseShaderStrings(glslang::TPpContext&, glslang::TInputScanner&, bool) () from /usr/local/lib/libglslang.so.10.0
    #4  0x0000087fb6c30865 in (anonymous namespace)::CompileDeferred(TCompiler*, char const* const*, int, int const*, char const* const*, char const*, EShOptimizationLevel, TBuiltInResource const*, int, EProfile, bool, int, bool, EShMessages, glslang::TIntermediate&, glslang::TShader::Includer&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, glslang::TEnvironment*, bool) () from /usr/local/lib/libglslang.so.10.0
    #5  0x0000087fb6c3236f in glslang::TShader::parse(TBuiltInResource const*, int, EProfile, bool, bool, EShMessages, glslang::TShader::Includer&) () from /usr/local/lib/libglslang.so.10.0
    #6  0x0000087f8c3e9692 in shaderc_util::Compiler::Compile(shaderc_util::string_piece const&, EShLanguage, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*, std::__1::function<EShLanguage (std::__1::basic_ostream<char, std::__1::char_traits<char> >*, shaderc_util::string_piece const&)> const&, shaderc_util::CountingIncluder&, shaderc_util::Compiler::OutputType, std::__1::basic_ostream<char, std::__1::char_traits<char> >*, unsigned long*, unsigned long*) const () from /usr/local/lib/libshaderc_shared.so.1.1
    #7  0x0000087f8c3e4ca1 in (anonymous namespace)::CompileToSpecifiedOutputType(shaderc_compiler*, char const*, unsigned long, shaderc_shader_kind, char const*, char const*, shaderc_compile_options*, shaderc_util::Compiler::OutputType) ()
       from /usr/local/lib/libshaderc_shared.so.1.1
    #8  0x0000087f8c3e4940 in shaderc_compile_into_spv () from /usr/local/lib/libshaderc_shared.so.1.1
    #9  0x0000087f66bc3d03 in shaderc_compile (spirv=0x87fe22f5750, alloc=0x8802e952a80, glsl_ver=..., stage=GLSL_SHADER_FRAGMENT,
        shader=0x87fc6e53020 "#version 450\n#extension GL_KHR_shader_subgroup_basic : enable \n#extension GL_KHR_shader_subgroup_vote : enable \n#extension GL_KHR_shader_subgroup_arithmetic : enable \n#extension GL_KHR_shader_subgroup"...)
        at ../libplacebo-7.360.1/src/glsl/spirv_shaderc.c:143
    #10 0x0000087f66bfb17e in vk_compile_glsl (gpu=0x8802e978320, alloc=0x8802e952a80, stage=GLSL_SHADER_FRAGMENT,
        shader=0x87fc6e53020 "#version 450\n#extension GL_KHR_shader_subgroup_basic : enable \n#extension GL_KHR_shader_subgroup_vote : enable \n#extension GL_KHR_shader_subgroup_arithmetic : enable \n#extension GL_KHR_shader_subgroup"...,
        out_spirv=0x88025c23090) at ../libplacebo-7.360.1/src/vulkan/gpu_pass.c:111
    #11 0x0000087f66bfa488 in vk_pass_create (gpu=0x8802e978320, params=0x88025c23340) at ../libplacebo-7.360.1/src/vulkan/gpu_pass.c:461
    #12 0x0000087f66baf2cd in pl_pass_create (gpu=0x8802e978320, params=0x88025c23340) at ../libplacebo-7.360.1/src/gpu.c:1086
    #13 0x0000087f66b9e546 in finalize_pass (dp=0x88044517920, sh=0x87f85849a20, target=<optimized out>, vert_idx=<optimized out>, blend=<optimized out>, load=<optimized out>, vparams=0x0, proj=0x0)
        at ../libplacebo-7.360.1/src/dispatch.c:926
    #14 0x0000087f66b9bdf9 in pl_dispatch_finish (dp=0x88044517920, params=0x88025c23680) at ../libplacebo-7.360.1/src/dispatch.c:1299
    #15 0x0000087f66b55054 in pass_output_target (pass=0x88025c23968) at src/renderer.c:2999
    #16 0x0000087f66b4f324 in pl_render_image (rr=0x87f858472a0, pimage=0x8802e96b480, ptarget=0x88025c27a08, params=<optimized out>) at src/renderer.c:3525
    #17 0x0000087f66b5767a in pl_render_image_mix (rr=0x87f858472a0, images=<optimized out>, ptarget=0x88025c27a08, params=0x88025c278b8) at src/renderer.c:4061
    #18 0x0000087d6556ff79 in draw_frame (vo=0x87fb34bb7d0, frame=0x8802e977a50) at ../mpv-0.41.0/video/out/vo_gpu_next.c:1407
    #19 0x0000087d6555f294 in render_frame (vo=0x87fb34bb7d0) at ../mpv-0.41.0/video/out/vo.c:1009
    #20 vo_thread (ptr=0x87fb34bb7d0) at ../mpv-0.41.0/video/out/vo.c:1145
    #21 0x000008805f0b03f2 in _rthread_start (v=0x0) at /usr/src/lib/librthread/rthread.c:99
    #22 0x000008803a5de75a in __tfork_thread () at /usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:87
    
    
    
    
    
    Index: Makefile
    ===================================================================
    RCS file: /cvs/ports/graphics/libplacebo/Makefile,v
    diff -u -p -r1.16 Makefile
    --- Makefile	17 Jun 2026 23:07:52 -0000	1.16
    +++ Makefile	23 Jun 2026 13:51:04 -0000
    @@ -2,10 +2,11 @@ COMMENT=	reusable library for GPU-accele
     
     GH_ACCOUNT=	haasn
     GH_PROJECT=	libplacebo
    -GH_TAGNAME=	v7.360.1
    +GH_TAGNAME=	v7.351.0
    +EPOCH=		0
     CATEGORIES=	graphics
     
    -SHARED_LIBS=	placebo	10.0
    +SHARED_LIBS=	placebo	11.0
     
     MAINTAINER=	Brad Smith <brad@comstyle.com>
     
    @@ -18,9 +19,10 @@ WANTLIB +=	execinfo lcms2 m pthread shad
     WANTLIB +=	GL epoxy
     
     MODULES=	devel/meson
    +DEBUG_PACKAGES=	${BUILD_PACKAGES}
     
     BUILD_DEPENDS=	devel/fast-float \
    -		graphics/glad \
    +		graphics/glad>=2.0.6 \
     		graphics/vulkan-headers
     
     LIB_DEPENDS=	graphics/lcms2 \
    Index: distinfo
    ===================================================================
    RCS file: /cvs/ports/graphics/libplacebo/distinfo,v
    diff -u -p -r1.12 distinfo
    --- distinfo	17 Jun 2026 23:07:52 -0000	1.12
    +++ distinfo	23 Jun 2026 13:51:04 -0000
    @@ -1,2 +1,2 @@
    -SHA256 (libplacebo-7.360.1.tar.gz) = 0F/fkL6i9inqotEV6Qn9NWOIrGOeVPd7h6AYptdiJL0=
    -SIZE (libplacebo-7.360.1.tar.gz) = 862269
    +SHA256 (libplacebo-7.351.0.tar.gz) = cWlUUB2bduaQb93aZv68WIZJPQZz3SZeweblL05c18Y=
    +SIZE (libplacebo-7.351.0.tar.gz) = 848715
    Index: patches/patch-src_glsl_meson_build
    ===================================================================
    RCS file: patches/patch-src_glsl_meson_build
    diff -N patches/patch-src_glsl_meson_build
    --- /dev/null	1 Jan 1970 00:00:00 -0000
    +++ patches/patch-src_glsl_meson_build	23 Jun 2026 13:51:04 -0000
    @@ -0,0 +1,21 @@
    +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
    --- /dev/null	1 Jan 1970 00:00:00 -0000
    +++ patches/patch-src_glsl_spirv_shaderc_c	23 Jun 2026 13:51:04 -0000
    @@ -0,0 +1,50 @@
    +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
    --- /dev/null	1 Jan 1970 00:00:00 -0000
    +++ patches/patch-src_vulkan_utils_gen_py	23 Jun 2026 13:51:04 -0000
    @@ -0,0 +1,22 @@
    +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'),
    
    
  • Theo Buehler:

    mpv is crashing in my PC