Commit ab24ef3815 for ffmpeg
commit ab24ef3815c42c6fd328240b737610896ffeb777
Author: Ramiro Polla <ramiro.polla@gmail.com>
Date: Mon Oct 19 14:04:29 2026 +0200
swscale/vulkan/ops: initialize unused float lanes to zero
The working vector and the unused lanes of planar float reads were
filled with OpUndef. Linear ops consume the full vector, and an
undefined float is not guaranteed to be finite, so a zero matrix
coefficient does not reliably cancel its contribution. This made
float input conversions such as gbrpf32le -> yuv444p fail on some
drivers (NVIDIA).
Use a 0.0 constant instead.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
diff --git a/libswscale/vulkan/ops.c b/libswscale/vulkan/ops.c
index 68750dc3bb..a9e45bb116 100644
--- a/libswscale/vulkan/ops.c
+++ b/libswscale/vulkan/ops.c
@@ -506,7 +506,7 @@ static void define_shader_consts(SwsContext *sws, const SwsOpList *ops,
/* Constants */
id->u32_p = spi_OpUndef(spi, u32_type);
- id->f32_p = spi_OpUndef(spi, f32_type);
+ id->f32_p = spi_OpConstantFloat(spi, f32_type, 0);
id->f32_0 = spi_OpConstantFloat(spi, f32_type, 0);
for (int i = 0; i < 5; i++)
id->u32_cid[i] = spi_OpConstantUInt(spi, u32_type, i);