mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-27 06:19:51 -05:00
Add some more profilng code
Update Ghoul repository
This commit is contained in:
@@ -219,10 +219,8 @@ void GlobeBrowsingModule::internalInitialize(const ghoul::Dictionary& dict) {
|
||||
global::callback::initializeGL.emplace_back([&]() {
|
||||
ZoneScopedN("GlobeBrowsingModule")
|
||||
|
||||
_tileCache = std::make_unique<globebrowsing::cache::MemoryAwareTileCache>(
|
||||
_tileCacheSizeMB
|
||||
);
|
||||
addPropertySubOwner(*_tileCache);
|
||||
_tileCache = std::make_unique<cache::MemoryAwareTileCache>(_tileCacheSizeMB);
|
||||
addPropertySubOwner(_tileCache.get());
|
||||
|
||||
tileprovider::initializeDefaultTile();
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <ghoul/filesystem/filesystem.h>
|
||||
#include <ghoul/logging/consolelog.h>
|
||||
#include <ghoul/logging/logmanager.h>
|
||||
#include <ghoul/misc/profiling.h>
|
||||
#include <cpl_conv.h>
|
||||
#include <gdal.h>
|
||||
|
||||
@@ -106,6 +107,8 @@ GdalWrapper::GdalWrapper(size_t maximumCacheSize, size_t maximumMaximumCacheSize
|
||||
1 // Step: One MB
|
||||
)
|
||||
{
|
||||
ZoneScoped
|
||||
|
||||
addProperty(_logGdalErrors);
|
||||
addProperty(_gdalMaximumCacheSize);
|
||||
|
||||
|
||||
@@ -195,10 +195,15 @@ MemoryAwareTileCache::TextureContainer::TextureContainer(TileTextureInitData ini
|
||||
: _initData(std::move(initData))
|
||||
, _numTextures(numTextures)
|
||||
{
|
||||
ZoneScoped
|
||||
|
||||
_textures.reserve(_numTextures);
|
||||
reset();
|
||||
}
|
||||
|
||||
void MemoryAwareTileCache::TextureContainer::reset() {
|
||||
ZoneScoped
|
||||
|
||||
_textures.clear();
|
||||
_freeTexture = 0;
|
||||
for (size_t i = 0; i < _numTextures; ++i) {
|
||||
@@ -222,6 +227,8 @@ void MemoryAwareTileCache::TextureContainer::reset() {
|
||||
}
|
||||
|
||||
void MemoryAwareTileCache::TextureContainer::reset(size_t numTextures) {
|
||||
ZoneScoped
|
||||
|
||||
_numTextures = numTextures;
|
||||
reset();
|
||||
}
|
||||
@@ -260,6 +267,8 @@ MemoryAwareTileCache::MemoryAwareTileCache(int tileCacheSize)
|
||||
, _applyTileCacheSize(ApplyTileCacheInfo)
|
||||
, _clearTileCache(ClearTileCacheInfo)
|
||||
{
|
||||
ZoneScoped
|
||||
|
||||
createDefaultTextureContainers();
|
||||
|
||||
_clearTileCache.onChange([&]() { clear(); });
|
||||
@@ -303,6 +312,8 @@ void MemoryAwareTileCache::clear() {
|
||||
}
|
||||
|
||||
void MemoryAwareTileCache::createDefaultTextureContainers() {
|
||||
ZoneScoped
|
||||
|
||||
for (int id = 0; id < layergroupid::NUM_LAYER_GROUPS; id++) {
|
||||
TileTextureInitData initData = tileTextureInitData(
|
||||
layergroupid::GroupID(id),
|
||||
@@ -315,6 +326,8 @@ void MemoryAwareTileCache::createDefaultTextureContainers() {
|
||||
void MemoryAwareTileCache::assureTextureContainerExists(
|
||||
const TileTextureInitData& initData)
|
||||
{
|
||||
ZoneScoped
|
||||
|
||||
TileTextureInitData::HashKey initDataKey = initData.hashKey;
|
||||
if (_textureContainerMap.find(initDataKey) == _textureContainerMap.end()) {
|
||||
// For now create 500 textures of this type
|
||||
@@ -328,9 +341,11 @@ void MemoryAwareTileCache::assureTextureContainerExists(
|
||||
}
|
||||
|
||||
void MemoryAwareTileCache::setSizeEstimated(size_t estimatedSize) {
|
||||
LDEBUG("Resetting tile cache size");
|
||||
ZoneScoped
|
||||
ghoul_assert(!_textureContainerMap.empty(), "Texture containers must exist.");
|
||||
|
||||
LDEBUG("Resetting tile cache size");
|
||||
|
||||
const size_t sumTextureTypeSize = std::accumulate(
|
||||
_textureContainerMap.cbegin(),
|
||||
_textureContainerMap.cend(),
|
||||
@@ -353,6 +368,8 @@ void MemoryAwareTileCache::setSizeEstimated(size_t estimatedSize) {
|
||||
}
|
||||
|
||||
void MemoryAwareTileCache::resetTextureContainerSize(size_t numTexturesPerTextureType) {
|
||||
ZoneScoped
|
||||
|
||||
_numTextureBytesAllocatedOnCPU = 0;
|
||||
for (std::pair<const TileTextureInitData::HashKey,
|
||||
TextureContainerTileCache>& p : _textureContainerMap)
|
||||
|
||||
@@ -84,7 +84,7 @@ struct ProviderTileHasher {
|
||||
|
||||
class MemoryAwareTileCache : public properties::PropertyOwner {
|
||||
public:
|
||||
MemoryAwareTileCache(int tileCacheSize = 1024);
|
||||
explicit MemoryAwareTileCache(int tileCacheSize = 1024);
|
||||
|
||||
void clear();
|
||||
void setSizeEstimated(size_t estimatedSize);
|
||||
|
||||
Reference in New Issue
Block a user