diff --git a/libswscale/vulkan/ops.c b/libswscale/vulkan/ops.c index 062cdf4b88..51b85fa896 100644 --- a/libswscale/vulkan/ops.c +++ b/libswscale/vulkan/ops.c @@ -283,6 +283,19 @@ static int add_ops_glsl(VulkanPriv *p, FFVulkanOpsCtx *s, av_bprintf(&shd->src, " %s = %s*%i/%i;\n", type_name, type_name, op->c.q.num, op->c.q.den); break; + case SWS_OP_MIN: + case SWS_OP_MAX: + for (int i = 0; i < 4; i++) { + if (!op->c.q4[i].den) + continue; + av_bprintf(&shd->src, " %s.%c = %s(%s.%c, "QSTR");\n", + type_name, "xyzw"[i], + op->op == SWS_OP_MIN ? "min" : "max", + type_name, "xyzw"[i], + op->c.q4[i].num, op->c.q4[i].den, + op->type == SWS_PIXEL_F32 ? ".0f" : ""); + } + break; default: return AVERROR(ENOTSUP); }