[FFmpeg-cvslog] vulkan_ffv1: fix PCM + cached symbol reader

Lynne git at videolan.org
Tue May 20 13:53:36 EEST 2025


ffmpeg | branch: master | Lynne <dev at lynne.ee> | Sat May  3 14:15:04 2025 +0200| [a24ea37228f4a01d1adcf366d98ad112becc3e32] | committer: Lynne

vulkan_ffv1: fix PCM + cached symbol reader

writeout_rgb requires that all subgroups are active.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a24ea37228f4a01d1adcf366d98ad112becc3e32
---

 libavcodec/vulkan/ffv1_dec.comp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/libavcodec/vulkan/ffv1_dec.comp b/libavcodec/vulkan/ffv1_dec.comp
index c74af4bf6a..e73b3f1dc0 100644
--- a/libavcodec/vulkan/ffv1_dec.comp
+++ b/libavcodec/vulkan/ffv1_dec.comp
@@ -56,6 +56,11 @@ int get_isymbol(inout RangeCoder c, uint state_off)
 
 void decode_line_pcm(inout SliceContext sc, ivec2 sp, int w, int y, int p, int bits)
 {
+#ifdef CACHED_SYMBOL_READER
+    if (gl_LocalInvocationID.x > 0)
+        return;
+#endif
+
 #ifndef RGB
     if (p > 0 && p < 3) {
         w >>= chroma_shift.x;
@@ -235,8 +240,6 @@ void decode_slice(inout SliceContext sc, const uint slice_idx)
     /* PCM coding */
 #ifndef GOLOMB
     if (sc.slice_coding_mode == 1) {
-        if (gl_LocalInvocationID.x > 0)
-            return;
 #ifndef RGB
         for (int p = 0; p < planes; p++) {
             int h = sc.slice_dim.y;



More information about the ffmpeg-cvslog mailing list