I'm trying to use the new MTL4FX::FrameInterpolator(the Metal 4 variant that encodes to MTL4::CommandBuffer). It creates fine, accepts all texture bindings, and encodes without any error or assertion. The GPU signals completion via shared event. But the output texture is completely untouched — zero bytes changed from before the encode. It's a silent no-op.
I'm trying to call metal-cpp from python by making dynamic library with cpp.
Environment:
macOS 26.6 (build 25G72)
Apple M3, arm64
Xcode 26 SDK
MetalFX framework (MTL4FX API, macOS 26+)
I'm on M3
Summary: MTL4FX::FrameInterpolator::encodeToCommandBuffer(MTL4::CommandBuffer*) records, commits, and the GPU signals completion, but writes zero bytes to the output texture. The encode is a silent no-op — identical to documented issues 146436460 and 146436741 for MTL4FXTemporalScaler/DenoisedScaler.
Diagnostic trace:
Output texture zeroed before encode: 0/32768 non-zero bytes
Output texture after encode (delta=0.5): 0/32768 non-zero bytes
Changed bytes: 0/32768 ← definitive no-op
Input textures verified: correct (R=1, G=0 vs R=0, G=1)
I dont really know how to explain this, the result its just blank.
1
0
195