On Wednesday, 16 May 2018 at 13:54:05 UTC, Andrei Alexandrescu wrote:
Is it workable to have a runtime-initialized flag that controls using SSE vs. conservative?

Sure, it's workable with these kind of speed gains. Although the conservative code path ends up being slightly worse off - an extra fetch, compare and branch get introduced.

My preferred method though is to just build multiple sets of binaries as DLLs/SOs/DYNLIBs, then load in the correct libraries dependant on the CPUID test at program initialisation. Current Xbox/Playstation hardware is pretty terrible when it comes to branching, so compiling with minimal branching and deploying the exact binaries for the hardware capabilities is the way I generally approach things.

We never got around to setting something like that up for the PC release of Quantum Break, although we definitely talked about it.

Reply via email to