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.

Reply via email to