mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-14 02:38:37 +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,
|
non_win32,
|
||||||
accurate_fma,
|
accurate_fma,
|
||||||
|
accurate_ppu_vector_nan,
|
||||||
|
|
||||||
__bitset_enum_max
|
__bitset_enum_max
|
||||||
};
|
};
|
||||||
|
@ -1603,6 +1604,10 @@ extern void ppu_initialize(const ppu_module& info)
|
||||||
{
|
{
|
||||||
settings += ppu_settings::accurate_fma;
|
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
|
// 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));
|
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)
|
auto vec_handle_nan(T&& expr)
|
||||||
{
|
{
|
||||||
value_t<typename T::type> result;
|
value_t<typename T::type> result;
|
||||||
|
if (g_cfg.core.llvm_ppu_accurate_vector_nan)
|
||||||
result.value = VecHandleNan(expr.eval(m_ir));
|
result.value = VecHandleNan(expr.eval(m_ir));
|
||||||
|
else
|
||||||
|
result.value = expr.eval(m_ir);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,7 @@ struct cfg_root : cfg::node
|
||||||
cfg::_bool spu_accurate_xfloat{ this, "Accurate xfloat", false };
|
cfg::_bool spu_accurate_xfloat{ this, "Accurate xfloat", false };
|
||||||
cfg::_bool spu_approx_xfloat{ this, "Approximate xfloat", true };
|
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_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::_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 };
|
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