mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2024-11-23 18:19:21 +01:00
video_core: use explicit interval type in texture cache
The default is discrete_interval which has dynamic open-ness. We only use right_open intervals anyway. In theory this could allow some compile-time optimizations.
This commit is contained in:
parent
55ec7031cc
commit
cfd2ab6121
@ -80,11 +80,15 @@ struct CachedSurface;
|
|||||||
using Surface = std::shared_ptr<CachedSurface>;
|
using Surface = std::shared_ptr<CachedSurface>;
|
||||||
using SurfaceSet = std::set<Surface>;
|
using SurfaceSet = std::set<Surface>;
|
||||||
|
|
||||||
using SurfaceRegions = boost::icl::interval_set<PAddr>;
|
using SurfaceInterval = boost::icl::right_open_interval<PAddr>;
|
||||||
using SurfaceMap = boost::icl::interval_map<PAddr, Surface>;
|
using SurfaceRegions = boost::icl::interval_set<PAddr, std::less, SurfaceInterval>;
|
||||||
using SurfaceCache = boost::icl::interval_map<PAddr, SurfaceSet>;
|
using SurfaceMap =
|
||||||
|
boost::icl::interval_map<PAddr, Surface, boost::icl::partial_absorber, std::less,
|
||||||
|
boost::icl::inplace_plus, boost::icl::inter_section, SurfaceInterval>;
|
||||||
|
using SurfaceCache =
|
||||||
|
boost::icl::interval_map<PAddr, SurfaceSet, boost::icl::partial_absorber, std::less,
|
||||||
|
boost::icl::inplace_plus, boost::icl::inter_section, SurfaceInterval>;
|
||||||
|
|
||||||
using SurfaceInterval = SurfaceCache::interval_type;
|
|
||||||
static_assert(std::is_same<SurfaceRegions::interval_type, SurfaceCache::interval_type>() &&
|
static_assert(std::is_same<SurfaceRegions::interval_type, SurfaceCache::interval_type>() &&
|
||||||
std::is_same<SurfaceMap::interval_type, SurfaceCache::interval_type>(),
|
std::is_same<SurfaceMap::interval_type, SurfaceCache::interval_type>(),
|
||||||
"incorrect interval types");
|
"incorrect interval types");
|
||||||
@ -245,7 +249,7 @@ struct SurfaceParams {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SurfaceInterval GetInterval() const {
|
SurfaceInterval GetInterval() const {
|
||||||
return SurfaceInterval::right_open(addr, end);
|
return SurfaceInterval(addr, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the outer rectangle containing "interval"
|
// Returns the outer rectangle containing "interval"
|
||||||
|
Loading…
Reference in New Issue
Block a user