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

Git pushed a commit to branch master
in repository ffmpeg.

commit 09c0cd6837b1063d19e1dbda350281e0e4f99458
Author:     Niklas Haas <[email protected]>
AuthorDate: Sat Jun 20 16:27:09 2026 +0200
Commit:     Niklas Haas <[email protected]>
CommitDate: Tue Jun 23 11:48:13 2026 +0000

    swscale/tests/sws_ops: split passes when printing ops lists
    
    This affects a large number of conversions across the board, either:
    
    1. Lifting a constant alpha/chroma clear out from the conversion pass:
    
     rgb24 16x16 -> yuva444p 16x16:
    +  [ u8 $XXX] SWS_OP_CLEAR        : {255 _ _ _}
    +  [ u8 XXXX] SWS_OP_WRITE        : 1 elem(s) planar >> 0, via {3}
    +    ('X' unused, 'z' byteswapped, '=' copied, '$' const, '+' integer, '0' 
zero)
    + translated micro-ops:
    +    u8_clear_x_1
    +    u8_write_planar_x
    + Sub-pass #1:
       [ u8 +++X] SWS_OP_READ         : 3 elem(s) packed >> 0
       [ u8 +++X] SWS_OP_CONVERT      : u8 -> f32
       [f32 ...X] SWS_OP_LINEAR       : matrix3+off3 [...]
       [f32 ...X] SWS_OP_DITHER       : 16x16 matrix + {0 3 2 -1}
       [f32 +++X] SWS_OP_CONVERT      : f32 -> u8
    -  [ u8 +++$] SWS_OP_CLEAR        : {_ _ _ 255}
    -  [ u8 XXXX] SWS_OP_WRITE        : 4 elem(s) planar >> 0
    +  [ u8 XXXX] SWS_OP_WRITE        : 3 elem(s) planar >> 0
         ('X' unused, 'z' byteswapped, '=' copied, '$' const, '+' integer, '0' 
zero)
    
     gray 16x16 -> yuv444p 16x16:
    +  [ u8 $$XX] SWS_OP_CLEAR        : {128 128 _ _}
    +  [ u8 XXXX] SWS_OP_WRITE        : 2 elem(s) planar >> 0, via {2, 1}
    +    ('X' unused, 'z' byteswapped, '=' copied, '$' const, '+' integer, '0' 
zero)
    + translated micro-ops:
    +    u8_clear_xy_xx
    +    u8_write_planar_xy
    + Sub-pass #1:
       [ u8 =XXX] SWS_OP_READ         : 1 elem(s) planar >> 0
       [ u8 =XXX] SWS_OP_CONVERT      : u8 -> f32
       [f32 .XXX] SWS_OP_LINEAR       : luma [...]
       [f32 .XXX] SWS_OP_DITHER       : 16x16 matrix + {0 -1 -1 -1}
       [f32 +XXX] SWS_OP_CONVERT      : f32 -> u8
    -  [ u8 +$$X] SWS_OP_CLEAR        : {_ 128 128 _}
    -  [ u8 XXXX] SWS_OP_WRITE        : 3 elem(s) planar >> 0
    +  [ u8 XXXX] SWS_OP_WRITE        : 1 elem(s) planar >> 0
         ('X' unused, 'z' byteswapped, '=' copied, '$' const, '+' integer, '0' 
zero)
      translated micro-ops:
         u8_read_planar_x
         u8_to_f32_x
         f32_linear_x_x000x
         f32_dither_x_0_16x16
         f32_to_u8_x
    -    u8_clear_yz_xx
    -    u8_write_planar_xyz
    +    u8_write_planar_x
    
    or
    
    2. Passing through a plane that was previously unmodified by an ops chain:
    
     gbrap 16x16 -> yuva444p 16x16:
    -  [ u8 ====] SWS_OP_READ         : 4 elem(s) planar >> 0, via {2, 0, 1, 3}
    -  [ u8 ====] SWS_OP_CONVERT      : u8 -> f32
    -  [f32 ...=] SWS_OP_LINEAR       : matrix3+off3 [...]
    -  [f32 ...=] SWS_OP_DITHER       : 16x16 matrix + {0 3 2 -1}
    -  [f32 +++=] SWS_OP_CONVERT      : f32 -> u8
    -  [ u8 XXXX] SWS_OP_WRITE        : 4 elem(s) planar >> 0
    +  [ u8 =XXX] SWS_OP_READ         : 1 elem(s) planar >> 0, via {3}
    +  [ u8 XXXX] SWS_OP_WRITE        : 1 elem(s) planar >> 0, via {3}
         ('X' unused, 'z' byteswapped, '=' copied, '$' const, '+' integer, '0' 
zero)
      translated micro-ops:
    -    u8_read_planar_xyzw
    -    u8_to_f32_xyzw
    +    u8_read_planar_x
    +    u8_write_planar_x
    + Sub-pass #1:
    +  [ u8 ===X] SWS_OP_READ         : 3 elem(s) planar >> 0, via {2, 0, 1}
    +  [ u8 ===X] SWS_OP_CONVERT      : u8 -> f32
    +  [f32 ...X] SWS_OP_LINEAR       : matrix3+off3 [...]
    +  [f32 ...X] SWS_OP_DITHER       : 16x16 matrix + {0 3 2 -1}
    +  [f32 +++X] SWS_OP_CONVERT      : f32 -> u8
    +  [ u8 XXXX] SWS_OP_WRITE        : 3 elem(s) planar >> 0
    +    ('X' unused, 'z' byteswapped, '=' copied, '$' const, '+' integer, '0' 
zero)
    + translated micro-ops:
    +    u8_read_planar_xyz
    +    u8_to_f32_xyz
         f32_linear_xyz_xxx0x_xxx0x_xxx0x
         f32_dither_xyz_0_3_2_16x16
    -    f32_to_u8_xyzw
    -    u8_write_planar_xyzw
    +    f32_to_u8_xyz
    +    u8_write_planar_xyz
    
    (Op lists are abridged slightly for brevity)
    
    Sponsored-by: Sovereign Tech Fund
    Signed-off-by: Niklas Haas <[email protected]>
---
 libswscale/tests/sws_ops.c  | 2 +-
 tests/ref/fate/sws-ops-list | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libswscale/tests/sws_ops.c b/libswscale/tests/sws_ops.c
index ce7672040b..0da59b473f 100644
--- a/libswscale/tests/sws_ops.c
+++ b/libswscale/tests/sws_ops.c
@@ -92,7 +92,7 @@ static int print_passes(SwsContext *ctx, void *graph, 
SwsOpList *ops)
         return AVERROR(ENOMEM);
 
     pass_idx = 0;
-    const int flags = SWS_OP_FLAG_DRY_RUN;
+    const int flags = SWS_OP_FLAG_DRY_RUN | SWS_OP_FLAG_SPLIT_MEMCPY;
     return ff_sws_compile_pass(graph, &backend_print, &copy, flags, NULL, 
NULL);
 }
 static void log_stdout(void *avcl, int level, const char *fmt, va_list vl)
diff --git a/tests/ref/fate/sws-ops-list b/tests/ref/fate/sws-ops-list
index ee37afb811..b5fc179208 100644
--- a/tests/ref/fate/sws-ops-list
+++ b/tests/ref/fate/sws-ops-list
@@ -1 +1 @@
-f14d6b179843b86854e9f80b599b5d86
+133f2f3066e2a853f6e77be084c9cd75

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

Reply via email to