summaryrefslogtreecommitdiffstats
path: root/src/core/perf_stats.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-271-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
* general: Replace high_resolution_clock with steady_clockMorph2021-12-021-2/+2
| | | | On some OSes, high_resolution_clock is an alias to system_clock and is not monotonic in nature. Replace this with steady_clock.
* general: Rename "Frame Limit" references to "Speed Limit"ameerj2021-07-241-3/+3
| | | | | This setting is best referred to as a speed limit, as it involves the limits of all timing based aspects of the emulator, not only framerate. This allows us to differentiate it from the fps unlocker setting.
* Merge pull request #6317 from ameerj/fps-fixbunnei2021-05-191-3/+6
|\ | | | | perf_stats: Rework FPS counter to be more accurate
| * perf_stats: Rework FPS counter to be more accurateameerj2021-05-161-3/+6
| | | | | | | | | | | | | | | | | | The FPS counter was based on metrics in the nvdisp swapbuffers call. This metric would be accurate if the gpu thread/renderer were synchronous with the nvdisp service, but that's no longer the case. This commit moves the frame counting responsibility onto the concrete renderers after their frame draw calls. Resulting in more meaningful metrics. The displayed FPS is now made up of the average framerate between the previous and most recent update, in order to avoid distracting FPS counter updates when framerate is oscillating between close values. The status bar update frequency was also changed from 2 seconds to 500ms.
* | core: Make variable shadowing a compile-time errorLioncash2021-05-161-1/+1
|/ | | | | | Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
* perf_stats: Mark GetMeanFrametime() as constLioncash2020-08-031-6/+5
| | | | | | The general pattern is to mark mutexes as mutable when it comes to matters of constness, given the mutex acts as a transient member of a data structure.
* Address review commentsFearlessTobi2019-09-101-0/+1
|
* Add frametime logging for tracking performance over timefearlessTobi2019-09-101-1/+19
| | | | Co-Authored-By: jroweboy <jroweboy@gmail.com>
* core/core: Replace includes with forward declarations where applicableLioncash2018-08-311-12/+12
| | | | | | | | | | | The follow-up to e2457418dae19b889b2ad85255bb95d4cd0e4bff, which replaces most of the includes in the core header with forward declarations. This makes it so that if any of the headers the core header was previously including change, then no one will need to rebuild the bulk of the core, due to core.h being quite a prevalent inclusion. This should make turnaround for changes much faster for developers.
* core_timing: Make GetGlobalTimeUs() return std::chrono::microsecondsLioncash2018-08-061-4/+4
| | | | | Enforces the time unit being returned and also allows using the standard time utilities to manipulate it.
* PerfStats: Re-order and document members betterYuri Kunde Schlesner2017-02-271-4/+13
|
* Core: Re-write frame limiterYuri Kunde Schlesner2017-02-271-0/+16
| | | | | | | | | Now based on std::chrono, and also works in terms of emulated time instead of frames, so we can in the future frame-limit even when the display is disabled, etc. The frame limiter can also be enabled along with v-sync now, which should be useful for those with displays running at more than 60 Hz.
* Core: Make PerfStats internally lockedYuri Kunde Schlesner2017-02-271-0/+7
| | | | More ergonomic to use and will be required for upcoming changes.
* PerfStats: Add method to get the instantaneous time ratioYuri Kunde Schlesner2017-02-271-1/+9
|
* Add performance statistics to status barYuri Kunde Schlesner2017-02-271-0/+43