-
-
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
Fixes #3083
Fixes #3083
Conversation
Impressive , my CPU is Intel Core 2 Quad Q6600 , is improve perfomance and FPS , less stutter sound . Great Job |
It's improve in Catherine , Dragon's Crown |
rpcs3/Emu/Cell/SPUThread.cpp
Outdated
else | ||
{ | ||
//Slight pause if function is overburdened | ||
thread_ctrl::wait(); |
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.
This may freeze forever if a thread doesn't receive a signal...
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.
Thanks. That actually explains a seemingly spurious lockup I was getting if the emulator ran for a few hours
rpcs3/Emu/RSX/VK/VKTextureCache.h
Outdated
@@ -890,8 +889,8 @@ namespace vk | |||
range_reset = true; | |||
} | |||
|
|||
// Upgrade to writer lock | |||
lock.upgrade(); | |||
//Warning: Will deadlock if a double fault occurs and we enter here from 'flush' method |
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.
Reader lock is not recursive and still can deadlock. You should make sure that the flush cannot trigger a page fault then.
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 never acquire a writer lock when handling any type of page fault so it should unwind ok for now. I'll have to find a better way of predetermining all adjacent blocks that will interfere with one another first, then handle protection outside the flush itself.
rpcs3/rpcs3qt/settings_dialog.cpp
Outdated
ui->scrictModeRendering->setToolTip(json_gpu_main["scrictModeRendering"].toString()); | ||
|
||
xemu_settings->EnhanceCheckBox(ui->disableVertexCache, emu_settings::DisableVertexCache); | ||
ui->scrictModeRendering->setToolTip(json_gpu_main["disableVertexCache"].toString()); |
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 should be
ui->disableVertexCache->setToolTip(json_gpu_main["disableVertexCache"].toString());
- Also enable SPU loop detection by default while were at it
3593641
to
1775624
Compare
- More accurate pauses may slightly reduce performance but makes it more viable to allow more threads to participate without stuttering
- TODO: Ensure no page faults occur within a page-fault handler!
… disable the vertex cache - Also, updates json tooltips for some options
…ution - Should fix games with strange scaling artifacts due to upscaling from lower resolutions
this made persona 5 run at a solid 30fps on a core I5 4690k @ 4.7ghz just got to find a way to stop the game from freezing in between cleaning my room and meeting Igor |
Did the exact opposite for me, on an i5-4460 @ 3.2 ghz, trying all options. Barely runs if i select anything than 1 thread, and even then performs worse than the binaries in the blog post. |
Of course, you need LLE GCM for the game not to freeze. No regression. |
has LLE GCM been finished up yet? or is Jarves still working on it? |
Don't spam old PRs with unrelated stuff. There's an opened ongoing PR for LLE-GCM. |
With these changes and 4 SPU threads + 0 delay penaly, demon's souls runs without the spiky framerates on an i3. Its still not a locked 30 fps but it feels much much better now.