summaryrefslogtreecommitdiffstats
path: root/src/video_core/rasterizer_cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/rasterizer_cache.h')
-rw-r--r--src/video_core/rasterizer_cache.h16
1 files changed, 16 insertions, 0 deletions
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);