diff options
Diffstat (limited to 'shaders/texture-unit-cache.cpp')
-rw-r--r-- | shaders/texture-unit-cache.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/shaders/texture-unit-cache.cpp b/shaders/texture-unit-cache.cpp index 71d21a8f..2c415c80 100644 --- a/shaders/texture-unit-cache.cpp +++ b/shaders/texture-unit-cache.cpp @@ -91,7 +91,7 @@ void texture_unit_cache::unlock(size_t i, bool reuse_immediately) units[i] = { .ptr = units[i].ptr, .lru_val = reuse_immediately ? 0 : ++lru_counter }; } -void texture_unit_cache::output_stats() const +void texture_unit_cache::output_stats() { auto total = cache_hit_count + cache_miss_count; @@ -100,6 +100,11 @@ void texture_unit_cache::output_stats() const auto ratio = (double)cache_hit_count/(double)(cache_hit_count+cache_miss_count); printf("texture-binding: hit rate %.2f%% (%zu binds total)\n", ratio*100, (size_t)total); std::fflush(stdout); } + if (total > (size_t)10'000) + { + cache_hit_count /= 5; + cache_miss_count /= 5; + } } size_t texture_unit_cache::get_unit_count() @@ -108,7 +113,7 @@ size_t texture_unit_cache::get_unit_count() GLint value = 0; glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &value); fm_assert(value >= /*GL 3.3*/ 16); - //value = 16; // for performance testing + value = 1; // limit for performance testing return value; }(); return (size_t)ret; |