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 <[email protected]>
@@ -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 <[email protected]>
+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'),