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

Git pushed a commit to branch master
in repository ffmpeg.

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

    swscale/uops: split planes when generating ops lists
    
    This updates uops_macros.h and the graph.c implementation in lockstep,
    otherwise we'd have an intermediate commit with a bunch of broken formats.
    
    Overall speedup=1.008x faster, min=0.144x max=5.550x
    
    The min/max numbers are mostly measurement noise, but the real speedup for
    affected formats is anywhere from 0.9x to around 2x-3x.
    
    It's worth noting that the speedup for the formats which currently regress
    is because we don't yet refcopy the planes, but I have another series in the
    works which will take care of this soon.
    
    Sponsored-by: Sovereign Tech Fund
    Signed-off-by: Niklas Haas <[email protected]>
---
 libswscale/graph.c       |  3 ++-
 libswscale/uops.c        |  2 +-
 libswscale/uops_macros.h | 34 ++++++++++++++--------------------
 3 files changed, 17 insertions(+), 22 deletions(-)

diff --git a/libswscale/graph.c b/libswscale/graph.c
index cabb61b5fd..019f9207fb 100644
--- a/libswscale/graph.c
+++ b/libswscale/graph.c
@@ -639,7 +639,8 @@ static int add_ops_convert_pass(SwsGraph *graph, const 
SwsFormat *src,
     av_log(ctx, AV_LOG_DEBUG, "Unoptimized operation list:\n");
     ff_sws_op_list_print(ctx, AV_LOG_DEBUG, AV_LOG_TRACE, ops);
 
-    return ff_sws_compile_pass(graph, NULL, &ops, SWS_OP_FLAG_OPTIMIZE, input, 
output);
+    const int flags = SWS_OP_FLAG_OPTIMIZE | SWS_OP_FLAG_SPLIT_MEMCPY;
+    return ff_sws_compile_pass(graph, NULL, &ops, flags, input, output);
 #else
     return AVERROR(ENOTSUP);
 #endif
diff --git a/libswscale/uops.c b/libswscale/uops.c
index 17796d0869..096621466c 100644
--- a/libswscale/uops.c
+++ b/libswscale/uops.c
@@ -947,7 +947,7 @@ static int register_all_uops(SwsContext *ctx, void *graph, 
SwsOpList *ops)
     if (!copy)
         return AVERROR(ENOMEM);
 
-    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_uops, &copy, flags, NULL, NULL);
 }
 
diff --git a/libswscale/uops_macros.h b/libswscale/uops_macros.h
index 2c88870a66..a382988361 100644
--- a/libswscale/uops_macros.h
+++ b/libswscale/uops_macros.h
@@ -117,7 +117,6 @@
     MACRO(__VA_ARGS__, u8_permute_zyxw                         , SWS_PIXEL_U8 
, SWS_UOP_PERMUTE         , 0x0, 2, 1, 0, 3) \
     MACRO(__VA_ARGS__, u8_permute_zywx                         , SWS_PIXEL_U8 
, SWS_UOP_PERMUTE         , 0x0, 2, 1, 3, 0) \
     MACRO(__VA_ARGS__, u8_permute_zwxy                         , SWS_PIXEL_U8 
, SWS_UOP_PERMUTE         , 0x0, 2, 3, 0, 1) \
-    MACRO(__VA_ARGS__, u8_permute_zwyx                         , SWS_PIXEL_U8 
, SWS_UOP_PERMUTE         , 0x0, 2, 3, 1, 0) \
     MACRO(__VA_ARGS__, u8_permute_wxyz                         , SWS_PIXEL_U8 
, SWS_UOP_PERMUTE         , 0x0, 3, 0, 1, 2) \
     MACRO(__VA_ARGS__, u8_permute_wxzy                         , SWS_PIXEL_U8 
, SWS_UOP_PERMUTE         , 0x0, 3, 0, 2, 1) \
     MACRO(__VA_ARGS__, u8_permute_wyxz                         , SWS_PIXEL_U8 
, SWS_UOP_PERMUTE         , 0x0, 3, 1, 0, 2) \
@@ -136,7 +135,6 @@
     MACRO(__VA_ARGS__, u8_permute_zyxw                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{2, 1, 0, 3}) \
     MACRO(__VA_ARGS__, u8_permute_zywx                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{2, 1, 3, 0}) \
     MACRO(__VA_ARGS__, u8_permute_zwxy                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{2, 3, 0, 1}) \
-    MACRO(__VA_ARGS__, u8_permute_zwyx                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{2, 3, 1, 0}) \
     MACRO(__VA_ARGS__, u8_permute_wxyz                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{3, 0, 1, 2}) \
     MACRO(__VA_ARGS__, u8_permute_wxzy                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{3, 0, 2, 1}) \
     MACRO(__VA_ARGS__, u8_permute_wyxz                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{3, 1, 0, 2}) \
@@ -167,7 +165,6 @@
     MACRO(__VA_ARGS__, u8_move_yz_xx                           , SWS_PIXEL_U8 
, SWS_UOP_MOVE            , 0x0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
     MACRO(__VA_ARGS__, u8_move_wz_zx                           , SWS_PIXEL_U8 
, SWS_UOP_MOVE            , 0x0, 2, 3, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0) \
     MACRO(__VA_ARGS__, u8_move_xyz_yzw                         , SWS_PIXEL_U8 
, SWS_UOP_MOVE            , 0x0, 3, 0, 1, 2, 0, 0, 0, 1, 2, 3, 0, 0, 0) \
-    MACRO(__VA_ARGS__, u8_move_xzy_zyw                         , SWS_PIXEL_U8 
, SWS_UOP_MOVE            , 0x0, 3, 0, 2, 1, 0, 0, 0, 2, 1, 3, 0, 0, 0) \
     MACRO(__VA_ARGS__, u8_move_yzw_xxx                         , SWS_PIXEL_U8 
, SWS_UOP_MOVE            , 0x0, 3, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0) \
     MACRO(__VA_ARGS__, u8_move_zwy_xyx                         , SWS_PIXEL_U8 
, SWS_UOP_MOVE            , 0x0, 3, 2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0) \
     MACRO(__VA_ARGS__, u8_move_wyz_yzx                         , SWS_PIXEL_U8 
, SWS_UOP_MOVE            , 0x0, 3, 3, 1, 2, 0, 0, 0, 1, 2, 0, 0, 0, 0) \
@@ -202,7 +199,6 @@
     MACRO(__VA_ARGS__, u8_move_yz_xx                           , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 2, .par.move.dst = {1, 2, 0, 0, 0, 0}, .par.move.src = 
{0, 0, 0, 0, 0, 0}) \
     MACRO(__VA_ARGS__, u8_move_wz_zx                           , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 2, .par.move.dst = {3, 2, 0, 0, 0, 0}, .par.move.src = 
{2, 0, 0, 0, 0, 0}) \
     MACRO(__VA_ARGS__, u8_move_xyz_yzw                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 3, .par.move.dst = {0, 1, 2, 0, 0, 0}, .par.move.src = 
{1, 2, 3, 0, 0, 0}) \
-    MACRO(__VA_ARGS__, u8_move_xzy_zyw                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 3, .par.move.dst = {0, 2, 1, 0, 0, 0}, .par.move.src = 
{2, 1, 3, 0, 0, 0}) \
     MACRO(__VA_ARGS__, u8_move_yzw_xxx                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 3, .par.move.dst = {1, 2, 3, 0, 0, 0}, .par.move.src = 
{0, 0, 0, 0, 0, 0}) \
     MACRO(__VA_ARGS__, u8_move_zwy_xyx                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 3, .par.move.dst = {2, 3, 1, 0, 0, 0}, .par.move.src = 
{0, 1, 0, 0, 0, 0}) \
     MACRO(__VA_ARGS__, u8_move_wyz_yzx                         , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 3, .par.move.dst = {3, 1, 2, 0, 0, 0}, .par.move.src = 
{1, 2, 0, 0, 0, 0}) \
@@ -316,14 +312,14 @@
     MACRO(__VA_ARGS__, u8_clear_xy_xx                          , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0x3, 0x00000, 0x00000) \
     MACRO(__VA_ARGS__, u8_clear_xz_xx                          , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0x5, 0x00000, 0x00000) \
     MACRO(__VA_ARGS__, u8_clear_yz_xx                          , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0x6, 0x00000, 0x00000) \
+    MACRO(__VA_ARGS__, u8_clear_xyz_1xx                        , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0x7, 0x00001, 0x00000) \
     MACRO(__VA_ARGS__, u8_clear_w_0                            , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0x8, 0x00000, 0x00008) \
     MACRO(__VA_ARGS__, u8_clear_w_1                            , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0x8, 0x00008, 0x00000) \
     MACRO(__VA_ARGS__, u8_clear_xyw_xx0                        , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0xb, 0x00000, 0x00008) \
     MACRO(__VA_ARGS__, u8_clear_xyw_xx1                        , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0xb, 0x00008, 0x00000) \
     MACRO(__VA_ARGS__, u8_clear_zw_xx                          , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0xc, 0x00000, 0x00000) \
     MACRO(__VA_ARGS__, u8_clear_xzw_1xx                        , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0xd, 0x00001, 0x00000) \
-    MACRO(__VA_ARGS__, u8_clear_xzw_xx1                        , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0xd, 0x00008, 0x00000) \
-    MACRO(__VA_ARGS__, u8_clear_yzw_xx1                        , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0xe, 0x00008, 0x00000)
+    MACRO(__VA_ARGS__, u8_clear_xzw_xx1                        , SWS_PIXEL_U8 
, SWS_UOP_CLEAR           , 0xd, 0x00008, 0x00000)
 #define SWS_FOR_STRUCT_U8_CLEAR(MACRO, ...) \
     MACRO(__VA_ARGS__, u8_clear_x_0                            , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0x1, .par.clear.one = 
0x0, .par.clear.zero = 0x1) \
     MACRO(__VA_ARGS__, u8_clear_x_1                            , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0x1, .par.clear.one = 
0x1, .par.clear.zero = 0x0) \
@@ -331,14 +327,14 @@
     MACRO(__VA_ARGS__, u8_clear_xy_xx                          , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0x3, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u8_clear_xz_xx                          , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0x5, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u8_clear_yz_xx                          , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0x6, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
+    MACRO(__VA_ARGS__, u8_clear_xyz_1xx                        , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0x7, .par.clear.one = 
0x1, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u8_clear_w_0                            , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0x8, .par.clear.one = 
0x0, .par.clear.zero = 0x8) \
     MACRO(__VA_ARGS__, u8_clear_w_1                            , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0x8, .par.clear.one = 
0x8, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u8_clear_xyw_xx0                        , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0xb, .par.clear.one = 
0x0, .par.clear.zero = 0x8) \
     MACRO(__VA_ARGS__, u8_clear_xyw_xx1                        , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0xb, .par.clear.one = 
0x8, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u8_clear_zw_xx                          , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0xc, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u8_clear_xzw_1xx                        , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0xd, .par.clear.one = 
0x1, .par.clear.zero = 0x0) \
-    MACRO(__VA_ARGS__, u8_clear_xzw_xx1                        , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0xd, .par.clear.one = 
0x8, .par.clear.zero = 0x0) \
-    MACRO(__VA_ARGS__, u8_clear_yzw_xx1                        , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0xe, .par.clear.one = 
0x8, .par.clear.zero = 0x0)
+    MACRO(__VA_ARGS__, u8_clear_xzw_xx1                        , .type = 
SWS_PIXEL_U8 , .uop = SWS_UOP_CLEAR           , .mask = 0xd, .par.clear.one = 
0x8, .par.clear.zero = 0x0)
 #define SWS_FOR_U8_LINEAR(MACRO, ...)
 #define SWS_FOR_STRUCT_U8_LINEAR(MACRO, ...)
 #define SWS_FOR_U8_LINEAR_FMA(MACRO, ...)
@@ -430,7 +426,6 @@
     MACRO(__VA_ARGS__, u16_permute_zxyw                        , 
SWS_PIXEL_U16, SWS_UOP_PERMUTE         , 0x0, 2, 0, 1, 3) \
     MACRO(__VA_ARGS__, u16_permute_zyxw                        , 
SWS_PIXEL_U16, SWS_UOP_PERMUTE         , 0x0, 2, 1, 0, 3) \
     MACRO(__VA_ARGS__, u16_permute_zywx                        , 
SWS_PIXEL_U16, SWS_UOP_PERMUTE         , 0x0, 2, 1, 3, 0) \
-    MACRO(__VA_ARGS__, u16_permute_zwyx                        , 
SWS_PIXEL_U16, SWS_UOP_PERMUTE         , 0x0, 2, 3, 1, 0) \
     MACRO(__VA_ARGS__, u16_permute_wxyz                        , 
SWS_PIXEL_U16, SWS_UOP_PERMUTE         , 0x0, 3, 0, 1, 2) \
     MACRO(__VA_ARGS__, u16_permute_wxzy                        , 
SWS_PIXEL_U16, SWS_UOP_PERMUTE         , 0x0, 3, 0, 2, 1) \
     MACRO(__VA_ARGS__, u16_permute_wyxz                        , 
SWS_PIXEL_U16, SWS_UOP_PERMUTE         , 0x0, 3, 1, 0, 2) \
@@ -445,7 +440,6 @@
     MACRO(__VA_ARGS__, u16_permute_zxyw                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{2, 0, 1, 3}) \
     MACRO(__VA_ARGS__, u16_permute_zyxw                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{2, 1, 0, 3}) \
     MACRO(__VA_ARGS__, u16_permute_zywx                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{2, 1, 3, 0}) \
-    MACRO(__VA_ARGS__, u16_permute_zwyx                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{2, 3, 1, 0}) \
     MACRO(__VA_ARGS__, u16_permute_wxyz                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{3, 0, 1, 2}) \
     MACRO(__VA_ARGS__, u16_permute_wxzy                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{3, 0, 2, 1}) \
     MACRO(__VA_ARGS__, u16_permute_wyxz                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_PERMUTE         , .mask = 0x0, .par.swizzle.in = 
{3, 1, 0, 2}) \
@@ -469,7 +463,6 @@
     MACRO(__VA_ARGS__, u16_move_yz_xx                          , 
SWS_PIXEL_U16, SWS_UOP_MOVE            , 0x0, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0) \
     MACRO(__VA_ARGS__, u16_move_wz_zx                          , 
SWS_PIXEL_U16, SWS_UOP_MOVE            , 0x0, 2, 3, 2, 0, 0, 0, 0, 2, 0, 0, 0, 
0, 0) \
     MACRO(__VA_ARGS__, u16_move_xyz_yzw                        , 
SWS_PIXEL_U16, SWS_UOP_MOVE            , 0x0, 3, 0, 1, 2, 0, 0, 0, 1, 2, 3, 0, 
0, 0) \
-    MACRO(__VA_ARGS__, u16_move_xzy_zyw                        , 
SWS_PIXEL_U16, SWS_UOP_MOVE            , 0x0, 3, 0, 2, 1, 0, 0, 0, 2, 1, 3, 0, 
0, 0) \
     MACRO(__VA_ARGS__, u16_move_zwy_xyx                        , 
SWS_PIXEL_U16, SWS_UOP_MOVE            , 0x0, 3, 2, 3, 1, 0, 0, 0, 0, 1, 0, 0, 
0, 0) \
     MACRO(__VA_ARGS__, u16_move_wzy_zyx                        , 
SWS_PIXEL_U16, SWS_UOP_MOVE            , 0x0, 3, 3, 2, 1, 0, 0, 0, 2, 1, 0, 0, 
0, 0) \
     MACRO(__VA_ARGS__, u16_move_txy_xyt                        , 
SWS_PIXEL_U16, SWS_UOP_MOVE            , 0x0, 3, -1, 0, 1, 0, 0, 0, 0, 1, -1, 
0, 0, 0) \
@@ -494,7 +487,6 @@
     MACRO(__VA_ARGS__, u16_move_yz_xx                          , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 2, .par.move.dst = {1, 2, 0, 0, 0, 0}, .par.move.src = 
{0, 0, 0, 0, 0, 0}) \
     MACRO(__VA_ARGS__, u16_move_wz_zx                          , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 2, .par.move.dst = {3, 2, 0, 0, 0, 0}, .par.move.src = 
{2, 0, 0, 0, 0, 0}) \
     MACRO(__VA_ARGS__, u16_move_xyz_yzw                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 3, .par.move.dst = {0, 1, 2, 0, 0, 0}, .par.move.src = 
{1, 2, 3, 0, 0, 0}) \
-    MACRO(__VA_ARGS__, u16_move_xzy_zyw                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 3, .par.move.dst = {0, 2, 1, 0, 0, 0}, .par.move.src = 
{2, 1, 3, 0, 0, 0}) \
     MACRO(__VA_ARGS__, u16_move_zwy_xyx                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 3, .par.move.dst = {2, 3, 1, 0, 0, 0}, .par.move.src = 
{0, 1, 0, 0, 0, 0}) \
     MACRO(__VA_ARGS__, u16_move_wzy_zyx                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 3, .par.move.dst = {3, 2, 1, 0, 0, 0}, .par.move.src = 
{2, 1, 0, 0, 0, 0}) \
     MACRO(__VA_ARGS__, u16_move_txy_xyt                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_MOVE            , .mask = 0x0, 
.par.move.num_moves = 3, .par.move.dst = {-1, 0, 1, 0, 0, 0}, .par.move.src = 
{0, 1, -1, 0, 0, 0}) \
@@ -630,29 +622,31 @@
     MACRO(__VA_ARGS__, u16_rshift_xyz_4                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT          , .mask = 0x7, .par.shift.amount 
= 4) \
     MACRO(__VA_ARGS__, u16_rshift_xyz_6                        , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_RSHIFT          , .mask = 0x7, .par.shift.amount 
= 6)
 #define SWS_FOR_U16_CLEAR(MACRO, ...) \
+    MACRO(__VA_ARGS__, u16_clear_x_x                           , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0x1, 0x00000, 0x00000) \
     MACRO(__VA_ARGS__, u16_clear_x_1                           , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0x1, 0x00001, 0x00000) \
     MACRO(__VA_ARGS__, u16_clear_y_1                           , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0x2, 0x00002, 0x00000) \
-    MACRO(__VA_ARGS__, u16_clear_yz_xx                         , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0x6, 0x00000, 0x00000) \
+    MACRO(__VA_ARGS__, u16_clear_xy_xx                         , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0x3, 0x00000, 0x00000) \
+    MACRO(__VA_ARGS__, u16_clear_xyz_xxx                       , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0x7, 0x00000, 0x00000) \
+    MACRO(__VA_ARGS__, u16_clear_xyz_1xx                       , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0x7, 0x00001, 0x00000) \
     MACRO(__VA_ARGS__, u16_clear_w_x                           , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0x8, 0x00000, 0x00000) \
     MACRO(__VA_ARGS__, u16_clear_w_0                           , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0x8, 0x00000, 0x00008) \
     MACRO(__VA_ARGS__, u16_clear_w_1                           , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0x8, 0x00008, 0x00000) \
     MACRO(__VA_ARGS__, u16_clear_zw_xx                         , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0xc, 0x00000, 0x00000) \
     MACRO(__VA_ARGS__, u16_clear_xzw_xx0                       , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0xd, 0x00000, 0x00008) \
-    MACRO(__VA_ARGS__, u16_clear_xzw_1xx                       , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0xd, 0x00001, 0x00000) \
-    MACRO(__VA_ARGS__, u16_clear_yzw_xxx                       , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0xe, 0x00000, 0x00000) \
-    MACRO(__VA_ARGS__, u16_clear_yzw_xx1                       , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0xe, 0x00008, 0x00000)
+    MACRO(__VA_ARGS__, u16_clear_xzw_1xx                       , 
SWS_PIXEL_U16, SWS_UOP_CLEAR           , 0xd, 0x00001, 0x00000)
 #define SWS_FOR_STRUCT_U16_CLEAR(MACRO, ...) \
+    MACRO(__VA_ARGS__, u16_clear_x_x                           , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0x1, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u16_clear_x_1                           , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0x1, .par.clear.one = 
0x1, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u16_clear_y_1                           , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0x2, .par.clear.one = 
0x2, .par.clear.zero = 0x0) \
-    MACRO(__VA_ARGS__, u16_clear_yz_xx                         , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0x6, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
+    MACRO(__VA_ARGS__, u16_clear_xy_xx                         , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0x3, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
+    MACRO(__VA_ARGS__, u16_clear_xyz_xxx                       , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0x7, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
+    MACRO(__VA_ARGS__, u16_clear_xyz_1xx                       , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0x7, .par.clear.one = 
0x1, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u16_clear_w_x                           , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0x8, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u16_clear_w_0                           , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0x8, .par.clear.one = 
0x0, .par.clear.zero = 0x8) \
     MACRO(__VA_ARGS__, u16_clear_w_1                           , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0x8, .par.clear.one = 
0x8, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u16_clear_zw_xx                         , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0xc, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
     MACRO(__VA_ARGS__, u16_clear_xzw_xx0                       , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0xd, .par.clear.one = 
0x0, .par.clear.zero = 0x8) \
-    MACRO(__VA_ARGS__, u16_clear_xzw_1xx                       , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0xd, .par.clear.one = 
0x1, .par.clear.zero = 0x0) \
-    MACRO(__VA_ARGS__, u16_clear_yzw_xxx                       , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0xe, .par.clear.one = 
0x0, .par.clear.zero = 0x0) \
-    MACRO(__VA_ARGS__, u16_clear_yzw_xx1                       , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0xe, .par.clear.one = 
0x8, .par.clear.zero = 0x0)
+    MACRO(__VA_ARGS__, u16_clear_xzw_1xx                       , .type = 
SWS_PIXEL_U16, .uop = SWS_UOP_CLEAR           , .mask = 0xd, .par.clear.one = 
0x1, .par.clear.zero = 0x0)
 #define SWS_FOR_U16_LINEAR(MACRO, ...)
 #define SWS_FOR_STRUCT_U16_LINEAR(MACRO, ...)
 #define SWS_FOR_U16_LINEAR_FMA(MACRO, ...)

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

Reply via email to