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

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

Issue 2019293002: Save interface block infomation to program cache. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 #ifndef GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_
6 #define GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ 6 #define GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 public: 57 public:
58 ProgramCacheValue(GLsizei length, 58 ProgramCacheValue(GLsizei length,
59 GLenum format, 59 GLenum format,
60 const char* data, 60 const char* data,
61 const std::string& program_hash, 61 const std::string& program_hash,
62 const char* shader_0_hash, 62 const char* shader_0_hash,
63 const AttributeMap& attrib_map_0, 63 const AttributeMap& attrib_map_0,
64 const UniformMap& uniform_map_0, 64 const UniformMap& uniform_map_0,
65 const VaryingMap& varying_map_0, 65 const VaryingMap& varying_map_0,
66 const OutputVariableList& output_variable_list_0, 66 const OutputVariableList& output_variable_list_0,
67 const InterfaceBlockMap& interface_block_map_0,
67 const char* shader_1_hash, 68 const char* shader_1_hash,
68 const AttributeMap& attrib_map_1, 69 const AttributeMap& attrib_map_1,
69 const UniformMap& uniform_map_1, 70 const UniformMap& uniform_map_1,
70 const VaryingMap& varying_map_1, 71 const VaryingMap& varying_map_1,
71 const OutputVariableList& output_variable_list_1, 72 const OutputVariableList& output_variable_list_1,
73 const InterfaceBlockMap& interface_block_map_1,
72 MemoryProgramCache* program_cache); 74 MemoryProgramCache* program_cache);
73 75
74 GLsizei length() const { 76 GLsizei length() const {
75 return length_; 77 return length_;
76 } 78 }
77 79
78 GLenum format() const { 80 GLenum format() const {
79 return format_; 81 return format_;
80 } 82 }
81 83
(...skipping 14 matching lines...) Expand all
96 } 98 }
97 99
98 const VaryingMap& varying_map_0() const { 100 const VaryingMap& varying_map_0() const {
99 return varying_map_0_; 101 return varying_map_0_;
100 } 102 }
101 103
102 const OutputVariableList& output_variable_list_0() const { 104 const OutputVariableList& output_variable_list_0() const {
103 return output_variable_list_0_; 105 return output_variable_list_0_;
104 } 106 }
105 107
108 const InterfaceBlockMap& interface_block_map_0() const {
109 return interface_block_map_0_;
110 }
111
106 const std::string& shader_1_hash() const { 112 const std::string& shader_1_hash() const {
107 return shader_1_hash_; 113 return shader_1_hash_;
108 } 114 }
109 115
110 const AttributeMap& attrib_map_1() const { 116 const AttributeMap& attrib_map_1() const {
111 return attrib_map_1_; 117 return attrib_map_1_;
112 } 118 }
113 119
114 const UniformMap& uniform_map_1() const { 120 const UniformMap& uniform_map_1() const {
115 return uniform_map_1_; 121 return uniform_map_1_;
116 } 122 }
117 123
118 const VaryingMap& varying_map_1() const { 124 const VaryingMap& varying_map_1() const {
119 return varying_map_1_; 125 return varying_map_1_;
120 } 126 }
121 127
122 const OutputVariableList& output_variable_list_1() const { 128 const OutputVariableList& output_variable_list_1() const {
123 return output_variable_list_1_; 129 return output_variable_list_1_;
124 } 130 }
125 131
132 const InterfaceBlockMap& interface_block_map_1() const {
133 return interface_block_map_1_;
134 }
135
126 private: 136 private:
127 friend class base::RefCounted<ProgramCacheValue>; 137 friend class base::RefCounted<ProgramCacheValue>;
128 138
129 ~ProgramCacheValue(); 139 ~ProgramCacheValue();
130 140
131 const GLsizei length_; 141 const GLsizei length_;
132 const GLenum format_; 142 const GLenum format_;
133 const std::unique_ptr<const char[]> data_; 143 const std::unique_ptr<const char[]> data_;
134 const std::string program_hash_; 144 const std::string program_hash_;
135 const std::string shader_0_hash_; 145 const std::string shader_0_hash_;
136 const AttributeMap attrib_map_0_; 146 const AttributeMap attrib_map_0_;
137 const UniformMap uniform_map_0_; 147 const UniformMap uniform_map_0_;
138 const VaryingMap varying_map_0_; 148 const VaryingMap varying_map_0_;
139 const OutputVariableList output_variable_list_0_; 149 const OutputVariableList output_variable_list_0_;
150 const InterfaceBlockMap interface_block_map_0_;
140 const std::string shader_1_hash_; 151 const std::string shader_1_hash_;
141 const AttributeMap attrib_map_1_; 152 const AttributeMap attrib_map_1_;
142 const UniformMap uniform_map_1_; 153 const UniformMap uniform_map_1_;
143 const VaryingMap varying_map_1_; 154 const VaryingMap varying_map_1_;
144 const OutputVariableList output_variable_list_1_; 155 const OutputVariableList output_variable_list_1_;
156 const InterfaceBlockMap interface_block_map_1_;
145 MemoryProgramCache* const program_cache_; 157 MemoryProgramCache* const program_cache_;
146 158
147 DISALLOW_COPY_AND_ASSIGN(ProgramCacheValue); 159 DISALLOW_COPY_AND_ASSIGN(ProgramCacheValue);
148 }; 160 };
149 161
150 friend class ProgramCacheValue; 162 friend class ProgramCacheValue;
151 163
152 typedef base::MRUCache<std::string, 164 typedef base::MRUCache<std::string,
153 scoped_refptr<ProgramCacheValue> > ProgramMRUCache; 165 scoped_refptr<ProgramCacheValue> > ProgramMRUCache;
154 166
155 const size_t max_size_bytes_; 167 const size_t max_size_bytes_;
156 const bool disable_gpu_shader_disk_cache_; 168 const bool disable_gpu_shader_disk_cache_;
157 size_t curr_size_bytes_; 169 size_t curr_size_bytes_;
158 ProgramMRUCache store_; 170 ProgramMRUCache store_;
159 171
160 DISALLOW_COPY_AND_ASSIGN(MemoryProgramCache); 172 DISALLOW_COPY_AND_ASSIGN(MemoryProgramCache);
161 }; 173 };
162 174
163 } // namespace gles2 175 } // namespace gles2
164 } // namespace gpu 176 } // namespace gpu
165 177
166 #endif // GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ 178 #endif // GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698