summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader_cache.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-07-14shader_cache: Make use of std::erase_ifLioncash1-2/+2
Now that we use C++20, we can also make use of std::erase_if instead of needing to do the erase-remove idiom.
2020-07-01shader_cache: Fix use-after-free and orphan invalidation cache entriesReinUsesLisp1-29/+41
This fixes some cases where entries could have been removed multiple times reading freed memory. To address this issue this commit removes duplicates from entries marked for removal and sorts out the removal process to fix another use-after-free situation. Another issue fixed in this commit is orphan invalidation cache entries. Previously only the entries that were invalidated in the current operations had its entries removed. This led to more use-after-free situations when these entries were actually invalidated but referenced an object that didn't exist.
2020-06-18Rename PAGE_SHIFT to PAGE_BITSMerryMage1-5/+5
macOS header files #define PAGE_SHIFT
2020-06-07shader_cache: Implement a generic shader cacheReinUsesLisp1-0/+228
Implement a generic shader cache for fast lookups and invalidations. Invalidations are cheap but expensive when a shader is invalidated. Use two mutexes instead of one to avoid locking invalidations for lookups and vice versa. When a shader has to be removed, lookups are locked as expected.