From dbc34db6ce21dfb119bb8756bde41c9e45f8515f Mon Sep 17 00:00:00 2001
From: FernandoS27 <fsahmkow27@gmail.com>
Date: Mon, 15 Oct 2018 21:09:38 -0400
Subject: [PATCH] Implement GetInRange in the Rasterizer Cache

---
 src/video_core/rasterizer_cache.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/video_core/rasterizer_cache.h b/src/video_core/rasterizer_cache.h
index 0a3b3951e..294b7c6ef 100644
--- a/src/video_core/rasterizer_cache.h
+++ b/src/video_core/rasterizer_cache.h
@@ -105,6 +105,22 @@ protected:
         return nullptr;
     }
 
+    std::vector<T> GetInRange(Tegra::GPUVAddr addr, size_t size) {
+        std::vector<T> objects;
+        if (size == 0)
+            return objects;
+
+        const ObjectInterval interval{addr, addr + size};
+        for (auto& pair : boost::make_iterator_range(object_cache.equal_range(interval))) {
+            for (auto& cached_object : pair.second) {
+                if (!cached_object)
+                    continue;
+                objects.push_back(cached_object);
+            }
+        }
+        return objects;
+    }
+
     /// Register an object into the cache
     void Register(const T& object) {
         object->SetIsRegistered(true);