Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(531)

Unified Diff: gpu/command_buffer/service/program_manager.cc

Issue 10837009: histograms for gpu program cache (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: fixes for merge + microseconds Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/memory_program_cache.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/program_manager.cc
diff --git a/gpu/command_buffer/service/program_manager.cc b/gpu/command_buffer/service/program_manager.cc
index b109be947696aa4e88461ba1801bd97a049adc0c..1226b1ea1427ca4702f93b89335222bbf9079824 100644
--- a/gpu/command_buffer/service/program_manager.cc
+++ b/gpu/command_buffer/service/program_manager.cc
@@ -13,7 +13,9 @@
#include "base/command_line.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
+#include "base/metrics/histogram.h"
#include "base/string_number_conversions.h"
+#include "base/time.h"
#include "gpu/command_buffer/common/gles2_cmd_format.h"
#include "gpu/command_buffer/common/gles2_cmd_utils.h"
#include "gpu/command_buffer/service/feature_info.h"
@@ -21,6 +23,8 @@
#include "gpu/command_buffer/service/gpu_switches.h"
#include "gpu/command_buffer/service/program_cache.h"
+using base::TimeDelta;
+
namespace gpu {
namespace gles2 {
@@ -381,15 +385,26 @@ void ProgramManager::ProgramInfo::ExecuteBindAttribLocationCalls() {
void ProgramManager::DoCompileShader(ShaderManager::ShaderInfo* info,
ShaderTranslator* translator,
FeatureInfo* feature_info) {
+ base::Time before = base::Time::Now();
if (program_cache_ &&
program_cache_->GetShaderCompilationStatus(info->source() ?
*info->source() : "") ==
ProgramCache::COMPILATION_SUCCEEDED) {
info->SetStatus(true, "", translator);
info->FlagSourceAsCompiled(false);
+ HISTOGRAM_CUSTOM_COUNTS("GPU.ProgramCache.CompilationCacheHitTime",
+ (base::Time::Now() - before).InMicroseconds(),
+ 100,
+ TimeDelta::FromSeconds(1).InMicroseconds(),
+ 50);
return;
}
ForceCompileShader(info->source(), info, translator, feature_info);
+ HISTOGRAM_CUSTOM_COUNTS("GPU.ProgramCache.CompilationCacheMissTime",
+ (base::Time::Now() - before).InMicroseconds(),
+ 100,
+ TimeDelta::FromSeconds(1).InMicroseconds(),
+ 50);
}
void ProgramManager::ForceCompileShader(const std::string* source,
@@ -467,6 +482,7 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
}
ExecuteBindAttribLocationCalls();
+ base::Time before_time = base::Time::Now();
bool link = true;
ProgramCache* cache = manager_->program_cache_;
if (cache) {
@@ -482,6 +498,7 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
attached_shaders_[1],
&bind_attrib_location_map_);
link = success != ProgramCache::PROGRAM_LOAD_SUCCESS;
+ UMA_HISTOGRAM_BOOLEAN("GPU.ProgramCache.LoadBinarySuccess", !link);
}
if (link) {
@@ -506,6 +523,7 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
}
if (link) {
+ before_time = base::Time::Now();
if (cache && gfx::g_GL_ARB_get_program_binary) {
glProgramParameteri(service_id(),
PROGRAM_BINARY_RETRIEVABLE_HINT,
@@ -523,6 +541,19 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
attached_shaders_[0],
attached_shaders_[1],
&bind_attrib_location_map_);
+ HISTOGRAM_CUSTOM_COUNTS(
+ "GPU.ProgramCache.BinaryCacheMissTime",
+ (base::Time::Now() - before_time).InMicroseconds(),
+ 100,
+ TimeDelta::FromSeconds(1).InMicroseconds(),
+ 50);
+ } else if (cache) {
+ HISTOGRAM_CUSTOM_COUNTS(
+ "GPU.ProgramCache.BinaryCacheHitTime",
+ (base::Time::Now() - before_time).InMicroseconds(),
+ 100,
+ TimeDelta::FromSeconds(1).InMicroseconds(),
+ 50);
}
} else {
UpdateLogInfo();
« no previous file with comments | « gpu/command_buffer/service/memory_program_cache.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698