skyline/app
Billy Laws 7709dc8cf6 Rewrite buffer megabuffering to be per view and more efficient
This commit implements several key optimisations in megabuffering that are all inherently interlinked.
- Megabuffering is moved from per-buffer to per-view copies, this makes megabuffering possible for small views into larger underlying buffers which is often the case with even the simplest of games,
- Megabuffering is no longer the default option, it is only enabled for buffer views that have had inline GPU writes applied to them in the past as that is the only case where they are beneficial. In any other case the cost of copying, even with a 128KiB limit can be significant.
- With both of these changes, there is now possibility for overlapping views where one uses megabuffering and one does not. In order to allow GPU inline writes to work consistently in such cases a system of 'host immutability' has been implemented, when a buffer is marked as host immutable for a given cycle, all writes to the buffer from that point to the point the cycle is signalled will be performed on the GPU, ensuring that the backing contents are correctly sequenced
2022-06-11 17:05:39 +05:30
..
libraries Update hades 2022-06-02 21:58:30 +01:00
src/main Rewrite buffer megabuffering to be per view and more efficient 2022-06-11 17:05:39 +05:30
.gitignore libNX FS Initalization (v0.3) 2019-10-18 16:22:38 +05:30
build.gradle Handle unsigned builds on CI 2022-06-11 17:05:39 +05:30
CMakeLists.txt Stub audin:u 2022-06-04 19:11:57 +01:00
proguard-rules.pro Keep member names in pro guard 2020-11-12 22:19:55 +05:30