Defect
windows-msvc-cpu and windows-msvc-vulkan fail with a warning-as-error in
MSVC's own STL headers, triggered from src/vllm/multimodal/ltx2_video.cpp:
include\vector(1461,29): error C2220: the following warning is treated as an error
include\vector(1461,29): warning C4244: '=': conversion from 'const double' to 'float', possible loss of data
include\xutility(4813,18): warning C4244: '=': conversion from 'const double' to 'float', possible loss of data
include\xutility(462,64): warning C4244: 'initializing': conversion from 'const double' to '_Ty' [_Ty=float]
include\xutility(463,69): warning C4244: 'initializing': conversion from 'const double' to '_Objty' [_Objty=float]
The triggering call sites are the two narrowing assigns introduced by
#964 (c7cb59fbb,
LTX25-TOKEN-APPEND):
ltx2_video.cpp:203 — out.positions.assign(s.positions.begin(), s.positions.end());
ltx2_video.cpp:214 — s->positions.assign(in.positions.begin(), in.positions.end());
StreamState::positions and Ltx2LatentState::positions differ in element
type, so each assign narrows double to float implicitly. GCC and Clang
accept it silently; MSVC diagnoses it and the build treats it as an error.
Why this needs the LTX-2.5 lane rather than a drive-by cast
#964's own comment at ltx2_video.cpp:129-132 reasons explicitly about the
round trip — "them as double only because the DiT's positions field takes
one … So double -> float -> double reproduces the bits" — so the narrowing is
deliberate, and silencing it with a static_cast is a claim about that
reasoning rather than a formatting fix. It should be made by whoever owns that
round trip.
Evidence it is inherited from main, not from any one lane
Matched-arm check across open pull requests, by grepping each
windows-msvc-cpu job log for C4244 … const double … float:
| PR |
based on |
C4244 hits |
| #966 (MiniMax-Music3 parity; touches zero LTX2 files) |
c7cb59fbb |
2 |
| #951 (MUSIC3 demo/records) |
c7cb59fbb |
2 |
| #967, #956, #950, #939, #938 |
pre-c7cb59fbb |
0 |
The split is exactly on whether the branch has merged c7cb59fbb. Every PR
that rebases onto current main from here will inherit it.
Note on attribution
This surfaced only after #965
removed the C4456 'loaded' shadow that had been failing the same two jobs
first. Two independent causes were stacked behind one habitually-red job name;
the first one masked the second, and neither was #645. windows-msvc-* being
PR-only (#584) means main
never shows either.
Defect
windows-msvc-cpuandwindows-msvc-vulkanfail with a warning-as-error inMSVC's own STL headers, triggered from
src/vllm/multimodal/ltx2_video.cpp:The triggering call sites are the two narrowing
assigns introduced by#964 (
c7cb59fbb,LTX25-TOKEN-APPEND):
ltx2_video.cpp:203—out.positions.assign(s.positions.begin(), s.positions.end());ltx2_video.cpp:214—s->positions.assign(in.positions.begin(), in.positions.end());StreamState::positionsandLtx2LatentState::positionsdiffer in elementtype, so each
assignnarrowsdoubletofloatimplicitly. GCC and Clangaccept it silently; MSVC diagnoses it and the build treats it as an error.
Why this needs the LTX-2.5 lane rather than a drive-by cast
#964's own comment atltx2_video.cpp:129-132reasons explicitly about theround trip — "them as
doubleonly because the DiT'spositionsfield takesone … So double -> float -> double reproduces the bits" — so the narrowing is
deliberate, and silencing it with a
static_castis a claim about thatreasoning rather than a formatting fix. It should be made by whoever owns that
round trip.
Evidence it is inherited from
main, not from any one laneMatched-arm check across open pull requests, by grepping each
windows-msvc-cpujob log forC4244 … const double … float:c7cb59fbbc7cb59fbbc7cb59fbbThe split is exactly on whether the branch has merged
c7cb59fbb. Every PRthat rebases onto current
mainfrom here will inherit it.Note on attribution
This surfaced only after #965
removed the
C4456 'loaded' shadowthat had been failing the same two jobsfirst. Two independent causes were stacked behind one habitually-red job name;
the first one masked the second, and neither was #645.
windows-msvc-*beingPR-only (#584) means
mainnever shows either.