Projects
Multimedia
obs-vkcapture
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 3
View file
obs-vkcapture.changes
Changed
@@ -1,4 +1,12 @@ ------------------------------------------------------------------- +Wed Aug 27 14:51:00 UTC 2025 - Sqx. Flann <fl4nn@opensuse.org> + +- Update to version 1.5.3 + * Fixed GL capture with recent Wine versions + * Fixed dark image when used together with certain filters + * Disabled GL capture with zink + +------------------------------------------------------------------- Mon May 19 13:59:43 UTC 2025 - Sqx. Flann <fl4nn@opensuse.org> - Update to version 1.5.2
View file
obs-vkcapture.spec
Changed
@@ -1,5 +1,5 @@ Name: obs-vkcapture -Version: 1.5.2 +Version: 1.5.3 Release: 0 Summary: OBS plugin for Vulkan/OpenGL game capture on Linux License: GPL-2.0-only
View file
obs-vkcapture-1.5.2.tar.gz/CMakeLists.txt -> obs-vkcapture-1.5.3.tar.gz/CMakeLists.txt
Changed
@@ -2,7 +2,7 @@ project(obs-vkcapture LANGUAGES C - VERSION 1.5.2) + VERSION 1.5.3) include(GNUInstallDirs) find_package(Vulkan REQUIRED)
View file
obs-vkcapture-1.5.2.tar.gz/src/glinject.c -> obs-vkcapture-1.5.3.tar.gz/src/glinject.c
Changed
@@ -32,7 +32,8 @@ #include <stdlib.h> #include <inttypes.h> -static bool gl_seen = false; +static bool glx_seen = false; +static bool egl_seen = false; static bool vk_seen = false; static struct gl_funcs gl_f; static struct egl_funcs egl_f; @@ -108,8 +109,11 @@ static bool gl_init_funcs(bool glx) { - if (gl_seen) { - return glx ? glx_f.valid && x11_f.valid : egl_f.valid; + if (glx && glx_seen) { + return glx_f.valid && x11_f.valid; + } + if (!glx && egl_seen) { + return egl_f.valid; } hlog("Init %s %s (%s)", glx ? "GLX" : "EGL", PLUGIN_VERSION, @@ -119,11 +123,6 @@ "32bit"); #endif - gl_seen = true; - egl_f.valid = false; - glx_f.valid = false; - x11_f.valid = false; - vkcapture_glvulkan = getenv("OBS_VKCAPTURE_GLVULKAN"); capture_init(); @@ -132,6 +131,9 @@ data.glx = glx; if (glx) { + glx_seen = true; + glx_f.valid = false; + x11_f.valid = false; void *handle = dlopen("libGLX.so.0", RTLD_LAZY); if (!handle) { hlog("Failed to open libGLX.so.0"); @@ -180,6 +182,8 @@ GETXADDR(xcb_dri3_buffers_from_pixmap_offsets); x11_f.valid = true; } else { + egl_seen = true; + egl_f.valid = false; void *handle = dlopen("libEGL.so.1", RTLD_LAZY); if (!handle) { hlog("Failed to open libEGL.so.1"); @@ -827,7 +831,7 @@ if (data.glx) { // GLX on NVIDIA is all kinds of broken... const char *vendor = (const char*)gl_f.GetString(GL_VENDOR); - if (strcmp(vendor, "NVIDIA Corporation") == 0) { + if (vendor && strcmp(vendor, "NVIDIA Corporation") == 0) { return false; } } @@ -972,8 +976,34 @@ return true; } +static bool gl_capture_disabled() +{ + static int disabled = 0; + + if (disabled != 0) { + return disabled == 1; + } + + disabled = 1; + + // Always use Vulkan capture with zink + const char *renderer = (const char *)gl_f.GetString(GL_RENDERER); + if (renderer && strncmp(renderer, "zink", 4) == 0) { + hlog("GL capture disabled with zink"); + return true; + } + + disabled = -1; + return false; +} + static void gl_capture(void *display, void *surface) { + if (gl_capture_disabled()) { + data.valid = false; + return; + } + capture_update_socket(); if (capture_should_stop()) {
View file
obs-vkcapture-1.5.2.tar.gz/src/vkcapture.c -> obs-vkcapture-1.5.3.tar.gz/src/vkcapture.c
Changed
@@ -563,7 +563,8 @@ } const enum gs_color_space color_space = gs_get_color_space(); - const char *tech_name = "DrawSrgbDecompress"; + const bool linear_srgb = gs_get_linear_srgb(); + const char *tech_name = linear_srgb ? "DrawSrgbDecompress" : "Draw"; float multiplier = 1.f; if (color_space == GS_CS_709_EXTENDED) { @@ -573,7 +574,6 @@ effect = obs_get_base_effect(ctx->allow_transparency ? OBS_EFFECT_DEFAULT : OBS_EFFECT_OPAQUE); - const bool linear_srgb = gs_get_linear_srgb(); const bool previous = gs_framebuffer_srgb_enabled(); gs_enable_framebuffer_srgb(linear_srgb);
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.