mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-13 18:28:35 +12:00
Emu/Config: Add option for accurate PPU LLVM vector NaNs
Turned off by default.
This commit is contained in:
parent
20d8d38e53
commit
b1fb5b6239
3 changed files with 10 additions and 1 deletions
|
@ -1590,6 +1590,7 @@ extern void ppu_initialize(const ppu_module& info)
|
|||
{
|
||||
non_win32,
|
||||
accurate_fma,
|
||||
accurate_ppu_vector_nan,
|
||||
|
||||
__bitset_enum_max
|
||||
};
|
||||
|
@ -1603,6 +1604,10 @@ extern void ppu_initialize(const ppu_module& info)
|
|||
{
|
||||
settings += ppu_settings::accurate_fma;
|
||||
}
|
||||
if (g_cfg.core.llvm_ppu_accurate_vector_nan)
|
||||
{
|
||||
settings += ppu_settings::accurate_ppu_vector_nan;
|
||||
}
|
||||
|
||||
// Write version, hash, CPU, settings
|
||||
fmt::append(obj_name, "v3-tane-%s-%s-%s.obj", fmt::base57(output, 16), fmt::base57(settings), jit_compiler::cpu(g_cfg.core.llvm_cpu));
|
||||
|
|
|
@ -107,7 +107,10 @@ public:
|
|||
auto vec_handle_nan(T&& expr)
|
||||
{
|
||||
value_t<typename T::type> result;
|
||||
if (g_cfg.core.llvm_ppu_accurate_vector_nan)
|
||||
result.value = VecHandleNan(expr.eval(m_ir));
|
||||
else
|
||||
result.value = expr.eval(m_ir);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ struct cfg_root : cfg::node
|
|||
cfg::_bool spu_accurate_xfloat{ this, "Accurate xfloat", false };
|
||||
cfg::_bool spu_approx_xfloat{ this, "Approximate xfloat", true };
|
||||
cfg::_bool llvm_accurate_dfma{ this, "LLVM Accurate DFMA", true }; // Enable accurate double-precision FMA for CPUs which do not support it natively
|
||||
cfg::_bool llvm_ppu_accurate_vector_nan{ this, "PPU LLVM Accurate Vector NaN values", false };
|
||||
|
||||
cfg::_bool debug_console_mode{ this, "Debug Console Mode", false }; // Debug console emulation, not recommended
|
||||
cfg::_enum<lib_loading_type> lib_loading{ this, "Lib Loader", lib_loading_type::liblv2only };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue