From 7fcd0fee6d580a381fdc4a4ec5b77687e4857b5b Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Sun, 5 Apr 2020 17:23:49 -0400 Subject: Buffer Cache: Use vAddr instead of physical memory. --- src/video_core/memory_manager.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/video_core/memory_manager.h') diff --git a/src/video_core/memory_manager.h b/src/video_core/memory_manager.h index 073bdb491..f4ec77a3d 100644 --- a/src/video_core/memory_manager.h +++ b/src/video_core/memory_manager.h @@ -97,6 +97,11 @@ public: void WriteBlockUnsafe(GPUVAddr dest_addr, const void* src_buffer, std::size_t size); void CopyBlockUnsafe(GPUVAddr dest_addr, GPUVAddr src_addr, std::size_t size); + static bool IsGranularRange(GPUVAddr gpu_addr, std::size_t size) { + const std::size_t page = (gpu_addr & page_mask) + size; + return page <= page_size; + } + private: using VMAMap = std::map; using VMAHandle = VMAMap::const_iterator; -- cgit v1.2.3 From e00d992848d8c7a0117b79f1fe9c521c333bf6f7 Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Wed, 8 Apr 2020 12:08:06 -0400 Subject: GPUMemoryManager: Improve safety of memory reads. --- src/video_core/memory_manager.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/video_core/memory_manager.h') diff --git a/src/video_core/memory_manager.h b/src/video_core/memory_manager.h index f4ec77a3d..987400fdd 100644 --- a/src/video_core/memory_manager.h +++ b/src/video_core/memory_manager.h @@ -97,10 +97,7 @@ public: void WriteBlockUnsafe(GPUVAddr dest_addr, const void* src_buffer, std::size_t size); void CopyBlockUnsafe(GPUVAddr dest_addr, GPUVAddr src_addr, std::size_t size); - static bool IsGranularRange(GPUVAddr gpu_addr, std::size_t size) { - const std::size_t page = (gpu_addr & page_mask) + size; - return page <= page_size; - } + bool IsGranularRange(GPUVAddr gpu_addr, std::size_t size); private: using VMAMap = std::map; -- cgit v1.2.3 From 913f42a3a70d716fa65d639dc4a6dfc9687eec61 Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Wed, 8 Apr 2020 13:34:59 -0400 Subject: Memory: Address Feedback. --- src/video_core/memory_manager.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/video_core/memory_manager.h') diff --git a/src/video_core/memory_manager.h b/src/video_core/memory_manager.h index 987400fdd..0d9468535 100644 --- a/src/video_core/memory_manager.h +++ b/src/video_core/memory_manager.h @@ -97,6 +97,9 @@ public: void WriteBlockUnsafe(GPUVAddr dest_addr, const void* src_buffer, std::size_t size); void CopyBlockUnsafe(GPUVAddr dest_addr, GPUVAddr src_addr, std::size_t size); + /** + * IsGranularRange checks if a gpu region can be simply read with a pointer + */ bool IsGranularRange(GPUVAddr gpu_addr, std::size_t size); private: -- cgit v1.2.3