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

Side by Side Diff: gpu/command_buffer/service/memory_program_cache.cc

Issue 903273002: Update from https://crrev.com/315085 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/memory_program_cache.h" 5 #include "gpu/command_buffer/service/memory_program_cache.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/sha1.h" 10 #include "base/sha1.h"
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 ProgramCache::ProgramLoadResult MemoryProgramCache::LoadLinkedProgram( 173 ProgramCache::ProgramLoadResult MemoryProgramCache::LoadLinkedProgram(
174 GLuint program, 174 GLuint program,
175 Shader* shader_a, 175 Shader* shader_a,
176 const ShaderTranslatorInterface* translator_a, 176 const ShaderTranslatorInterface* translator_a,
177 Shader* shader_b, 177 Shader* shader_b,
178 const ShaderTranslatorInterface* translator_b, 178 const ShaderTranslatorInterface* translator_b,
179 const LocationMap* bind_attrib_location_map, 179 const LocationMap* bind_attrib_location_map,
180 const ShaderCacheCallback& shader_callback) { 180 const ShaderCacheCallback& shader_callback) {
181 char a_sha[kHashLength]; 181 char a_sha[kHashLength];
182 char b_sha[kHashLength]; 182 char b_sha[kHashLength];
183 DCHECK(shader_a && !shader_a->signature_source().empty() && 183 DCHECK(shader_a && !shader_a->last_compiled_source().empty() &&
184 shader_b && !shader_b->signature_source().empty()); 184 shader_b && !shader_b->last_compiled_source().empty());
185 ComputeShaderHash( 185 ComputeShaderHash(
186 shader_a->signature_source(), translator_a, a_sha); 186 shader_a->last_compiled_source(), translator_a, a_sha);
187 ComputeShaderHash( 187 ComputeShaderHash(
188 shader_b->signature_source(), translator_b, b_sha); 188 shader_b->last_compiled_source(), translator_b, b_sha);
189 189
190 char sha[kHashLength]; 190 char sha[kHashLength];
191 ComputeProgramHash(a_sha, 191 ComputeProgramHash(a_sha,
192 b_sha, 192 b_sha,
193 bind_attrib_location_map, 193 bind_attrib_location_map,
194 sha); 194 sha);
195 const std::string sha_string(sha, kHashLength); 195 const std::string sha_string(sha, kHashLength);
196 196
197 ProgramMRUCache::iterator found = store_.Get(sha_string); 197 ProgramMRUCache::iterator found = store_.Get(sha_string);
198 if (found == store_.end()) { 198 if (found == store_.end()) {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 scoped_ptr<char[]> binary(new char[length]); 249 scoped_ptr<char[]> binary(new char[length]);
250 glGetProgramBinary(program, 250 glGetProgramBinary(program,
251 length, 251 length,
252 NULL, 252 NULL,
253 &format, 253 &format,
254 binary.get()); 254 binary.get());
255 UMA_HISTOGRAM_COUNTS("GPU.ProgramCache.ProgramBinarySizeBytes", length); 255 UMA_HISTOGRAM_COUNTS("GPU.ProgramCache.ProgramBinarySizeBytes", length);
256 256
257 char a_sha[kHashLength]; 257 char a_sha[kHashLength];
258 char b_sha[kHashLength]; 258 char b_sha[kHashLength];
259 DCHECK(shader_a && !shader_a->signature_source().empty() && 259 DCHECK(shader_a && !shader_a->last_compiled_source().empty() &&
260 shader_b && !shader_b->signature_source().empty()); 260 shader_b && !shader_b->last_compiled_source().empty());
261 ComputeShaderHash( 261 ComputeShaderHash(
262 shader_a->signature_source(), translator_a, a_sha); 262 shader_a->last_compiled_source(), translator_a, a_sha);
263 ComputeShaderHash( 263 ComputeShaderHash(
264 shader_b->signature_source(), translator_b, b_sha); 264 shader_b->last_compiled_source(), translator_b, b_sha);
265 265
266 char sha[kHashLength]; 266 char sha[kHashLength];
267 ComputeProgramHash(a_sha, 267 ComputeProgramHash(a_sha,
268 b_sha, 268 b_sha,
269 bind_attrib_location_map, 269 bind_attrib_location_map,
270 sha); 270 sha);
271 const std::string sha_string(sha, sizeof(sha)); 271 const std::string sha_string(sha, sizeof(sha));
272 272
273 UMA_HISTOGRAM_COUNTS("GPU.ProgramCache.MemorySizeBeforeKb", 273 UMA_HISTOGRAM_COUNTS("GPU.ProgramCache.MemorySizeBeforeKb",
274 curr_size_bytes_ / 1024); 274 curr_size_bytes_ / 1024);
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 program_cache_->LinkedProgramCacheSuccess(program_hash); 408 program_cache_->LinkedProgramCacheSuccess(program_hash);
409 } 409 }
410 410
411 MemoryProgramCache::ProgramCacheValue::~ProgramCacheValue() { 411 MemoryProgramCache::ProgramCacheValue::~ProgramCacheValue() {
412 program_cache_->curr_size_bytes_ -= length_; 412 program_cache_->curr_size_bytes_ -= length_;
413 program_cache_->Evict(program_hash_); 413 program_cache_->Evict(program_hash_);
414 } 414 }
415 415
416 } // namespace gles2 416 } // namespace gles2
417 } // namespace gpu 417 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/mailbox_manager_sync.cc ('k') | gpu/command_buffer/service/memory_program_cache_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698