Commit 36d12a3b authored by dmurph@chromium.org's avatar dmurph@chromium.org

GPU program cache - switched to high res timings, and time report binary cache...

GPU program cache - switched to high res timings, and time report binary cache miss without the cache on.


Review URL: https://chromiumcodereview.appspot.com/10836344

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152417 0039d316-1c4b-4281-b951-d872f2087c98
parent a5e00a11
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "gpu/command_buffer/service/program_cache.h" #include "gpu/command_buffer/service/program_cache.h"
using base::TimeDelta; using base::TimeDelta;
using base::TimeTicks;
namespace gpu { namespace gpu {
namespace gles2 { namespace gles2 {
...@@ -385,23 +386,25 @@ void ProgramManager::ProgramInfo::ExecuteBindAttribLocationCalls() { ...@@ -385,23 +386,25 @@ void ProgramManager::ProgramInfo::ExecuteBindAttribLocationCalls() {
void ProgramManager::DoCompileShader(ShaderManager::ShaderInfo* info, void ProgramManager::DoCompileShader(ShaderManager::ShaderInfo* info,
ShaderTranslator* translator, ShaderTranslator* translator,
FeatureInfo* feature_info) { FeatureInfo* feature_info) {
base::Time before = base::Time::Now(); TimeTicks before = TimeTicks::HighResNow();
if (program_cache_ && if (program_cache_ &&
program_cache_->GetShaderCompilationStatus(info->source() ? program_cache_->GetShaderCompilationStatus(info->source() ?
*info->source() : "") == *info->source() : "") ==
ProgramCache::COMPILATION_SUCCEEDED) { ProgramCache::COMPILATION_SUCCEEDED) {
info->SetStatus(true, "", translator); info->SetStatus(true, "", translator);
info->FlagSourceAsCompiled(false); info->FlagSourceAsCompiled(false);
UMA_HISTOGRAM_CUSTOM_COUNTS("GPU.ProgramCache.CompilationCacheHitTime", UMA_HISTOGRAM_CUSTOM_COUNTS(
(base::Time::Now() - before).InMicroseconds(), "GPU.ProgramCache.CompilationCacheHitTime",
(TimeTicks::HighResNow() - before).InMicroseconds(),
0, 0,
TimeDelta::FromSeconds(1).InMicroseconds(), TimeDelta::FromSeconds(1).InMicroseconds(),
50); 50);
return; return;
} }
ForceCompileShader(info->source(), info, translator, feature_info); ForceCompileShader(info->source(), info, translator, feature_info);
UMA_HISTOGRAM_CUSTOM_COUNTS("GPU.ProgramCache.CompilationCacheMissTime", UMA_HISTOGRAM_CUSTOM_COUNTS(
(base::Time::Now() - before).InMicroseconds(), "GPU.ProgramCache.CompilationCacheMissTime",
(TimeTicks::HighResNow() - before).InMicroseconds(),
0, 0,
TimeDelta::FromSeconds(1).InMicroseconds(), TimeDelta::FromSeconds(1).InMicroseconds(),
50); 50);
...@@ -486,7 +489,7 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager, ...@@ -486,7 +489,7 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
} }
ExecuteBindAttribLocationCalls(); ExecuteBindAttribLocationCalls();
base::Time before_time = base::Time::Now(); TimeTicks before_time = TimeTicks::HighResNow();
bool link = true; bool link = true;
ProgramCache* cache = manager_->program_cache_; ProgramCache* cache = manager_->program_cache_;
if (cache) { if (cache) {
...@@ -527,7 +530,7 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager, ...@@ -527,7 +530,7 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
} }
if (link) { if (link) {
before_time = base::Time::Now(); before_time = TimeTicks::HighResNow();
if (cache && gfx::g_GL_ARB_get_program_binary) { if (cache && gfx::g_GL_ARB_get_program_binary) {
glProgramParameteri(service_id(), glProgramParameteri(service_id(),
PROGRAM_BINARY_RETRIEVABLE_HINT, PROGRAM_BINARY_RETRIEVABLE_HINT,
...@@ -547,18 +550,17 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager, ...@@ -547,18 +550,17 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
&bind_attrib_location_map_); &bind_attrib_location_map_);
UMA_HISTOGRAM_CUSTOM_COUNTS( UMA_HISTOGRAM_CUSTOM_COUNTS(
"GPU.ProgramCache.BinaryCacheMissTime", "GPU.ProgramCache.BinaryCacheMissTime",
(base::Time::Now() - before_time).InMicroseconds(), (TimeTicks::HighResNow() - before_time).InMicroseconds(),
0, 0,
TimeDelta::FromSeconds(10).InMicroseconds(), TimeDelta::FromSeconds(10).InMicroseconds(),
50); 50);
} else if (cache) { }
UMA_HISTOGRAM_CUSTOM_COUNTS( UMA_HISTOGRAM_CUSTOM_COUNTS(
"GPU.ProgramCache.BinaryCacheHitTime", "GPU.ProgramCache.BinaryCacheHitTime",
(base::Time::Now() - before_time).InMicroseconds(), (TimeTicks::HighResNow() - before_time).InMicroseconds(),
0, 0,
TimeDelta::FromSeconds(1).InMicroseconds(), TimeDelta::FromSeconds(1).InMicroseconds(),
50); 50);
}
} else { } else {
UpdateLogInfo(); UpdateLogInfo();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment