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

Git pushed a commit to branch master
in repository ffmpeg.

commit 40fced84ab7923cceecd8147ac9a315588ea4bfa
Author:     Niklas Haas <[email protected]>
AuthorDate: Wed Oct 21 02:40:22 2026 +0200
Commit:     Niklas Haas <[email protected]>
CommitDate: Sat Oct 24 19:10:48 2026 +0000

    swscale/vulkan/ops: define shift constants at the point of use
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
    Signed-off-by: Niklas Haas <[email protected]>
---
 libswscale/vulkan/ops.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/libswscale/vulkan/ops.c b/libswscale/vulkan/ops.c
index ee6be4e3b5..16c87e60fb 100644
--- a/libswscale/vulkan/ops.c
+++ b/libswscale/vulkan/ops.c
@@ -438,6 +438,13 @@ static int const_pixel(SPICtx *spi, const SPIRVIDs *id, 
SwsPixelType type,
     return spi_OpConstantUInt(spi, id->u32_type, val.num);
 }
 
+static int const_splat(SPICtx *spi, const SPIRVIDs *id, SwsPixelType type,
+                       AVRational64 val)
+{
+    const int c = const_pixel(spi, id, type, val);
+    return spi_OpConstantComposite(spi, type_vec4(id, type), c, c, c, c);
+}
+
 /* Shift and mask vectors for (un)packing each component */
 static void define_pack_consts(SPICtx *spi, const SPIRVIDs *id, const SwsOp 
*op,
                                int *shift_id, int *mask_id)
@@ -566,13 +573,6 @@ static void define_shader_consts(SwsContext *sws, const 
SwsOpList *ops,
         OpIDs *oid = &id->op[n];
         SwsPixelType type_in = ff_sws_op_input_type(op);
         switch (op->op) {
-        case SWS_OP_LSHIFT:
-        case SWS_OP_RSHIFT: {
-            int tmp = spi_OpConstantUInt(spi, u32_type, op->shift.amount);
-            oid->vec = spi_OpConstantComposite(spi, id->u32vec4_type,
-                                               tmp, tmp, tmp, tmp);
-            break;
-        }
         case SWS_OP_SCALE: {
             int tmp;
             if (type_in == SWS_PIXEL_F32) {
@@ -1206,10 +1206,14 @@ static int emit_shader(SwsContext *sws, VulkanPriv *p, 
FFVulkanOpsCtx *s,
             data = emit_convert(spi, type_in, type_out, type_v, data);
             break;
         case SWS_OP_LSHIFT:
-            data = spi_OpShiftLeftLogical(spi, type_v, data, oid->vec);
+            data = spi_OpShiftLeftLogical(spi, type_v, data,
+                                          const_splat(spi, id, SWS_PIXEL_U32,
+                                                      Q(op->shift.amount)));
             break;
         case SWS_OP_RSHIFT:
-            data = spi_OpShiftRightLogical(spi, type_v, data, oid->vec);
+            data = spi_OpShiftRightLogical(spi, type_v, data,
+                                           const_splat(spi, id, SWS_PIXEL_U32,
+                                                       Q(op->shift.amount)));
             break;
         case SWS_OP_SCALE:
             data = emit_mul(spi, type_in, type_v, data, oid->vec);

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to