Fernando Sahmkow
c5dbd93adb
VulkanBufferCache: Avoid adding barriers between multiple copies.
5 years ago
ameerj
1ea8073783
buffer_cache: Minor fixes
Loop through the tmp_intervals by reference, rather than by copy, and fix gl clear buffer size calculation.
5 years ago
Fernando Sahmkow
fe0acec539
Garbage Collection: Make it more agressive on high priority mode.
5 years ago
Fernando Sahmkow
ff48f06fb9
Garbage Collection: Adress Feedback.
5 years ago
Fernando Sahmkow
ba82bb359b
Garbage Collection: enable as default, eliminate option.
5 years ago
Fernando Sahmkow
d540d284b5
VideoCore: Rework Garbage Collection.
5 years ago
Lioncash
ec56a17acd
buffer_cache: Remove unused small_vector in CommitAsyncFlushesHigh()
Given this is non-trivial, the constructor is required to execute, so
this removes a bit of redundant codegen.
5 years ago
ReinUsesLisp
df9b7e18f5
buffer_cache: Fix debugging leftover
5 years ago
ReinUsesLisp
838d7e4ca5
buffer_cache: Fix size reductions not having in mind bind sizes
A buffer binding can change between shaders without changing the
shaders. This lead to outdated bindings on OpenGL.
5 years ago
ReinUsesLisp
94e751f415
buffer_cache: Invalidate fast buffers on compute
5 years ago
ReinUsesLisp
60a96c49e5
buffer_cache: Fix copy based uniform bindings tracking
5 years ago
ReinUsesLisp
4a2361a1e2
buffer_cache: Reduce uniform buffer size from shader usage
Increases performance significantly on certain titles.
5 years ago
ReinUsesLisp
a7e9756671
buffer_cache: Mark uniform buffers as dirty if any enable bit changes
5 years ago
ReinUsesLisp
d621e96d0d
shader: Initial OpenGL implementation
5 years ago
ReinUsesLisp
416e1b7441
spirv: Implement image buffers
5 years ago
ReinUsesLisp
e9a91bc5cc
shader: Interact texture buffers with buffer cache
5 years ago
ReinUsesLisp
6e2ca7fbee
buffer_cache: Simplify clear logic
Use existing helper functions and avoid looping when
only one buffer has to be active.
5 years ago
Fernando Sahmkow
1ae4b684ff
Buffer cache: Fixes, Clang and Feedback.
5 years ago
Fernando Sahmkow
a0eb3f8a3e
Buffer Cache: Fixes to DMA Copy.
5 years ago
Fernando Sahmkow
8039be8b19
BufferCache: fix clearing on forced download.
5 years ago
Fernando Sahmkow
b780d5b5c5
DMAEngine: Accelerate BufferClear
5 years ago
Fernando Sahmkow
bc19d28963
accelerateDMA: Fixes and feedback.
5 years ago
Fernando Sahmkow
be1a3f7a0f
accelerateDMA: Accelerate Buffer Copies.
5 years ago
Fernando Sahmkow
977904dd84
Buffer Cache: Address Feedback.
5 years ago
Fernando Sahmkow
5e78ad4378
Buffer Cache: Fix GCC copmpile error
5 years ago
Fernando Sahmkow
2c8f4ed27f
BufferCache: Additional download fixes.
5 years ago
Fernando Sahmkow
f75544a943
Buffer Cache: Revert unnecessary range reduction.
5 years ago
Fernando Sahmkow
cf38faee9b
Fence Manager: Force ordering on WFI.
5 years ago
Fernando Sahmkow
73638ca593
Buffer Cache: Eliminate the AC Hack as the base game is fixed in Hades.
5 years ago
Fernando Sahmkow
63915bf2de
Fence Manager: Add fences on Reference Count.
5 years ago
Fernando Sahmkow
35327dbde3
Videocore: Address Feedback & CLANG Format.
5 years ago
Fernando Sahmkow
0e4d4b4beb
Buffer Cache: Fix High Downloads and don't predownload on Extreme.
5 years ago
ReinUsesLisp
9476309d53
buffer_cache: Only flush downloaded size
Fixes a regression unintentionally introduced by the garbage collector.
This makes regular memory downloads only flush the requested sizes.
This negatively affected Koei Tecmo games.
5 years ago
ReinUsesLisp
b4894faeae
buffer_cache/texture_cache: Make GC functions private
5 years ago
ReinUsesLisp
e79d02bf38
buffer_cache: Silence implicit cast warning
5 years ago
Wunkolo
4569f39c7c
common: Replace common_sizes into user-literals
Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc
user-literals within literals.h.
To keep the global namespace clean, users will have to use:
```
using namespace Common::Literals;
```
to access these literals.
5 years ago
Fernando Sahmkow
ca6f47c686
Reaper: Change memory restrictions on TC depending on host memory on VK.
5 years ago
Fernando Sahmkow
0dd98842bf
Reaper: Address Feedback.
5 years ago
Fernando Sahmkow
954ad2a61e
Reaper: Setup settings and final tuning.
5 years ago
Fernando Sahmkow
d8ad6aa187
Reaper: Tune it up to be an smart GC.
5 years ago
ReinUsesLisp
a11bc4a382
Initial Reaper Setup
WIP
5 years ago
Markus Wick
6755025310
Fix GCC undefined behavior sanitizer.
* Wrong alignment in u64 LOG_DEBUG -> memcpy.
* Huge shift exponent in stride calculation for linear buffer, unused result -> skipped.
* Large shift in buffer cache if word = 0, skip checking for set bits.
Non of those were critical, so this should not change any behavior.
At least with the assumption, that the last one used masking behavior, which always yield continuous_bits = 0.
5 years ago
ameerj
859ba21f6d
buffer_cache: Simplify uniform disabling logic
5 years ago
Markus Wick
5a8cd1b118
Fix two GCC 11 warnings: Unneeded copies.
std::move created an unneeded copy.
iterating without reference also created copies.
5 years ago
ameerj
acf22336ec
buffer_cache: Ensure null buffers cannot take the fast uniform bind path
Fixes a crash in New Pokemon Snap
5 years ago
bunnei
a4c6712a4b
common: Move settings to common from core.
- Removes a dependency on core and input_common from common.
5 years ago
ReinUsesLisp
5ad62e7bfc
buffer_cache: Heuristically decide to skip cache on uniform buffers
Some games benefit from skipping caches (Pokémon Sword), and others
don't (Animal Crossing: New Horizons). Add an heuristic to decide this
at runtime.
The cache hit ratio has to be ~98% or better to not skip the cache.
There are 16 frames of buffer.
5 years ago
ReinUsesLisp
0b8b961442
buffer_cache: Add extra bytes to guest SSBOs
Bind extra bytes beyond the guest API's bound range.
This is due to some games like Astral Chain operating out of bounds.
Binding the whole map range would be technically correct, but games
have large maps that make this approach unaffordable for now.
5 years ago
ReinUsesLisp
3da87d3f12
gl_buffer_cache: Drop interop based parameter buffer workarounds
Sacrify runtime performance to avoid generating kernel exceptions on
Windows due to our abusive aliasing of interop buffer objects.
5 years ago
ReinUsesLisp
2b95c137ff
buffer_cache: Heuristically detect stream buffers
Detect when a memory region has been joined several times and increase
the size of the created buffer on those instances. The buffer is assumed
to be a "stream buffer", increasing its size should stop us from
constantly recreating it and fragmenting memory.
5 years ago