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

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

Issue 566023002: Clean up interfaces between Shader / ShaderTranslator / ANGLE side. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 ProgramCache::ProgramLoadResult MemoryProgramCache::LoadLinkedProgram( 123 ProgramCache::ProgramLoadResult MemoryProgramCache::LoadLinkedProgram(
124 GLuint program, 124 GLuint program,
125 Shader* shader_a, 125 Shader* shader_a,
126 const ShaderTranslatorInterface* translator_a, 126 const ShaderTranslatorInterface* translator_a,
127 Shader* shader_b, 127 Shader* shader_b,
128 const ShaderTranslatorInterface* translator_b, 128 const ShaderTranslatorInterface* translator_b,
129 const LocationMap* bind_attrib_location_map, 129 const LocationMap* bind_attrib_location_map,
130 const ShaderCacheCallback& shader_callback) { 130 const ShaderCacheCallback& shader_callback) {
131 char a_sha[kHashLength]; 131 char a_sha[kHashLength];
132 char b_sha[kHashLength]; 132 char b_sha[kHashLength];
133 DCHECK(shader_a && shader_a->signature_source() && 133 DCHECK(shader_a && !shader_a->signature_source().empty() &&
134 shader_b && shader_b->signature_source()); 134 shader_b && !shader_b->signature_source().empty());
135 ComputeShaderHash( 135 ComputeShaderHash(
136 *shader_a->signature_source(), translator_a, a_sha); 136 shader_a->signature_source(), translator_a, a_sha);
137 ComputeShaderHash( 137 ComputeShaderHash(
138 *shader_b->signature_source(), translator_b, b_sha); 138 shader_b->signature_source(), translator_b, b_sha);
139 139
140 char sha[kHashLength]; 140 char sha[kHashLength];
141 ComputeProgramHash(a_sha, 141 ComputeProgramHash(a_sha,
142 b_sha, 142 b_sha,
143 bind_attrib_location_map, 143 bind_attrib_location_map,
144 sha); 144 sha);
145 const std::string sha_string(sha, kHashLength); 145 const std::string sha_string(sha, kHashLength);
146 146
147 ProgramMRUCache::iterator found = store_.Get(sha_string); 147 ProgramMRUCache::iterator found = store_.Get(sha_string);
148 if (found == store_.end()) { 148 if (found == store_.end()) {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 scoped_ptr<char[]> binary(new char[length]); 199 scoped_ptr<char[]> binary(new char[length]);
200 glGetProgramBinary(program, 200 glGetProgramBinary(program,
201 length, 201 length,
202 NULL, 202 NULL,
203 &format, 203 &format,
204 binary.get()); 204 binary.get());
205 UMA_HISTOGRAM_COUNTS("GPU.ProgramCache.ProgramBinarySizeBytes", length); 205 UMA_HISTOGRAM_COUNTS("GPU.ProgramCache.ProgramBinarySizeBytes", length);
206 206
207 char a_sha[kHashLength]; 207 char a_sha[kHashLength];
208 char b_sha[kHashLength]; 208 char b_sha[kHashLength];
209 DCHECK(shader_a && shader_a->signature_source() && 209 DCHECK(shader_a && !shader_a->signature_source().empty() &&
210 shader_b && shader_b->signature_source()); 210 shader_b && !shader_b->signature_source().empty());
211 ComputeShaderHash( 211 ComputeShaderHash(
212 *shader_a->signature_source(), translator_a, a_sha); 212 shader_a->signature_source(), translator_a, a_sha);
213 ComputeShaderHash( 213 ComputeShaderHash(
214 *shader_b->signature_source(), translator_b, b_sha); 214 shader_b->signature_source(), translator_b, b_sha);
215 215
216 char sha[kHashLength]; 216 char sha[kHashLength];
217 ComputeProgramHash(a_sha, 217 ComputeProgramHash(a_sha,
218 b_sha, 218 b_sha,
219 bind_attrib_location_map, 219 bind_attrib_location_map,
220 sha); 220 sha);
221 const std::string sha_string(sha, sizeof(sha)); 221 const std::string sha_string(sha, sizeof(sha));
222 222
223 UMA_HISTOGRAM_COUNTS("GPU.ProgramCache.MemorySizeBeforeKb", 223 UMA_HISTOGRAM_COUNTS("GPU.ProgramCache.MemorySizeBeforeKb",
224 curr_size_bytes_ / 1024); 224 curr_size_bytes_ / 1024);
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 program_cache_->LinkedProgramCacheSuccess(program_hash); 361 program_cache_->LinkedProgramCacheSuccess(program_hash);
362 } 362 }
363 363
364 MemoryProgramCache::ProgramCacheValue::~ProgramCacheValue() { 364 MemoryProgramCache::ProgramCacheValue::~ProgramCacheValue() {
365 program_cache_->curr_size_bytes_ -= length_; 365 program_cache_->curr_size_bytes_ -= length_;
366 program_cache_->Evict(program_hash_); 366 program_cache_->Evict(program_hash_);
367 } 367 }
368 368
369 } // namespace gles2 369 } // namespace gles2
370 } // namespace gpu 370 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698