diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-04-05 18:58:23 +0200 |
---|---|---|
committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-04-06 15:21:46 +0200 |
commit | 9c0f40a1f5bea37b87a31e9f957c4d2a14a8e421 (patch) | |
tree | 0aca3e4623f87ee57694b028bea75fdf2ae3c32c /src/video_core/renderer_vulkan/vk_rasterizer.cpp | |
parent | Merge pull request #3513 from ReinUsesLisp/native-astc (diff) | |
download | yuzu-9c0f40a1f5bea37b87a31e9f957c4d2a14a8e421.tar yuzu-9c0f40a1f5bea37b87a31e9f957c4d2a14a8e421.tar.gz yuzu-9c0f40a1f5bea37b87a31e9f957c4d2a14a8e421.tar.bz2 yuzu-9c0f40a1f5bea37b87a31e9f957c4d2a14a8e421.tar.lz yuzu-9c0f40a1f5bea37b87a31e9f957c4d2a14a8e421.tar.xz yuzu-9c0f40a1f5bea37b87a31e9f957c4d2a14a8e421.tar.zst yuzu-9c0f40a1f5bea37b87a31e9f957c4d2a14a8e421.zip |
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_rasterizer.cpp')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.cpp | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 58c69b786..0ca72eb45 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -495,20 +495,28 @@ void RasterizerVulkan::Query(GPUVAddr gpu_addr, VideoCore::QueryType type, void RasterizerVulkan::FlushAll() {} -void RasterizerVulkan::FlushRegion(CacheAddr addr, u64 size) { - texture_cache.FlushRegion(addr, size); - buffer_cache.FlushRegion(addr, size); - query_cache.FlushRegion(addr, size); +void RasterizerVulkan::FlushRegion(VAddr addr, u64 size) { + if (!addr || !size) { + return; + } + CacheAddr cache_addr = ToCacheAddr(system.Memory().GetPointer(addr)); + texture_cache.FlushRegion(cache_addr, size); + buffer_cache.FlushRegion(cache_addr, size); + query_cache.FlushRegion(cache_addr, size); } -void RasterizerVulkan::InvalidateRegion(CacheAddr addr, u64 size) { - texture_cache.InvalidateRegion(addr, size); - pipeline_cache.InvalidateRegion(addr, size); - buffer_cache.InvalidateRegion(addr, size); - query_cache.InvalidateRegion(addr, size); +void RasterizerVulkan::InvalidateRegion(VAddr addr, u64 size) { + if (!addr || !size) { + return; + } + CacheAddr cache_addr = ToCacheAddr(system.Memory().GetPointer(addr)); + texture_cache.InvalidateRegion(cache_addr, size); + pipeline_cache.InvalidateRegion(cache_addr, size); + buffer_cache.InvalidateRegion(cache_addr, size); + query_cache.InvalidateRegion(cache_addr, size); } -void RasterizerVulkan::FlushAndInvalidateRegion(CacheAddr addr, u64 size) { +void RasterizerVulkan::FlushAndInvalidateRegion(VAddr addr, u64 size) { FlushRegion(addr, size); InvalidateRegion(addr, size); } |