Commit Graph

417 Commits

Author SHA1 Message Date
Henrik Rydgård f01ba6dc84 Move NativeApp.h to Common/System, split into NativeApp.h and System.h
Buildfix
2020-10-04 11:42:16 +02:00
Henrik Rydgård 821817e6d4 Move the profiler to Common 2020-10-04 11:42:16 +02:00
Henrik Rydgård ff8148dd92 Move native/util, native/data and native/i18 to Common/Data.
Also move colorutil.cpp/h

linking build fix experiment

Delete a bunch of unused CMakeLists.txt files

CMakeLists.txt linking fix

Don't include NativeApp.h from any headers.

Android.mk buildfix

Half of the UWP fix

Buildfix

Minor project file cleanup

Buildfixes

Guess what? More buildfixes!
2020-10-04 07:28:29 +02:00
Henrik Rydgård 054acf768c Don't cache time in a variable.
A little weirdness in the code that has stuck around for a long, long
time. It's really not necessary and mostly just confusing.
2020-09-24 23:52:43 +02:00
iota97 fe86f257b5 Cache 60 FPS requirement 2020-09-15 07:49:01 +02:00
iota97 0c885db052 User chain support 2020-09-13 21:48:00 +02:00
Henrik Rydgård ccc0331279 Move timeutil to Common. (Experiment to see how much work it is to move these). 2020-08-15 20:53:08 +02:00
Henrik Rydgård b43698a13d Remove most instances of base/logging.h from Common, Core, GPU, more 2020-08-15 19:08:44 +02:00
Unknown W. Brackets b8342fb8ec SaveState: Rename ChunkFile files to Serialize.
Makes more sense and less weird than ChunkFileDoMap, etc.
2020-08-10 08:04:05 +00:00
Unknown W. Brackets 1dc5ee424b SaveState: Split out Do types to reduce headers. 2020-08-10 08:03:44 +00:00
Unknown W. Brackets 4b4e3432cd SaveState: Split Do() into a separate header. 2020-08-10 08:03:41 +00:00
Henrik Rydgård d57edfbdac Rename FramebufferCommon.cpp/h to FramebufferManagerCommon.cpp/h for consistency 2020-08-03 23:17:22 +02:00
Unknown W. Brackets 4ef63843d2 Display: Allow unthrottle to skip only flipping.
Before, it either flipped continuously, or forced frameskip on.  This
makes it so you can still draw frames, but skip actual flips.

This is useful when games draw things only in a single frame and reuse
later.  It's also useful when measuring speed improvements if you already
get 100% speed on a device.
2020-07-19 13:57:04 +02:00
Henrik Rydgård 1897eed9b4 More buildfixes 2020-07-18 21:43:13 +02:00
Henrik Rydgård a722dfe0fb Formalize "core excpetions" as a concept 2020-07-12 15:25:21 +02:00
Henrik Rydgård df6f216056 Disable the "Duplicate frames" feature if frameskip != 0. Works around / Fixes #13068 2020-06-28 22:20:22 +02:00
Henrik Rydgård 788b8a29d6 Fix the logic around postEffectRequiresFlip so duplicateFrames doesn't require a post shader. 2020-03-17 13:10:43 +01:00
Unknown W. Brackets a6edf70aa0 Display: Update latched fbaddr on immediate update.
This is needed for the next sceDisplayGetFramebuf() to return the right
value.  This is why it didn't seem to match tests.
2020-03-15 19:13:41 -07:00
Henrik Rydgård d385096599 Add option to improve frame pacing through duplicate frames if framerate is below 60hz.
Should help #9736, and fixes #12325.
2020-03-15 17:33:16 +01:00
Unknown W. Brackets 6652fe261f PPGe: Use TextDrawer for save UI if available.
This should result in better spacing for non-Latin characters, and less
missing letters.  Basically the same benefits as for the UI.
2020-03-10 21:30:53 -07:00
Unknown W. Brackets cebcfb1bbd GPU: Use old frame when presenting a skip.
If we flip using a skipped frame, we may show an even older frame causing
weird flickering.
2020-03-01 13:55:28 -08:00
Unknown W. Brackets 566e46d70c Vulkan: Allow alt speed above 60 with vsync.
Enabling frameskip when needed.  Also don't enable frameskip when it's not
needed, such as OpenGL on Windows with >100% alt speed.
2020-03-01 07:44:06 -08:00
Henrik Rydgård 2ec82951a0 Merge pull request #12659 from unknownbrackets/vsync
Support vsync in all hardware backends, support runtime update
2020-03-01 09:52:14 +01:00
Unknown W. Brackets 2a3fd05651 Vulkan: Present using FIFO for vsync.
This allows the setting to be changed at runtime in Vulkan too.

Should help #10105.
2020-02-29 22:48:59 -08:00
Unknown W. Brackets ce694da5ff UI: Separate sleep time in frame time graph.
It's useful to know how much of the frame time is active vs inactive.
2020-02-17 11:29:32 -08:00
iota97 90ff68e6c9 Framegraph in devmenu 2020-02-11 08:19:30 +01:00
Unknown W. Brackets 5009698cc0 Core: Use a shared_ptr for i18n categories.
This does not make them thread safe, but it reduces the chances of a crash
a bit (see #12594.)
2020-02-09 07:35:16 -08:00
李通洲 55bb58e13e NativeApp: add System_GetPropertyFloat all the places 2020-02-04 09:20:34 +08:00
Unknown W. Brackets bc4a203fcf Power: Correct hz on update and improve resched.
It only reschedules when the PLL changes, which changes in steps.  This
also reads back much more accurate Mhz for each of PLL, CPU, and bus.
2019-04-14 14:51:35 -07:00
Unknown W. Brackets 11be1e7a67 Core: Fix lag sync on game start / after pause.
Fixes #11189.  It was often stuck thinking it was constantly running over,
needed a reset on large delay.
2019-02-19 03:09:42 -08:00
Henrik Rydgard 38a2d83aa8 Partially revert #10456 (avoid limit FPS without a clear).
It's a pretty gnarly hack-upon-a-hack. Better to remove the original hack (limit fps) in the general case.
2019-02-06 18:31:02 +01:00
Henrik Rydgard 47a9145355 Remove iForceMaxEmulatedFPS and replace with a compat setting for the two games that really need it.
Takes care of one setting listed in #8171 "Options to remove"
2019-02-06 15:03:15 +01:00
mrfixit2001 d9ad57e918 Move comments in function to be more relevant 2018-11-04 13:33:42 -05:00
root c19d3fe06a MRFIXIT2001: This patch adds a second frameskip setting, one for setting the # of frames to skip, one for setting the % of frames to skip based off fps 2018-11-03 01:33:41 +00:00
Unknown W. Brackets 014d9ddead Display: Resched interrupt before vblank threads.
Otherwise, we may first schedule to a woken thread, and then immediately
reschedule to the interrupt.  Each reschedule costs ticks, and it doesn't
look like this should cause two reschedules.

Improves #11414, Breath of Fire 3 frame flicker.
2018-10-07 14:41:08 -07:00
Unknown W. Brackets c10b2035b5 Debugger: Prevent record with no commands.
Should cut down on empty dumps, at least.
2018-09-01 09:51:04 -07:00
Unknown W. Brackets 95f270778e Core: Allow toggle between 2 custom speeds.
In addition to virtual keys for each speed separately.
2018-06-23 10:59:18 -07:00
Unknown W. Brackets d33b8643cb Display: Prevent delaying flips inside interrupts.
It causes us to run out of idle threads, and doesn't even make sense.
2018-05-08 18:32:25 -07:00
Henrik Rydgård b6472b562b Revert "Limit the flip delay in the other direction to try to work around #10763." 2018-05-02 10:07:37 +02:00
Henrik Rydgård 5f9767d19e Remove misleading log 2018-04-29 09:45:34 +02:00
Henrik Rydgård 687b5f92b1 Limit the flip delay in the other direction to try to work around #10763. 2018-04-20 11:49:38 +02:00
Henrik Rydgård c1e05ae861 Let's not do immediate flips in non-buffered. Should help #10395 2018-03-11 17:42:16 +01:00
Unknown W. Brackets f9750dd137 Display: Avoid limiting FPS without a clear.
A bit of a dirty heuristic to avoid the slowdown in #8538.
2017-12-26 19:37:40 -08:00
Unknown W. Brackets 1776726bd6 Display: Only reapply state on load.
Shouldn't be needed on save.
2017-12-09 21:54:48 -08:00
Unknown W. Brackets 6f99383733 Display: Reset cycle counter on load state. 2017-12-09 21:53:26 -08:00
Henrik Rydgård 54ff4c8822 Avoid multiple flips per frame, fixes immediate flip for God of War 2017-12-06 14:29:08 +01:00
Henrik Rydgård 4c720631c1 Add mitigation for games like GTA that never call sceDisplaySetFramebuf 2017-12-06 14:29:08 +01:00
Henrik Rydgård 522de63eed Flip immediately if that's OK. This can save up to a frame of graphics latency, in games that display "immediately" instead of latched. 2017-12-06 14:29:08 +01:00
Unknown W. Brackets b36a2c608b Display: Correct max FPS limiting skew.
We were letting a percentage of too frequent flips through, causing
sometimes much higher FPS still.  Improves performance in GoW.
2017-12-03 07:01:05 -08:00
Unknown W. Brackets 79cb51aa91 UI: Show slow message based on refresh rate.
It was always showing because it wasn't divided by 1000.
2017-07-01 16:21:47 -07:00