On Fri May 8 16:19:45 2026 +0000, Jacek Caban wrote:
It is a bit of a tradeoff, since for "non-simple" types we would make things slower. I'm not sure what makes the difference so noticeable. The type validation performed by `VariantCopy` and `VariantClear` should have overhead similar to your helper. I see that, with the current code, we have an extra `VariantClear` call on the `value` variable (inside `VariantCopyInd`), which we need only for `VT_DISPATCH` handling. Would it help if we tried harder to do that only for `VT_DISPATCH`, and otherwise used `VariantCopyInd` directly into the destination? I'm going to put this on draft, these are synthetic hot loop tests.
The main perf issue to look at first is !10528 Once that is merged I will again run my benchmarks + real world test suite with this patch and update this mr. https://github.com/francisdb/vpinball-test/tree/main/examples -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10541#note_139269