summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authordmurph@chromium.org <dmurph@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-20 22:51:32 +0000
committerdmurph@chromium.org <dmurph@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-20 22:51:32 +0000
commit36d12a3b65780a205369df4f81f399dc37788383 (patch)
tree9af40c419ee3af9e141b3b021027555141da4180 /gpu
parenta5e00a11caef1db4fdc1718a8c8546dc52d6c689 (diff)
downloadchromium_src-36d12a3b65780a205369df4f81f399dc37788383.zip
chromium_src-36d12a3b65780a205369df4f81f399dc37788383.tar.gz
chromium_src-36d12a3b65780a205369df4f81f399dc37788383.tar.bz2
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
Diffstat (limited to 'gpu')
-rw-r--r--gpu/command_buffer/service/program_manager.cc44
1 files changed, 23 insertions, 21 deletions
diff --git a/gpu/command_buffer/service/program_manager.cc b/gpu/command_buffer/service/program_manager.cc
index f1a0400..55d31aa 100644
--- a/gpu/command_buffer/service/program_manager.cc
+++ b/gpu/command_buffer/service/program_manager.cc
@@ -24,6 +24,7 @@
#include "gpu/command_buffer/service/program_cache.h"
using base::TimeDelta;
+using base::TimeTicks;
namespace gpu {
namespace gles2 {
@@ -385,26 +386,28 @@ void ProgramManager::ProgramInfo::ExecuteBindAttribLocationCalls() {
void ProgramManager::DoCompileShader(ShaderManager::ShaderInfo* info,
ShaderTranslator* translator,
FeatureInfo* feature_info) {
- base::Time before = base::Time::Now();
+ TimeTicks before = TimeTicks::HighResNow();
if (program_cache_ &&
program_cache_->GetShaderCompilationStatus(info->source() ?
*info->source() : "") ==
ProgramCache::COMPILATION_SUCCEEDED) {
info->SetStatus(true, "", translator);
info->FlagSourceAsCompiled(false);
- UMA_HISTOGRAM_CUSTOM_COUNTS("GPU.ProgramCache.CompilationCacheHitTime",
- (base::Time::Now() - before).InMicroseconds(),
- 0,
- TimeDelta::FromSeconds(1).InMicroseconds(),
- 50);
+ UMA_HISTOGRAM_CUSTOM_COUNTS(
+ "GPU.ProgramCache.CompilationCacheHitTime",
+ (TimeTicks::HighResNow() - before).InMicroseconds(),
+ 0,
+ TimeDelta::FromSeconds(1).InMicroseconds(),
+ 50);
return;
}
ForceCompileShader(info->source(), info, translator, feature_info);
- UMA_HISTOGRAM_CUSTOM_COUNTS("GPU.ProgramCache.CompilationCacheMissTime",
- (base::Time::Now() - before).InMicroseconds(),
- 0,
- TimeDelta::FromSeconds(1).InMicroseconds(),
- 50);
+ UMA_HISTOGRAM_CUSTOM_COUNTS(
+ "GPU.ProgramCache.CompilationCacheMissTime",
+ (TimeTicks::HighResNow() - before).InMicroseconds(),
+ 0,
+ TimeDelta::FromSeconds(1).InMicroseconds(),
+ 50);
}
void ProgramManager::ForceCompileShader(const std::string* source,
@@ -486,7 +489,7 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
}
ExecuteBindAttribLocationCalls();
- base::Time before_time = base::Time::Now();
+ TimeTicks before_time = TimeTicks::HighResNow();
bool link = true;
ProgramCache* cache = manager_->program_cache_;
if (cache) {
@@ -527,7 +530,7 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
}
if (link) {
- before_time = base::Time::Now();
+ before_time = TimeTicks::HighResNow();
if (cache && gfx::g_GL_ARB_get_program_binary) {
glProgramParameteri(service_id(),
PROGRAM_BINARY_RETRIEVABLE_HINT,
@@ -547,18 +550,17 @@ bool ProgramManager::ProgramInfo::Link(ShaderManager* manager,
&bind_attrib_location_map_);
UMA_HISTOGRAM_CUSTOM_COUNTS(
"GPU.ProgramCache.BinaryCacheMissTime",
- (base::Time::Now() - before_time).InMicroseconds(),
+ (TimeTicks::HighResNow() - before_time).InMicroseconds(),
0,
TimeDelta::FromSeconds(10).InMicroseconds(),
50);
- } else if (cache) {
- UMA_HISTOGRAM_CUSTOM_COUNTS(
- "GPU.ProgramCache.BinaryCacheHitTime",
- (base::Time::Now() - before_time).InMicroseconds(),
- 0,
- TimeDelta::FromSeconds(1).InMicroseconds(),
- 50);
}
+ UMA_HISTOGRAM_CUSTOM_COUNTS(
+ "GPU.ProgramCache.BinaryCacheHitTime",
+ (TimeTicks::HighResNow() - before_time).InMicroseconds(),
+ 0,
+ TimeDelta::FromSeconds(1).InMicroseconds(),
+ 50);
} else {
UpdateLogInfo();
}