Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libplacebo for openSUSE:Factory checked in at 2026-03-14 22:21:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libplacebo (Old) and /work/SRC/openSUSE:Factory/.libplacebo.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libplacebo" Sat Mar 14 22:21:12 2026 rev:38 rq:1338803 version:7.360.1 Changes: -------- --- /work/SRC/openSUSE:Factory/libplacebo/libplacebo.changes 2026-02-12 17:25:45.659202571 +0100 +++ /work/SRC/openSUSE:Factory/.libplacebo.new.8177/libplacebo.changes 2026-03-14 22:21:48.355666432 +0100 @@ -1,0 +2,6 @@ +Fri Mar 13 19:58:52 UTC 2026 - llyyr <[email protected]> + +- Update libplacebo to version 7.360.1. See details in: + https://code.videolan.org/videolan/libplacebo/-/tags/v7.360.1 + +------------------------------------------------------------------- Old: ---- libplacebo-v7.360.0.tar.bz2 New: ---- libplacebo-v7.360.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libplacebo.spec ++++++ --- /var/tmp/diff_new_pack.PQj4Y1/_old 2026-03-14 22:21:48.955691271 +0100 +++ /var/tmp/diff_new_pack.PQj4Y1/_new 2026-03-14 22:21:48.955691271 +0100 @@ -18,7 +18,7 @@ %define sover 360 Name: libplacebo -Version: 7.%{sover}.0 +Version: 7.%{sover}.1 Release: 0 Summary: Library for GPU-accelerated video/image rendering primitives License: LGPL-2.1-or-later ++++++ libplacebo-v7.360.0.tar.bz2 -> libplacebo-v7.360.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libplacebo-v7.360.0/meson.build new/libplacebo-v7.360.1/meson.build --- old/libplacebo-v7.360.0/meson.build 2026-02-09 14:40:06.000000000 +0100 +++ new/libplacebo-v7.360.1/meson.build 2026-03-13 20:34:27.000000000 +0100 @@ -375,7 +375,7 @@ '1': '', }.keys().length(), # Fix version - 0) + 1) ) ### Version number and configuration diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libplacebo-v7.360.0/src/opengl/utils.c new/libplacebo-v7.360.1/src/opengl/utils.c --- old/libplacebo-v7.360.0/src/opengl/utils.c 2026-02-09 14:40:06.000000000 +0100 +++ new/libplacebo-v7.360.1/src/opengl/utils.c 2026-03-13 20:34:27.000000000 +0100 @@ -48,6 +48,7 @@ case GL_ALREADY_SIGNALED: case GL_CONDITION_SATISFIED: PL_ARRAY_REMOVE_AT(p->callbacks, 0); + gl->DeleteSync(cb.sync); cb.callback(cb.priv); continue; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libplacebo-v7.360.0/src/tests/bench.c new/libplacebo-v7.360.1/src/tests/bench.c --- old/libplacebo-v7.360.0/src/tests/bench.c 2026-02-09 14:40:06.000000000 +0100 +++ new/libplacebo-v7.360.1/src/tests/bench.c 2026-03-13 20:34:27.000000000 +0100 @@ -42,11 +42,11 @@ float *color = &data[(y * WIDTH + x) * COMPS]; float xx = x - xc, yy = y - yc; float r2 = xx * xx + yy * yy; - switch (COMPS) { - case 4: color[3] = 1.0; - case 3: color[2] = 0.5f * sinf(freqB * r2) + 0.5f;; - case 2: color[1] = 0.5f * sinf(freqG * r2) + 0.5f;; - case 1: color[0] = 0.5f * sinf(freqR * r2) + 0.5f;; + switch ((int) COMPS) { + case 4: color[3] = 1.0; /* fall through */ + case 3: color[2] = 0.5f * sinf(freqB * r2) + 0.5f; /* fall through */ + case 2: color[1] = 0.5f * sinf(freqG * r2) + 0.5f; /* fall through */ + case 1: color[0] = 0.5f * sinf(freqR * r2) + 0.5f; break; } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libplacebo-v7.360.0/src/vulkan/command.c new/libplacebo-v7.360.1/src/vulkan/command.c --- old/libplacebo-v7.360.0/src/vulkan/command.c 2026-02-09 14:40:06.000000000 +0100 +++ new/libplacebo-v7.360.1/src/vulkan/command.c 2026-03-13 20:34:27.000000000 +0100 @@ -22,6 +22,10 @@ static VkResult vk_cmd_poll(struct vk_cmd *cmd, uint64_t timeout) { struct vk_ctx *vk = cmd->pool->vk; + + if (cmd->fence) + return vk->WaitForFences(vk->dev, 1, &cmd->fence, VK_TRUE, timeout); + return vk->WaitSemaphores(vk->dev, &(VkSemaphoreWaitInfo) { .sType = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, .semaphoreCount = 1, @@ -64,6 +68,7 @@ struct vk_ctx *vk = cmd->pool->vk; vk_cmd_poll(cmd, UINT64_MAX); vk_cmd_reset(cmd); + vk->DestroyFence(vk->dev, cmd->fence, PL_VK_ALLOC); vk->FreeCommandBuffers(vk->dev, cmd->pool->pool, 1, &cmd->buf); pl_free(cmd); @@ -84,6 +89,17 @@ VK(vk->AllocateCommandBuffers(vk->dev, &ainfo, &cmd->buf)); + // Fences may be used to workaround buggy timeline semaphore support + // on certain platforms. See: + // <https://github.com/KhronosGroup/MoltenVK/issues/2697> + if (vk->driver_props.driverID == VK_DRIVER_ID_MOLTENVK) { + VkFenceCreateInfo finfo = { + .sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, + .flags = VK_FENCE_CREATE_SIGNALED_BIT, + }; + VK(vk->CreateFence(vk->dev, &finfo, PL_VK_ALLOC, &cmd->fence)); + PL_VK_NAME(FENCE, cmd->fence, "cmd"); + } return cmd; error: @@ -399,6 +415,9 @@ VK(vk->BeginCommandBuffer(cmd->buf, &binfo)); PL_VK_NAME_HANDLE(COMMAND_BUFFER, cmd->buf, PL_DEF(debug_tag, "vk_cmd")); + if (cmd->fence) + vk->ResetFences(vk->dev, 1, &cmd->fence); + pool->sync[cmd->qindex].value++; cmd->sync = pool->sync[cmd->qindex]; vk_cmd_sig(cmd, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, cmd->sync); @@ -509,7 +528,7 @@ pl_assert(pool->sync[cmd->qindex].value == cmd->sync.value); vk->lock_queue(vk->queue_ctx, pool->qf, cmd->qindex); - VkResult res = vk_queue_submit2(vk, cmd->queue, &sinfo, VK_NULL_HANDLE); + VkResult res = vk_queue_submit2(vk, cmd->queue, &sinfo, cmd->fence); vk->unlock_queue(vk->queue_ctx, pool->qf, cmd->qindex); PL_VK_ASSERT(res, "vkQueueSubmit2"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libplacebo-v7.360.0/src/vulkan/command.h new/libplacebo-v7.360.1/src/vulkan/command.h --- old/libplacebo-v7.360.0/src/vulkan/command.h 2026-02-09 14:40:06.000000000 +0100 +++ new/libplacebo-v7.360.1/src/vulkan/command.h 2026-03-13 20:34:27.000000000 +0100 @@ -50,6 +50,7 @@ VkQueue queue; // the submission queue (for recording/pending) int qindex; // the index of `queue` in `pool` VkCommandBuffer buf; // the command buffer itself + VkFence fence; // Only used on MoltenVK // Command dependencies and signals. Not owned by the vk_cmd. PL_ARRAY(VkSemaphoreSubmitInfo) deps; PL_ARRAY(VkSemaphoreSubmitInfo) sigs; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libplacebo-v7.360.0/src/vulkan/common.h new/libplacebo-v7.360.1/src/vulkan/common.h --- old/libplacebo-v7.360.0/src/vulkan/common.h 2026-02-09 14:40:06.000000000 +0100 +++ new/libplacebo-v7.360.1/src/vulkan/common.h 2026-03-13 20:34:27.000000000 +0100 @@ -69,6 +69,7 @@ VkInstance inst; VkPhysicalDevice physd; VkPhysicalDeviceProperties props; + VkPhysicalDeviceDriverProperties driver_props; VkPhysicalDeviceFeatures2 features; uint32_t api_ver; // device API version VkDevice dev; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libplacebo-v7.360.0/src/vulkan/context.c new/libplacebo-v7.360.1/src/vulkan/context.c --- old/libplacebo-v7.360.0/src/vulkan/context.c 2026-02-09 14:40:06.000000000 +0100 +++ new/libplacebo-v7.360.1/src/vulkan/context.c 2026-03-13 20:34:27.000000000 +0100 @@ -1540,6 +1540,7 @@ vk->GetPhysicalDeviceProperties2(vk->physd, &prop); vk->props = prop.properties; + vk->driver_props = driver_props; PL_INFO(vk, "Vulkan device properties:"); PL_INFO(vk, " Device Name: %s", prop.properties.deviceName); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libplacebo-v7.360.0/src/vulkan/swapchain.c new/libplacebo-v7.360.1/src/vulkan/swapchain.c --- old/libplacebo-v7.360.0/src/vulkan/swapchain.c 2026-02-09 14:40:06.000000000 +0100 +++ new/libplacebo-v7.360.1/src/vulkan/swapchain.c 2026-03-13 20:34:27.000000000 +0100 @@ -735,15 +735,15 @@ p->cur_height = sinfo.imageExtent.height; bool use_deferred_alloc = p->has_swapchain_maintenance1; -#ifdef _WIN32 - // NVIDIA's Windows drivers have a bug where using deferred memory allocation - // causes crashes in the driver. It's unclear why exactly it happens, seems - // to be driver internal thread, calling into d3d12core.dll. Might be some - // overlay or who knows, disable it for now. - // See for more info <https://github.com/mpv-player/mpv/issues/17318>. + + // NVIDIA's drivers have a bug where using deferred memory allocation + // causes crashes in the driver. It's unclear why exactly it happens, but + // the issue is consistent across Windows and Linux drivers. + // See for more info <https://github.com/mpv-player/mpv/issues/17318>, + // <https://github.com/mpv-player/mpv/issues/17543> if (vk->props.vendorID == VK_VENDOR_ID_NVIDIA) use_deferred_alloc = false; -#endif + if (use_deferred_alloc) sinfo.flags |= VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR;
