På fredag 17. juli 2026 kl. 20:04, skrev Daniil Ryvkin <[email protected]>:
> > Added kf6-extra-cmake-modules to BUILD_DEPENDS. Removed MESSAGE, > moved sysctl info to pkg-readme with actual commands, description > of what happens if not set, and the FAQ URL. > Built/tested on current/amd64 with privsep. $ cd /usr/ports/x11/obs-studio/ && make clean=all clean && make build package test ; make port-lib-depends-check check-shlib-syms No regression tests for obs-studio-32.1.2 /usr/local/lib/libobs-frontend-api.so.0.0 --> /usr/ports/pobj/obs-studio-32.1.2/fake-amd64/usr/local/lib/libobs-frontend-api.so.0.0 No dynamic export changes /usr/local/lib/libobs-opengl.so.0.0 --> /usr/ports/pobj/obs-studio-32.1.2/fake-amd64/usr/local/lib/libobs-opengl.so.0.0 No dynamic export changes /usr/local/lib/libobs-scripting.so.0.0 --> /usr/ports/pobj/obs-studio-32.1.2/fake-amd64/usr/local/lib/libobs-scripting.so.0.0 No dynamic export changes /usr/local/lib/libobs.so.0.0 --> /usr/ports/pobj/obs-studio-32.1.2/fake-amd64/usr/local/lib/libobs.so.0.0 No dynamic export changes -- # TRUSTED_PKG_PATH=/usr/ports/packages/amd64/all/ pkg_add -Dsnap -Dinstalled -r obs-studio obs-studio-32.1.2->32.1.2: ok -- Used it on sway, but like citra, dolphin-emu, pcsx2 and other qt6 ports that need gl acceleration, it will need a '--platform xcb' to run on wayland with xwayland and therefore gl acceleration. Some applications can do (very) slow software acceleration like dolphin-emu. I should ask @landry if their patch to stop explicitly disabling wayland in base sets is the same and/or if that gets gl acceleration working. https://marc.info/?l=openbsd-tech&m=176304756414309&w=2 // This is what obs will default to; changed to English $ LC_ALL=en_CA.UTF-8 obs --platform wayland info: Platform: Wayland info: Physical Cores: 2, Logical Cores: 2 info: Physical Memory: 16223MB Total info: Kernel Version: OpenBSD 8.0 info: Qt Version: 6.11.1 (runtime), 6.11.1 (compiled) info: Portable mode: false info: OBS 32.1.2 (openbsd) info: --------------------------------- info: --------------------------------- info: audio settings reset: samples per sec: 48000 speakers: 2 max buffering: 960 milliseconds buffering type: dynamically increasing info: --------------------------------- info: Initializing OpenGL... info: Using EGL/Wayland error: eglGetDisplay failed error: device_create (GL) failed error: Failed to initialize video. Your GPU may not be supported, or your graphics drivers may need to be updated. warning: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: Connection already associated with an application ID") info: Freeing OBS context data (process:94594): GLib-CRITICAL **: 23:06:49.431: g_main_context_pop_thread_default: assertion 'stack != NULL' failed (process:94594): GLib-CRITICAL **: 23:06:49.432: g_main_context_pop_thread_default: assertion 'stack != NULL' failed (process:94594): GLib-CRITICAL **: 23:06:49.434: g_main_context_pop_thread_default: assertion 'stack != NULL' failed (process:94594): GLib-CRITICAL **: 23:06:49.435: g_main_context_pop_thread_default: assertion 'stack != NULL' failed info: == Profiler Results ============================= info: run_program_init: 4512.76 ms info: ┣OBSApp::AppInit: 116.592 ms info: ┃ ┗OBSApp::InitLocale: 9.776 ms info: ┗OBSApp::OBSInit: 471.018 ms info: ┣obs_startup: 8.029 ms info: ┗OBSBasic::OBSInit: 11.126 ms info: ┣OBSBasic::InitBasicConfig: 7.174 ms info: ┣OBSBasic::ResetAudio: 0.58 ms info: ┗OBSBasic::ResetVideo: 2.844 ms info: ┗obs_init_graphics: 2.758 ms info: obs_hotkey_thread(25 ms): min=0 ms, median=0 ms, max=0.001 ms, 99th percentile=0.001 ms, 100% below 25 ms info: audio_thread(Audio): min=0.007 ms, median=0.013 ms, max=3.681 ms, 99th percentile=0.186 ms info: ================================================= info: == Profiler Time Between Calls ================== info: obs_hotkey_thread(25 ms): min=38.946 ms, median=39.998 ms, max=41.116 ms, 0% within ±2% of 25 ms (0% lower, 100% higher) info: ================================================= info: Number of memory leaks: 592 (process:94594): GLib-CRITICAL **: 23:06:49.516: g_main_context_pop_thread_default: assertion 'stack != NULL' failed -- // Gl breaks, it matters not if wayland is disabled at build time or not, // will still default to this on niri, plasma-wayland, wlroots based // wm/DE or other arcan/wayland environment // Runs it in xwayland or X11 baremetal if on xenocara $ LC_ALL=en_CA.UTF-8 obs --platform xcb info: Using EGL/X11 info: Physical Cores: 2, Logical Cores: 2 info: Physical Memory: 16223MB Total info: Kernel Version: OpenBSD 8.0 info: Window System: X11.0, Vendor: The X.Org Foundation, Version: 1.24.1 info: Qt Version: 6.11.1 (runtime), 6.11.1 (compiled) info: Portable mode: false info: OBS 32.1.2 (openbsd) info: --------------------------------- info: --------------------------------- info: audio settings reset: samples per sec: 48000 speakers: 2 max buffering: 960 milliseconds buffering type: dynamically increasing info: --------------------------------- info: Initializing OpenGL... info: Loading up OpenGL on adapter Intel Mesa Intel(R) HD Graphics 4000 (IVB GT2) info: OpenGL loaded successfully, version 4.2 (Core Profile) Mesa 25.0.7, shading language 4.20 info: --------------------------------- info: video settings reset: base resolution: 1920x1080 output resolution: 640x360 downscale filter: Bicubic fps: 30/1 format: NV12 YUV mode: Rec. 709/Partial info: NV12 texture support enabled info: P010 texture support not available info: --------------------------------- info: [pipewire] No capture sources available warning: v4l2loopback not installed, virtual camera not registered info: VAAPI: API version 1.23 info: FFmpeg VAAPI H264 encoding supported error: VAAPI: Failed to open device '/dev/dri/renderD129' error: VAAPI: Failed to open device '/dev/dri/renderD130' error: VAAPI: Failed to open device '/dev/dri/renderD131' info: FFmpeg VAAPI AV1 encoding not supported error: VAAPI: Failed to open device '/dev/dri/renderD129' error: VAAPI: Failed to open device '/dev/dri/renderD130' error: VAAPI: Failed to open device '/dev/dri/renderD131' info: FFmpeg VAAPI HEVC encoding not supported info: --------------------------------- info: Loaded Modules: info: text-freetype2.so info: sndio.so info: rtmp-services.so info: obs-x264.so info: obs-transitions.so info: obs-outputs.so info: obs-filters.so info: obs-ffmpeg.so info: linux-v4l2.so info: linux-pipewire.so info: linux-jack.so info: linux-capture.so info: image-source.so info: frontend-tools.so info: --------------------------------- info: --------------------------------- info: Available Encoders: info: Video Encoders: info: - ffmpeg_svt_av1 (SVT-AV1) info: - ffmpeg_aom_av1 (AOM AV1) info: - ffmpeg_vaapi_tex (FFmpeg VAAPI H.264) info: - obs_x264 (x264) info: Audio Encoders: info: - ffmpeg_aac (FFmpeg AAC) info: - ffmpeg_opus (FFmpeg Opus) info: - ffmpeg_pcm_s16le (FFmpeg PCM (16-bit)) info: - ffmpeg_pcm_s24le (FFmpeg PCM (24-bit)) info: - ffmpeg_pcm_f32le (FFmpeg PCM (32-bit float)) info: - ffmpeg_alac (FFmpeg ALAC (24-bit)) info: - ffmpeg_flac (FFmpeg FLAC (16-bit)) info: ==== Startup complete =============================================== warning: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: Connection already associated with an application ID") info: All scene data cleared info: ------------------------------------------------ error: obs-data.c: [obs_data_create_from_json] Failed reading json string (1): '[' or '{' expected near end of file info: sndio-input: sndio_apply: after initial sio_setpar(): appbufsz=19200 bps=2 info: xshm-input: Geometry 1920x1080 @ 1366,0 info: Switched to scene 'Scene' info: ------------------------------------------------ info: Loaded scenes: info: - scene 'Scene': info: - source: 'Video Capture Device (PipeWire) (BETA)' (pipewire-camera-source) info: - source: 'Sndio input client' (sndio_output_capture) info: - source: 'Display Capture (XSHM)' (xshm_input_v2) info: ------------------------------------------------ info: adding 298 milliseconds of audio buffering, total audio buffering is now 298 milliseconds (source: Sndio input client) info: [camera-portal] Successfully accessed cameras error: [camera-portal] Error retrieving PipeWire fd: GDBus.Error:org.freedesktop.portal.Error.Failed: Failed to open PipeWire remote: Couldn't connect to PipeWire info: ==== Shutting down ================================================== info: sndio-input: sndio_thread: exiting upon receiving EOF at IPC socket info: All scene data cleared info: ------------------------------------------------ error: Tried to call obs_frontend_remove_event_callback with no callbacks! info: [Scripting] Total detached callbacks: 0 info: Freeing OBS context data (process:27744): GLib-CRITICAL **: 02:03:41.452: g_main_context_pop_thread_default: assertion 'stack != NULL' failed (process:27744): GLib-CRITICAL **: 02:03:41.453: g_main_context_pop_thread_default: assertion 'stack != NULL' failed (process:27744): GLib-CRITICAL **: 02:03:41.454: g_main_context_pop_thread_default: assertion 'stack != NULL' failed info: == Profiler Results ============================= info: run_program_init: 6345.07 ms info: ┣OBSApp::AppInit: 151.376 ms info: ┃ ┗OBSApp::InitLocale: 14.995 ms info: ┗OBSApp::OBSInit: 2718.9 ms info: ┣obs_startup: 3.921 ms info: ┗OBSBasic::OBSInit: 2384.91 ms info: ┣OBSBasic::InitBasicConfig: 106.668 ms info: ┣OBSBasic::ResetAudio: 0.623 ms info: ┣OBSBasic::ResetVideo: 199.991 ms info: ┃ ┗obs_init_graphics: 188.246 ms info: ┃ ┗shader compilation: 101.745 ms info: ┣OBSBasic::InitOBSCallbacks: 0.049 ms info: ┣OBSBasic::InitHotkeys: 0.109 ms info: ┣obs_load_all_modules2: 576.282 ms info: ┃ ┣obs_init_module(frontend-tools.so): 471.453 ms info: ┃ ┣obs_init_module(image-source.so): 0.025 ms info: ┃ ┣obs_init_module(linux-capture.so): 1.217 ms info: ┃ ┣obs_init_module(linux-jack.so): 0.003 ms info: ┃ ┣obs_init_module(linux-pipewire.so): 46.554 ms info: ┃ ┣obs_init_module(linux-v4l2.so): 0.245 ms info: ┃ ┣obs_init_module(obs-ffmpeg.so): 31.586 ms info: ┃ ┣obs_init_module(obs-filters.so): 0.051 ms info: ┃ ┣obs_init_module(obs-outputs.so): 0.008 ms info: ┃ ┣obs_init_module(obs-transitions.so): 0.011 ms info: ┃ ┣obs_init_module(obs-x264.so): 0.002 ms info: ┃ ┣obs_init_module(rtmp-services.so): 0.026 ms info: ┃ ┣obs_init_module(sndio.so): 0.003 ms info: ┃ ┗obs_init_module(text-freetype2.so): 0.07 ms info: ┣OBSBasic::InitService: 6.517 ms info: ┣OBSBasic::ResetOutputs: 0.942 ms info: ┣OBSBasic::CreateHotkeys: 0.129 ms info: ┣OBSBasic::InitPrimitives: 0.58 ms info: ┗OBSBasic::Load: 194.956 ms info: obs_hotkey_thread(25 ms): min=0.143 ms, median=0.461 ms, max=152.915 ms, 99th percentile=51.955 ms, 97.3214% below 25 ms info: audio_thread(Audio): min=0.008 ms, median=0.075 ms, max=298.85 ms, 99th percentile=3.034 ms info: obs_graphics_thread(33.3333 ms): min=0.018 ms, median=4.831 ms, max=323.412 ms, 99th percentile=66.275 ms, 97.1888% below 33.333 ms info: ┣tick_sources: min=0.001 ms, median=3.792 ms, max=226.103 ms, 99th percentile=65.94 ms info: ┣output_frame: min=0.009 ms, median=0.261 ms, max=97.283 ms, 99th percentile=16.707 ms info: ┃ ┗gs_context(video->graphics): min=0.009 ms, median=0.259 ms, max=96.841 ms, 99th percentile=16.602 ms info: ┃ ┣render_video: min=0.005 ms, median=0.109 ms, max=96.634 ms, 99th percentile=4.466 ms info: ┃ ┃ ┗render_main_texture: min=0.004 ms, median=0.106 ms, max=96.629 ms, 99th percentile=4.46 ms info: ┃ ┗gs_flush: min=0.001 ms, median=0.122 ms, max=50.679 ms, 99th percentile=1.996 ms info: ┗render_displays: min=0.002 ms, median=0.441 ms, max=11.289 ms, 99th percentile=6.648 ms info: ================================================= info: == Profiler Time Between Calls ================== info: obs_hotkey_thread(25 ms): min=33.695 ms, median=40 ms, max=189.928 ms, 0% within ±2% of 25 ms (0% lower, 100% higher) info: obs_graphics_thread(33.3333 ms): min=5.233 ms, median=30.205 ms, max=323.425 ms, 1.20968% within ±2% of 33.333 ms (61.2903% lower, 37.5% higher) info: ================================================= info: Number of memory leaks: 0 -- Since qt6 enables/needs wayland out of the box and the application will default to --platform wayland whether disabled at the program build time or not, I think keeping wayland on in config flags is better for continued testing. A lot of qt6+ stuff keep increasingly being dependent on wayland libraries, like lxqt, kde-gear, or other updated qt applications. And since kde-plasma 7.8.x will go full wayland with xwayland(only baremetal X11 support is removed), I think keeping this on in projects that have this enabled by default lessens maintenance. Less guessing which part of the stack has wayland or not, when upstream supports both baremetal xenocara/X11 and wayland or wayland only with xwayland{,-satellite} backwards compat. I argue that having part of the stack X11 only and others xenocara(X11)/wayland/arcan(currently broken) enabled makes it hard to diagnose problems that upstream doesn't really test for? The decision is for the ports and base devs to decide of course, just my input. Maybe rsadowski will do sonicDE or keep kde-plasma 6.7.6 with patches going forward instead? I will note my machine has incomplete vulkan support, so maybe others with more recent computers have this working? Though I think libva and {vulkan,spirv}* have wayland explicitly disabled too. Otherwise both devel/simde and this built fine. Obs-studio runs like noted above with '--xcb platform' in the light testing I did. I'm not well versed in this application though. The README reads well. I see no nits or grammer/spelling issues either. Not sure if this was too noisy of an email. Sorry if I added too much. TLDR: (Obs-studio and simde) It builds, looks fine. Thoughts on stack above. Hopes this helps. I know this is a popular application and many will be happy having this in tree. Thanks for the port and everyone's efforts.
