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;
 

Reply via email to