This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit fabe1eb1a5d8de87326bd1d049467ef650b5131d Author: Niklas Haas <[email protected]> AuthorDate: Wed Oct 21 02:38:47 2026 +0200 Commit: Niklas Haas <[email protected]> CommitDate: Sat Oct 24 19:10:48 2026 +0000 swscale/vulkan/ops: define clear 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 | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/libswscale/vulkan/ops.c b/libswscale/vulkan/ops.c index 614fa29fda..6ea6d71fdc 100644 --- a/libswscale/vulkan/ops.c +++ b/libswscale/vulkan/ops.c @@ -430,6 +430,15 @@ static int const_zero(const SPIRVIDs *id, SwsPixelType type) return ff_sws_pixel_type_is_int(type) ? id->u32_cid[0] : id->f32_0; } +static int const_pixel(SPICtx *spi, const SPIRVIDs *id, SwsPixelType type, + AVRational64 val) +{ + if (!ff_sws_pixel_type_is_int(type)) + return spi_OpConstantFloat(spi, id->f32_type, (float) val.num / val.den); + av_assert0(val.den == 1); + return spi_OpConstantUInt(spi, id->u32_type, val.num); +} + /* Arithmetic on operands of the given pixel type */ static int emit_mul(SPICtx *spi, SwsPixelType type, int res_type, int a, int b) { @@ -541,20 +550,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_CLEAR: - for (int i = 0; i < 4; i++) { - if (!SWS_COMP_TEST(op->clear.mask, i)) - continue; - AVRational64 cv = op->clear.value[i]; - if (op->clear.type[i] == SWS_PIXEL_F32) { - float q = (float)cv.num/cv.den; - oid->comp[i] = spi_OpConstantFloat(spi, f32_type, q); - } else { - av_assert0(cv.den == 1); - oid->comp[i] = spi_OpConstantUInt(spi, u32_type, cv.num); - } - } - break; case SWS_OP_PACK: case SWS_OP_UNPACK: { uint64_t mask[4]; @@ -1194,7 +1189,9 @@ static int emit_shader(SwsContext *sws, VulkanPriv *p, FFVulkanOpsCtx *s, for (int i = 0; i < 4; i++) { if (!SWS_COMP_TEST(op->clear.mask, i)) continue; - data = spi_OpCompositeInsert(spi, type_v, oid->comp[i], data, i); + int val = const_pixel(spi, id, op->clear.type[i], + op->clear.value[i]); + data = spi_OpCompositeInsert(spi, type_v, val, data, i); } break; case SWS_OP_SWIZZLE: -- 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]
