This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit e88d4ef718669fe7b6bee47bd6c886267fb0251a
Author:     Lynne <[email protected]>
AuthorDate: Wed Mar 4 12:45:18 2026 +0100
Commit:     Lynne <[email protected]>
CommitDate: Tue Mar 24 15:21:17 2026 +0100

    swscale/vulkan: take order_src/order_dst into account
    
    This fixes rgba/gbrap/bgra conversions.
    
    Sponsored-by: Sovereign Tech Fund
---
 libswscale/vulkan/ops.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/libswscale/vulkan/ops.c b/libswscale/vulkan/ops.c
index 385edb0cd0..7a6c53a5a5 100644
--- a/libswscale/vulkan/ops.c
+++ b/libswscale/vulkan/ops.c
@@ -244,12 +244,15 @@ static int add_ops_glsl(VulkanPriv *p, FFVulkanOpsCtx *s,
             if (op->rw.frac) {
                 return AVERROR(ENOTSUP);
             } else if (op->rw.packed) {
-                GLSLF(1, %s = %s(imageLoad(src_img[0], pos));                  
,
-                      type_name, type_v);
+                GLSLF(1, %s = %s(imageLoad(src_img[0], pos)).%c%c%c%c;         
,
+                      type_name, type_v, "xyzw"[ops->order_src.in[0]],
+                                         "xyzw"[ops->order_src.in[1]],
+                                         "xyzw"[ops->order_src.in[2]],
+                                         "xyzw"[ops->order_src.in[3]]);
             } else {
                 for (int i = 0; i < (op->rw.packed ? 1 : op->rw.elems); i++)
                     GLSLF(1, %s.%c = %s(imageLoad(src_img[%i], pos)[0]);      ,
-                          type_name, "xyzw"[i], type_s, i);
+                          type_name, "xyzw"[i], type_s, ops->order_src.in[i]);
             }
             break;
         }
@@ -257,12 +260,15 @@ static int add_ops_glsl(VulkanPriv *p, FFVulkanOpsCtx *s,
             if (op->rw.frac) {
                 return AVERROR(ENOTSUP);
             } else if (op->rw.packed) {
-                GLSLF(1, imageStore(dst_img[0], pos, %s(%s));                  
,
-                      type_v, type_name);
+                GLSLF(1, imageStore(dst_img[0], pos, %s(%s).%c%c%c%c);         
,
+                      type_v, type_name, "xyzw"[ops->order_dst.in[0]],
+                                         "xyzw"[ops->order_dst.in[1]],
+                                         "xyzw"[ops->order_dst.in[2]],
+                                         "xyzw"[ops->order_dst.in[3]]);
             } else {
                 for (int i = 0; i < (op->rw.packed ? 1 : op->rw.elems); i++)
                     GLSLF(1, imageStore(dst_img[%i], pos, %s(%s[%i]));         
,
-                          i, type_v, type_name, i);
+                          ops->order_dst.in[i], type_v, type_name, i);
             }
             break;
         }

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to