yuzu-mainline/src/video_core
ReinUsesLisp f6cb128eac shader_cache: Fix use-after-free and orphan invalidation cache entries
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-07-01 18:16:53 -03:00
..
buffer_cache buffer_cache: Use buffer methods instead of cache virtual methods 2020-06-24 02:36:14 -03:00
engines Merge pull request #4147 from ReinUsesLisp/hset2-imm 2020-06-26 23:14:56 -04:00
macro macro: Add support for "middle methods" on the code cache (#4112) 2020-06-30 02:32:24 -03:00
renderer_opengl Merge pull request #4157 from ReinUsesLisp/unified-turing 2020-06-30 14:36:51 -04:00
renderer_vulkan Merge pull request #4191 from Morph1984/vertex-formats 2020-06-30 03:30:00 -03:00
shader Merge pull request #4147 from ReinUsesLisp/hset2-imm 2020-06-26 23:14:56 -04:00
texture_cache Merge pull request #4176 from ReinUsesLisp/compatible-formats 2020-06-30 15:36:13 -04:00
textures Clang Format and Documentation. 2020-04-28 14:02:51 -04:00
CMakeLists.txt video_core/compatible_formats: Table to test if two formats are legal to view or copy 2020-06-26 19:28:11 -03:00
compatible_formats.cpp texture_cache: Test format compatibility before copying 2020-06-26 20:52:22 -03:00
compatible_formats.h video_core/compatible_formats: Table to test if two formats are legal to view or copy 2020-06-26 19:28:11 -03:00
dirty_flags.cpp DirtyFlags: relax need to set render_targets as dirty 2020-03-14 11:47:33 -04:00
dirty_flags.h DirtyFlags: relax need to set render_targets as dirty 2020-03-14 11:47:33 -04:00
dma_pusher.cpp DmaPusher: Remove dead code in step 2020-05-16 12:42:27 +10:00
dma_pusher.h DmaPusher: Remove dead code in step 2020-05-16 12:42:27 +10:00
fence_manager.h fixed_pipeline_state: explicitly use template keyword after 1f345ebe3a 2020-05-01 23:38:23 +00:00
gpu_asynch.cpp General: Correct rebase, sync gpu and context management. 2020-06-27 11:36:08 -04:00
gpu_asynch.h General: Correct rebase, sync gpu and context management. 2020-06-27 11:36:08 -04:00
gpu_synch.cpp General: Correct rebase, sync gpu and context management. 2020-06-27 11:36:08 -04:00
gpu_synch.h General: Correct rebase, sync gpu and context management. 2020-06-27 11:36:08 -04:00
gpu_thread.cpp General: Tune the priority of main emulation threads so they have higher priority than less important helper threads. 2020-06-27 11:36:09 -04:00
gpu_thread.h GPU: Implement Flush Requests for Async mode. 2020-04-22 11:36:17 -04:00
gpu.cpp General: Recover Prometheus project from harddrive failure 2020-06-27 11:35:06 -04:00
gpu.h General: Correct rebase, sync gpu and context management. 2020-06-27 11:36:08 -04:00
guest_driver.cpp gl_shader_cache: Rework shader cache and remove post-specializations 2020-03-09 18:40:06 -03:00
guest_driver.h gl_shader_cache: Rework shader cache and remove post-specializations 2020-03-09 18:40:06 -03:00
memory_manager.cpp memory_manager: Eliminate variable shadowing 2020-06-19 22:02:58 -04:00
memory_manager.h memory_manager: Eliminate variable shadowing 2020-06-19 22:02:58 -04:00
morton.cpp texture: Implement R8G8UI 2020-04-30 13:19:36 -04:00
morton.h renderer_opengl: Use block linear swizzling for CPU framebuffers 2019-08-21 02:17:14 -03:00
query_cache.h Rename PAGE_SHIFT to PAGE_BITS 2020-06-18 15:47:43 +01:00
rasterizer_accelerated.cpp core: memory: Move to Core::Memory namespace. 2020-04-17 00:59:28 -04:00
rasterizer_accelerated.h core: memory: Move to Core::Memory namespace. 2020-04-17 00:59:28 -04:00
rasterizer_interface.h {maxwell_3d,buffer_cache}: Implement memory barriers using 3D registers 2020-04-28 02:18:12 -03:00
renderer_base.cpp video_core/engines: Remove unnecessary includes 2019-03-05 20:35:32 -05:00
renderer_base.h Frontend/GPU: Refactor context management 2020-03-24 21:03:42 -06:00
sampler_cache.cpp video_core: Abstract vk_sampler_cache into a templated class 2019-04-02 15:54:11 -03:00
sampler_cache.h video_core: Abstract vk_sampler_cache into a templated class 2019-04-02 15:54:11 -03:00
shader_cache.h shader_cache: Fix use-after-free and orphan invalidation cache entries 2020-07-01 18:16:53 -03:00
surface.cpp texture: Implement R8G8UI 2020-04-30 13:19:36 -04:00
surface.h texture: Implement R8G8UI 2020-04-30 13:19:36 -04:00
video_core.cpp Address review and fix broken yuzu-tester build 2020-03-25 23:32:42 -06:00
video_core.h Frontend/GPU: Refactor context management 2020-03-24 21:03:42 -06:00