summaryrefslogtreecommitdiffstats
path: root/src/video_core/buffer_cache/word_manager.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-05-07Buffer cache: always use async buffer downloads and fix regression.Fernando Sahmkow1-0/+13
2023-05-07GPU: Add Reactive flushingFernando Sahmkow1-2/+12
2023-05-01BufferCache: Fixes and address feedbackFernando Sahmkow1-199/+185
2023-04-29Implement Async downloads in normal and fix a few issues.Fernando Sahmkow1-2/+4
2023-04-29Buffer Cache: Fully rework the buffer cache.Fernando Sahmkow1-344/+206
2023-02-21svc: Fix type consistency (exposed on macOS)Merry1-1/+1
2023-02-09buffer_base: Partially revert changes from #9559ameerj1-6/+8
This fixes a regression where Yoshi's Crafted World (and potentially other titles) would enter an infinite loop when GPU Accuracy was set to "Normal"
2023-01-05BufferBase: Don't ignore GPU pages.Fernando Sahmkow1-8/+6
2022-11-23general: fix compile for Apple ClangLiam1-1/+1
2022-08-25video_core: add option for pessimistic flushingLiam1-1/+4
2022-08-20code: dodge PAGE_SIZE #defineKyle Kienapfel1-1/+1
Some header files, specifically for OSX and Musl libc define PAGE_SIZE to be a number This is great except in yuzu we're using PAGE_SIZE as a variable Specific example `static constexpr u64 PAGE_SIZE = u64(1) << PAGE_BITS;` PAGE_SIZE PAGE_BITS PAGE_MASK are all similar variables. Simply deleted the underscores, and then added YUZU_ prefix Might be worth noting that there are multiple uses in different classes/namespaces This list may not be exhaustive Core::Memory 12 bits (4096) QueryCacheBase 12 bits ShaderCache 14 bits (16384) TextureCache 20 bits (1048576, or 1MB) Fixes #8779
2022-04-23general: Convert source file copyright comments over to SPDXMorph1-3/+2
This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-03-24buffer_cache: reset cached write bits after flushing invalidationsLiam1-1/+2
2021-08-29Garbage Collection: Make it more agressive on high priority mode.Fernando Sahmkow1-2/+2
2021-08-29Garbage Collection: Adress Feedback.Fernando Sahmkow1-1/+8
2021-08-28VideoCore: Rework Garbage Collection.Fernando Sahmkow1-11/+2
2021-07-10Buffer Cache: Address Feedback.Fernando Sahmkow1-0/+5
2021-07-09Videocore: Address Feedback & CLANG Format.Fernando Sahmkow1-1/+1
2021-07-09Buffer Cache: Fix High Downloads and don't predownload on Extreme.Fernando Sahmkow1-6/+8
2021-06-16Initial Reaper SetupReinUsesLisp1-0/+11
WIP
2021-06-10Fix GCC undefined behavior sanitizer.Markus Wick1-0/+3
* 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.
2021-02-13buffer_cache: Heuristically detect stream buffersReinUsesLisp1-0/+11
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.
2021-02-13buffer_base: Add support for cached CPU writesReinUsesLisp1-61/+145
Some games usually write memory pages currently used by the GPU, causing rendering issues (e.g. flashing geometry and shadows on Link's Awakening). To workaround this issue, Guest CPU writes are delayed until the command buffer finishes processing, but the pages are updated immediately. The overall behavior is: - CPU writes are cached until they are flushed, they update the page state, but don't change the modification state. Cached writes stop pages from being flushed, in case games have meaningful data in it. - Command processing writes (e.g. push constants) update the page state and are marked to the command processor as dirty. They don't remove the state of cached writes.
2021-01-17video_core: Resolve -Wdocumentation warningsLioncash1-1/+1
Silences some -Wdocumentation warnings on Clang.
2021-01-13buffer_cache/buffer_base: Add a range tracking buffer containerReinUsesLisp1-0/+495
It keeps track of the modified CPU and GPU ranges on a CPU page granularity, notifying the given rasterizer about state changes in the tracking behavior of the buffer. Use a small vector optimization to store buffers smaller than 256 KiB locally instead of using free store memory allocations.