-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SPU LLVM: Add relaxed xfloat option #11461
Conversation
@@ -52,6 +52,7 @@ struct cfg_root : cfg::node | |||
cfg::_enum<tsx_usage> enable_TSX{ this, "Enable TSX", enable_tsx_by_default() ? tsx_usage::enabled : tsx_usage::disabled }; // Enable TSX. Forcing this on Haswell/Broadwell CPUs should be used carefully | |||
cfg::_bool spu_accurate_xfloat{ this, "Accurate xfloat", false }; | |||
cfg::_bool spu_approx_xfloat{ this, "Approximate xfloat", true }; | |||
cfg::_bool spu_relaxed_xfloat{ this, "Relaxed xfloat", true }; // Approximate accuracy for only the "FCGT" and "FNMS" instructions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we now have 3 xfloat settings.
wouldn't it make more sense to use an enum?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Neko wanted accurate and approximate to be separate settings, but maybe I can merge relaxed and approx.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's fine,
- This new setting is on by default - It's active when approximate default is disabled - Approximate xfloat is now exposed to the gui
I give up, there's a second option for the same thing :-/ But what happens if I enable both? Shouldn't be grayed out? |
Yeah, it is still a bit confusing - how SPU float vectors processing will behave if "Accurate Xfloat" will be enabled with "Approximate Xfloat" being disabled ? P.S. - for my rig Relaxed Xfloat just gain only + 2~4 fps in GoW3, so it might be not so good to sacrifice accuracy of other instructions... I mean - maybe it might hit overall stability ? |
Yeah, approximate should be grayed out since it's overridden. |
Maybe I'm wrong but can we have a slider for this 3 levels of accuracy or something similar? |
There are other accuracy options which may be added in future so it may look awkward this way. |
The UI presentation of these options needs work. All these options are mutually exclusive so we should have them in a drop-down or radio button layout. Slider wouldn't work with our current UI language (we use sliders strictly for numbers). Just realised this is the PR thread, let's move this discussion to a separate issue. |
We don't want the setting to be hidden by default. Debug is a no go. |
@legend800 dude, almost nothing changed, Approximate Xfloat was always there, just wasn't in emu's Ui, Relaxed mode also was always there, if both Approx and Accurate are inactive, so if none checked here goes Relaxed mode. If Accurate is checked it overrides Approximate even if it's checked too, but yea graying out would be nice for end users. |
Dude....that's what we're saying. It looks like there's 4 possible configs - Both Off, Both On, Accurate On/Approx Off, Accurate Off/Approx On. When really it's just 3: Both off (using secret Relaxed), Accurate On (Approx should be grey), Approx On (Accurate grey). Really the dropdown above is the only way to fix. There's 3 options. Let them select it from the list instead of a mini-puzzle. Not sure why there's push back on that when there's dropdowns for almost everything. Keep in mind this is the first thing that users see - center in first tab. It should make sense and not mislead them to think Both On is using Approx for example which I literally thought today (been using emu for 4yrs) would override Accurate - tooltip doesn't explain this at all and users will be split on what they think will happen with both checked. The team keeps adding options to the UI, here's a change to reduce it by 1 AND simply the CX for users. |
Move this discussion to a separate issue thread. There's no point spamming the PR thread with this. |
This new setting is enabled by default and enables "approximate" accuracy for the FCGT and FNMS instructions. The relaxed setting is not exposed to the GUI, but the approximate option is now available on the CPU tab.
To test simply disable approximate xfloat.
Provides around a 10% performance boost in games which don't need the full approximate accuracy (GOW3, Wipeout HD)
closes #11420