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

Side by Side Diff: gpu/command_buffer/service/shader_manager_unittest.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/shader_manager.h" 5 #include "gpu/command_buffer/service/shader_manager.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "gpu/command_buffer/service/gpu_service_test.h" 8 #include "gpu/command_buffer/service/gpu_service_test.h"
9 #include "gpu/command_buffer/service/mocks.h" 9 #include "gpu/command_buffer/service/mocks.h"
10 #include "gpu/command_buffer/service/test_helper.h" 10 #include "gpu/command_buffer/service/test_helper.h"
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 kClient1Id, kService1Id, kShader1Type); 120 kClient1Id, kService1Id, kShader1Type);
121 // Check shader got created. 121 // Check shader got created.
122 ASSERT_TRUE(shader1 != NULL); 122 ASSERT_TRUE(shader1 != NULL);
123 EXPECT_EQ(kService1Id, shader1->service_id()); 123 EXPECT_EQ(kService1Id, shader1->service_id());
124 // Check if the shader has correct type. 124 // Check if the shader has correct type.
125 EXPECT_EQ(kShader1Type, shader1->shader_type()); 125 EXPECT_EQ(kShader1Type, shader1->shader_type());
126 EXPECT_FALSE(shader1->valid()); 126 EXPECT_FALSE(shader1->valid());
127 EXPECT_FALSE(shader1->InUse()); 127 EXPECT_FALSE(shader1->InUse());
128 EXPECT_TRUE(shader1->source().empty()); 128 EXPECT_TRUE(shader1->source().empty());
129 EXPECT_TRUE(shader1->log_info().empty()); 129 EXPECT_TRUE(shader1->log_info().empty());
130 EXPECT_TRUE(shader1->signature_source().empty()); 130 EXPECT_TRUE(shader1->last_compiled_source().empty());
131 EXPECT_TRUE(shader1->translated_source().empty()); 131 EXPECT_TRUE(shader1->translated_source().empty());
132 EXPECT_EQ(0u, shader1->attrib_map().size()); 132 EXPECT_EQ(0u, shader1->attrib_map().size());
133 EXPECT_EQ(0u, shader1->uniform_map().size()); 133 EXPECT_EQ(0u, shader1->uniform_map().size());
134 EXPECT_EQ(0u, shader1->varying_map().size()); 134 EXPECT_EQ(0u, shader1->varying_map().size());
135 EXPECT_EQ(Shader::kShaderStateWaiting, shader1->shader_state());
135 136
136 // Check we can set its source. 137 // Check we can set its source.
137 shader1->set_source(kClient1Source); 138 shader1->set_source(kClient1Source);
138 EXPECT_STREQ(kClient1Source, shader1->source().c_str()); 139 EXPECT_STREQ(kClient1Source, shader1->source().c_str());
139 EXPECT_TRUE(shader1->signature_source().empty()); 140 EXPECT_TRUE(shader1->last_compiled_source().empty());
141
142 // Check that DoCompile() will not work if RequestCompile() was not called.
143 MockShaderTranslator translator;
144 shader1->DoCompile(&translator, Shader::kANGLE);
145 EXPECT_EQ(Shader::kShaderStateWaiting, shader1->shader_state());
146 EXPECT_FALSE(shader1->valid());
147
148 // Check RequestCompile() will update the state and last compiled source, but
149 // still keep the actual compile state invalid.
150 shader1->RequestCompile();
151 EXPECT_EQ(Shader::kShaderStateCompileRequested, shader1->shader_state());
152 EXPECT_STREQ(kClient1Source, shader1->last_compiled_source().c_str());
153 EXPECT_FALSE(shader1->valid());
140 154
141 // Check DoCompile() will set compilation states, log, translated source, 155 // Check DoCompile() will set compilation states, log, translated source,
142 // shader variables, and name mapping. 156 // shader variables, and name mapping.
143 const std::string kLog = "foo"; 157 const std::string kLog = "foo";
144 const std::string kTranslatedSource = "poo"; 158 const std::string kTranslatedSource = "poo";
145 159
146 AttributeMap attrib_map; 160 AttributeMap attrib_map;
147 attrib_map[kAttrib1Name] = TestHelper::ConstructAttribute( 161 attrib_map[kAttrib1Name] = TestHelper::ConstructAttribute(
148 kAttrib1Type, kAttrib1Size, kAttrib1Precision, 162 kAttrib1Type, kAttrib1Size, kAttrib1Precision,
149 kAttribStaticUse, kAttrib1Name); 163 kAttribStaticUse, kAttrib1Name);
(...skipping 11 matching lines...) Expand all
161 varying_map[kVarying1Name] = TestHelper::ConstructVarying( 175 varying_map[kVarying1Name] = TestHelper::ConstructVarying(
162 kVarying1Type, kVarying1Size, kVarying1Precision, 176 kVarying1Type, kVarying1Size, kVarying1Precision,
163 kVarying1StaticUse, kVarying1Name); 177 kVarying1StaticUse, kVarying1Name);
164 178
165 TestHelper::SetShaderStates( 179 TestHelper::SetShaderStates(
166 gl_.get(), shader1, true, &kLog, &kTranslatedSource, 180 gl_.get(), shader1, true, &kLog, &kTranslatedSource,
167 &attrib_map, &uniform_map, &varying_map, NULL); 181 &attrib_map, &uniform_map, &varying_map, NULL);
168 EXPECT_TRUE(shader1->valid()); 182 EXPECT_TRUE(shader1->valid());
169 // When compilation succeeds, no log is recorded. 183 // When compilation succeeds, no log is recorded.
170 EXPECT_STREQ("", shader1->log_info().c_str()); 184 EXPECT_STREQ("", shader1->log_info().c_str());
171 EXPECT_STREQ(kClient1Source, shader1->signature_source().c_str()); 185 EXPECT_STREQ(kClient1Source, shader1->last_compiled_source().c_str());
172 EXPECT_STREQ(kTranslatedSource.c_str(), shader1->translated_source().c_str()); 186 EXPECT_STREQ(kTranslatedSource.c_str(), shader1->translated_source().c_str());
173 187
174 // Check varying infos got copied. 188 // Check varying infos got copied.
175 EXPECT_EQ(attrib_map.size(), shader1->attrib_map().size()); 189 EXPECT_EQ(attrib_map.size(), shader1->attrib_map().size());
176 for (AttributeMap::const_iterator it = attrib_map.begin(); 190 for (AttributeMap::const_iterator it = attrib_map.begin();
177 it != attrib_map.end(); ++it) { 191 it != attrib_map.end(); ++it) {
178 const sh::Attribute* variable_info = shader1->GetAttribInfo(it->first); 192 const sh::Attribute* variable_info = shader1->GetAttribInfo(it->first);
179 ASSERT_TRUE(variable_info != NULL); 193 ASSERT_TRUE(variable_info != NULL);
180 EXPECT_EQ(it->second.type, variable_info->type); 194 EXPECT_EQ(it->second.type, variable_info->type);
181 EXPECT_EQ(it->second.arraySize, variable_info->arraySize); 195 EXPECT_EQ(it->second.arraySize, variable_info->arraySize);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 EXPECT_FALSE(shader1->InUse()); 272 EXPECT_FALSE(shader1->InUse());
259 shader2 = manager_.GetShader(kClient1Id); 273 shader2 = manager_.GetShader(kClient1Id);
260 EXPECT_EQ(shader1, shader2); 274 EXPECT_EQ(shader1, shader2);
261 manager_.MarkAsDeleted(shader1); // this should delete the shader. 275 manager_.MarkAsDeleted(shader1); // this should delete the shader.
262 shader2 = manager_.GetShader(kClient1Id); 276 shader2 = manager_.GetShader(kClient1Id);
263 EXPECT_TRUE(shader2 == NULL); 277 EXPECT_TRUE(shader2 == NULL);
264 } 278 }
265 279
266 } // namespace gles2 280 } // namespace gles2
267 } // namespace gpu 281 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/shader_manager.cc ('k') | gpu/command_buffer/service/shader_translator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698