skyline/app/src/main
Billy Laws e45e7546c8 Redesign buffer megabuffering
Due to the frequency at which is is called megabuffering performance is critical to the performance of the entire emulator, especially in high-drawcall-count scenarios. After the view redesign, megabuffering on a per-view level was no longer possible nor desirable, and thus megabuffering was modified to just copy for every usage of a view. This worked great at the time since there were other bottlenecks, however gpu-new has since removed almost all of them and megabuffering is now a major sore point. Fix this by megabuffering small chunks and storing them in a page-table like structure within the buffer, these chunks can be referenced by multiple views and will be smartly invalidated whenever the sequence number or execution number changes to avoid any sequencing issues. In addition to this, to help the case where almost the whole buffer is read every single frame across a set of multiple views, an optimisation to skip the chunked tracking and use one large single megabuffer allocation and one single memcpy has been introduced. This reduces the overall amount of time spent in memcpy since large memcpys are quicker.
2022-11-02 17:46:07 +00:00
..
assets Update ngword2 archive with the correct content 2022-10-25 00:40:46 +02:00
cpp Redesign buffer megabuffering 2022-11-02 17:46:07 +00:00
java/emu/skyline Add CommandExecutor slot count setting 2022-11-02 17:46:07 +00:00
res Add CommandExecutor slot count setting 2022-11-02 17:46:07 +00:00
shaders Simplify blit helper shader vertex order 2022-08-10 15:43:16 +01:00
AndroidManifest.xml Introduce a dev app flavor for side-by-side installation 2022-10-01 13:01:46 +02:00