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, ©, 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]
