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

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

Issue 1309743005: command_buffer: Implement EXT_blend_func_extended (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@new-05-path-fragment-input-gen
Patch Set: rebase Created 5 years 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 <GLES2/gl2.h> 5 #include <GLES2/gl2.h>
6 6
7 #include "gpu/command_buffer/service/shader_translator.h" 7 #include "gpu/command_buffer/service/shader_translator.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "ui/gl/gl_version_info.h" 9 #include "ui/gl/gl_version_info.h"
10 10
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 " gl_Position = vec4(1.0);\n" 91 " gl_Position = vec4(1.0);\n"
92 "}"; 92 "}";
93 93
94 // A valid shader should be successfully translated. 94 // A valid shader should be successfully translated.
95 std::string info_log, translated_source; 95 std::string info_log, translated_source;
96 int shader_version; 96 int shader_version;
97 AttributeMap attrib_map; 97 AttributeMap attrib_map;
98 UniformMap uniform_map; 98 UniformMap uniform_map;
99 VaryingMap varying_map; 99 VaryingMap varying_map;
100 InterfaceBlockMap interface_block_map; 100 InterfaceBlockMap interface_block_map;
101 OutputVariableList output_variable_list;
101 NameMap name_map; 102 NameMap name_map;
102 EXPECT_TRUE(vertex_translator_->Translate(shader, 103 EXPECT_TRUE(vertex_translator_->Translate(
103 &info_log, 104 shader, &info_log, &translated_source, &shader_version, &attrib_map,
104 &translated_source, 105 &uniform_map, &varying_map, &interface_block_map, &output_variable_list,
105 &shader_version, 106 &name_map));
106 &attrib_map, 107
107 &uniform_map,
108 &varying_map,
109 &interface_block_map,
110 &name_map));
111 // Info log must be NULL. 108 // Info log must be NULL.
112 EXPECT_TRUE(info_log.empty()); 109 EXPECT_TRUE(info_log.empty());
113 // Translated shader must be valid and non-empty. 110 // Translated shader must be valid and non-empty.
114 ASSERT_FALSE(translated_source.empty()); 111 ASSERT_FALSE(translated_source.empty());
115 // There should be no attributes, uniforms, and only one built-in 112 // There should be no attributes, uniforms, and only one built-in
116 // varying: gl_Position. 113 // varying: gl_Position.
117 EXPECT_TRUE(attrib_map.empty()); 114 EXPECT_TRUE(attrib_map.empty());
118 EXPECT_TRUE(uniform_map.empty()); 115 EXPECT_TRUE(uniform_map.empty());
119 EXPECT_TRUE(interface_block_map.empty()); 116 EXPECT_TRUE(interface_block_map.empty());
120 EXPECT_EQ(1u, varying_map.size()); 117 EXPECT_EQ(1u, varying_map.size());
118 EXPECT_TRUE(output_variable_list.empty());
121 // There should be no name mapping. 119 // There should be no name mapping.
122 EXPECT_TRUE(name_map.empty()); 120 EXPECT_TRUE(name_map.empty());
123 } 121 }
124 122
125 TEST_F(ShaderTranslatorTest, InvalidVertexShader) { 123 TEST_F(ShaderTranslatorTest, InvalidVertexShader) {
126 const char* bad_shader = "foo-bar"; 124 const char* bad_shader = "foo-bar";
127 const char* good_shader = 125 const char* good_shader =
128 "void main() {\n" 126 "void main() {\n"
129 " gl_Position = vec4(1.0);\n" 127 " gl_Position = vec4(1.0);\n"
130 "}"; 128 "}";
131 129
132 // An invalid shader should fail. 130 // An invalid shader should fail.
133 std::string info_log, translated_source; 131 std::string info_log, translated_source;
134 int shader_version; 132 int shader_version;
135 AttributeMap attrib_map; 133 AttributeMap attrib_map;
136 UniformMap uniform_map; 134 UniformMap uniform_map;
137 VaryingMap varying_map; 135 VaryingMap varying_map;
138 InterfaceBlockMap interface_block_map; 136 InterfaceBlockMap interface_block_map;
137 OutputVariableList output_variable_list;
139 NameMap name_map; 138 NameMap name_map;
140 EXPECT_FALSE(vertex_translator_->Translate(bad_shader, 139 EXPECT_FALSE(vertex_translator_->Translate(
141 &info_log, 140 bad_shader, &info_log, &translated_source, &shader_version, &attrib_map,
142 &translated_source, 141 &uniform_map, &varying_map, &interface_block_map, &output_variable_list,
143 &shader_version, 142 &name_map));
144 &attrib_map,
145 &uniform_map,
146 &varying_map,
147 &interface_block_map,
148 &name_map));
149 // Info log must be valid and non-empty. 143 // Info log must be valid and non-empty.
150 ASSERT_FALSE(info_log.empty()); 144 ASSERT_FALSE(info_log.empty());
151 // Translated shader must be NULL. 145 // Translated shader must be NULL.
152 EXPECT_TRUE(translated_source.empty()); 146 EXPECT_TRUE(translated_source.empty());
153 // There should be no attributes, uniforms, varyings, interface block or 147 // There should be no attributes, uniforms, varyings, interface block or
154 // name mapping. 148 // name mapping.
155 EXPECT_TRUE(attrib_map.empty()); 149 EXPECT_TRUE(attrib_map.empty());
156 EXPECT_TRUE(uniform_map.empty()); 150 EXPECT_TRUE(uniform_map.empty());
157 EXPECT_TRUE(varying_map.empty()); 151 EXPECT_TRUE(varying_map.empty());
158 EXPECT_TRUE(interface_block_map.empty()); 152 EXPECT_TRUE(interface_block_map.empty());
153 EXPECT_TRUE(output_variable_list.empty());
159 EXPECT_TRUE(name_map.empty()); 154 EXPECT_TRUE(name_map.empty());
160 155
161 // Try a good shader after bad. 156 // Try a good shader after bad.
162 info_log.clear(); 157 info_log.clear();
163 EXPECT_TRUE(vertex_translator_->Translate(good_shader, 158 EXPECT_TRUE(vertex_translator_->Translate(
164 &info_log, 159 good_shader, &info_log, &translated_source, &shader_version, &attrib_map,
165 &translated_source, 160 &uniform_map, &varying_map, &interface_block_map, &output_variable_list,
166 &shader_version, 161 &name_map));
167 &attrib_map,
168 &uniform_map,
169 &varying_map,
170 &interface_block_map,
171 &name_map));
172 EXPECT_TRUE(info_log.empty()); 162 EXPECT_TRUE(info_log.empty());
173 EXPECT_FALSE(translated_source.empty()); 163 EXPECT_FALSE(translated_source.empty());
174 EXPECT_TRUE(interface_block_map.empty()); 164 EXPECT_TRUE(interface_block_map.empty());
175 } 165 }
176 166
177 TEST_F(ShaderTranslatorTest, ValidFragmentShader) { 167 TEST_F(ShaderTranslatorTest, ValidFragmentShader) {
178 const char* shader = 168 const char* shader =
179 "void main() {\n" 169 "void main() {\n"
180 " gl_FragColor = vec4(1.0);\n" 170 " gl_FragColor = vec4(1.0);\n"
181 "}"; 171 "}";
182 172
183 // A valid shader should be successfully translated. 173 // A valid shader should be successfully translated.
184 std::string info_log, translated_source; 174 std::string info_log, translated_source;
185 int shader_version; 175 int shader_version;
186 AttributeMap attrib_map; 176 AttributeMap attrib_map;
187 UniformMap uniform_map; 177 UniformMap uniform_map;
188 VaryingMap varying_map; 178 VaryingMap varying_map;
189 InterfaceBlockMap interface_block_map; 179 InterfaceBlockMap interface_block_map;
180 OutputVariableList output_variable_list;
190 NameMap name_map; 181 NameMap name_map;
191 EXPECT_TRUE(fragment_translator_->Translate(shader, 182 EXPECT_TRUE(fragment_translator_->Translate(
192 &info_log, 183 shader, &info_log, &translated_source, &shader_version, &attrib_map,
193 &translated_source, 184 &uniform_map, &varying_map, &interface_block_map, &output_variable_list,
194 &shader_version, 185 &name_map));
195 &attrib_map,
196 &uniform_map,
197 &varying_map,
198 &interface_block_map,
199 &name_map));
200 // Info log must be NULL. 186 // Info log must be NULL.
201 EXPECT_TRUE(info_log.empty()); 187 EXPECT_TRUE(info_log.empty());
202 // Translated shader must be valid and non-empty. 188 // Translated shader must be valid and non-empty.
203 ASSERT_FALSE(translated_source.empty()); 189 ASSERT_FALSE(translated_source.empty());
204 // There should be no attributes, uniforms, varyings, interface block or 190 // There should be no attributes, uniforms, varyings, interface block or
205 // name mapping. 191 // name mapping.
206 EXPECT_TRUE(attrib_map.empty()); 192 EXPECT_TRUE(attrib_map.empty());
207 EXPECT_TRUE(uniform_map.empty()); 193 EXPECT_TRUE(uniform_map.empty());
208 EXPECT_TRUE(varying_map.empty()); 194 EXPECT_TRUE(varying_map.empty());
209 EXPECT_TRUE(interface_block_map.empty()); 195 EXPECT_TRUE(interface_block_map.empty());
210 EXPECT_TRUE(name_map.empty()); 196 EXPECT_TRUE(name_map.empty());
197 // gl_FragColor.
198 EXPECT_EQ(1u, output_variable_list.size());
211 } 199 }
212 200
213 TEST_F(ShaderTranslatorTest, InvalidFragmentShader) { 201 TEST_F(ShaderTranslatorTest, InvalidFragmentShader) {
214 const char* shader = "foo-bar"; 202 const char* shader = "foo-bar";
215 203
216 std::string info_log, translated_source; 204 std::string info_log, translated_source;
217 int shader_version; 205 int shader_version;
218 AttributeMap attrib_map; 206 AttributeMap attrib_map;
219 UniformMap uniform_map; 207 UniformMap uniform_map;
220 VaryingMap varying_map; 208 VaryingMap varying_map;
221 InterfaceBlockMap interface_block_map; 209 InterfaceBlockMap interface_block_map;
210 OutputVariableList output_variable_list;
222 NameMap name_map; 211 NameMap name_map;
223 // An invalid shader should fail. 212 // An invalid shader should fail.
224 EXPECT_FALSE(fragment_translator_->Translate(shader, 213 EXPECT_FALSE(fragment_translator_->Translate(
225 &info_log, 214 shader, &info_log, &translated_source, &shader_version, &attrib_map,
226 &translated_source, 215 &uniform_map, &varying_map, &interface_block_map, &output_variable_list,
227 &shader_version, 216 &name_map));
228 &attrib_map,
229 &uniform_map,
230 &varying_map,
231 &interface_block_map,
232 &name_map));
233 // Info log must be valid and non-empty. 217 // Info log must be valid and non-empty.
234 EXPECT_FALSE(info_log.empty()); 218 EXPECT_FALSE(info_log.empty());
235 // Translated shader must be NULL. 219 // Translated shader must be NULL.
236 EXPECT_TRUE(translated_source.empty()); 220 EXPECT_TRUE(translated_source.empty());
237 // There should be no attributes, uniforms, varyings, interface block or 221 // There should be no attributes, uniforms, varyings, interface block or
238 // name mapping. 222 // name mapping.
239 EXPECT_TRUE(attrib_map.empty()); 223 EXPECT_TRUE(attrib_map.empty());
240 EXPECT_TRUE(uniform_map.empty()); 224 EXPECT_TRUE(uniform_map.empty());
241 EXPECT_TRUE(varying_map.empty()); 225 EXPECT_TRUE(varying_map.empty());
226 EXPECT_TRUE(output_variable_list.empty());
242 EXPECT_TRUE(name_map.empty()); 227 EXPECT_TRUE(name_map.empty());
243 } 228 }
244 229
245 TEST_F(ShaderTranslatorTest, GetAttributes) { 230 TEST_F(ShaderTranslatorTest, GetAttributes) {
246 const char* shader = 231 const char* shader =
247 "attribute vec4 vPosition;\n" 232 "attribute vec4 vPosition;\n"
248 "void main() {\n" 233 "void main() {\n"
249 " gl_Position = vPosition;\n" 234 " gl_Position = vPosition;\n"
250 "}"; 235 "}";
251 236
252 std::string info_log, translated_source; 237 std::string info_log, translated_source;
253 int shader_version; 238 int shader_version;
254 AttributeMap attrib_map; 239 AttributeMap attrib_map;
255 UniformMap uniform_map; 240 UniformMap uniform_map;
256 VaryingMap varying_map; 241 VaryingMap varying_map;
257 InterfaceBlockMap interface_block_map; 242 InterfaceBlockMap interface_block_map;
243 OutputVariableList output_variable_list;
258 NameMap name_map; 244 NameMap name_map;
259 EXPECT_TRUE(vertex_translator_->Translate(shader, 245 EXPECT_TRUE(vertex_translator_->Translate(
260 &info_log, 246 shader, &info_log, &translated_source, &shader_version, &attrib_map,
261 &translated_source, 247 &uniform_map, &varying_map, &interface_block_map, &output_variable_list,
262 &shader_version, 248 &name_map));
263 &attrib_map,
264 &uniform_map,
265 &varying_map,
266 &interface_block_map,
267 &name_map));
268 // Info log must be NULL. 249 // Info log must be NULL.
269 EXPECT_TRUE(info_log.empty()); 250 EXPECT_TRUE(info_log.empty());
270 // Translated shader must be valid and non-empty. 251 // Translated shader must be valid and non-empty.
271 EXPECT_FALSE(translated_source.empty()); 252 EXPECT_FALSE(translated_source.empty());
272 // There should be no uniforms. 253 // There should be no uniforms.
273 EXPECT_TRUE(uniform_map.empty()); 254 EXPECT_TRUE(uniform_map.empty());
274 // There should be no interface blocks. 255 // There should be no interface blocks.
275 EXPECT_TRUE(interface_block_map.empty()); 256 EXPECT_TRUE(interface_block_map.empty());
276 // There should be one attribute with following characteristics: 257 // There should be one attribute with following characteristics:
277 // name:vPosition type:GL_FLOAT_VEC4 size:0. 258 // name:vPosition type:GL_FLOAT_VEC4 size:0.
(...skipping 18 matching lines...) Expand all
296 "void main() {\n" 277 "void main() {\n"
297 " gl_FragColor = bar[0].foo.color[0] + bar[1].foo.color[0];\n" 278 " gl_FragColor = bar[0].foo.color[0] + bar[1].foo.color[0];\n"
298 "}"; 279 "}";
299 280
300 std::string info_log, translated_source; 281 std::string info_log, translated_source;
301 int shader_version; 282 int shader_version;
302 AttributeMap attrib_map; 283 AttributeMap attrib_map;
303 UniformMap uniform_map; 284 UniformMap uniform_map;
304 VaryingMap varying_map; 285 VaryingMap varying_map;
305 InterfaceBlockMap interface_block_map; 286 InterfaceBlockMap interface_block_map;
287 OutputVariableList output_variable_list;
306 NameMap name_map; 288 NameMap name_map;
307 EXPECT_TRUE(fragment_translator_->Translate(shader, 289 EXPECT_TRUE(fragment_translator_->Translate(
308 &info_log, 290 shader, &info_log, &translated_source, &shader_version, &attrib_map,
309 &translated_source, 291 &uniform_map, &varying_map, &interface_block_map, &output_variable_list,
310 &shader_version, 292 &name_map));
311 &attrib_map,
312 &uniform_map,
313 &varying_map,
314 &interface_block_map,
315 &name_map));
316 // Info log must be NULL. 293 // Info log must be NULL.
317 EXPECT_TRUE(info_log.empty()); 294 EXPECT_TRUE(info_log.empty());
318 // Translated shader must be valid and non-empty. 295 // Translated shader must be valid and non-empty.
319 EXPECT_FALSE(translated_source.empty()); 296 EXPECT_FALSE(translated_source.empty());
320 // There should be no attributes. 297 // There should be no attributes.
321 EXPECT_TRUE(attrib_map.empty()); 298 EXPECT_TRUE(attrib_map.empty());
322 // There should be no interface blocks. 299 // There should be no interface blocks.
323 EXPECT_TRUE(interface_block_map.empty()); 300 EXPECT_TRUE(interface_block_map.empty());
324 // There should be two uniforms with following characteristics: 301 // There should be two uniforms with following characteristics:
325 // 1. name:bar[0].foo.color[0] type:GL_FLOAT_VEC4 size:1 302 // 1. name:bar[0].foo.color[0] type:GL_FLOAT_VEC4 size:1
(...skipping 11 matching lines...) Expand all
337 EXPECT_EQ(1u, info->arraySize); 314 EXPECT_EQ(1u, info->arraySize);
338 EXPECT_STREQ("color", info->name.c_str()); 315 EXPECT_STREQ("color", info->name.c_str());
339 EXPECT_STREQ("bar[0].foo.color[0]", original_name.c_str()); 316 EXPECT_STREQ("bar[0].foo.color[0]", original_name.c_str());
340 // Second uniform. 317 // Second uniform.
341 EXPECT_TRUE(iter->second.findInfoByMappedName( 318 EXPECT_TRUE(iter->second.findInfoByMappedName(
342 "bar[1].foo.color[0]", &info, &original_name)); 319 "bar[1].foo.color[0]", &info, &original_name));
343 EXPECT_EQ(static_cast<GLenum>(GL_FLOAT_VEC4), info->type); 320 EXPECT_EQ(static_cast<GLenum>(GL_FLOAT_VEC4), info->type);
344 EXPECT_EQ(1u, info->arraySize); 321 EXPECT_EQ(1u, info->arraySize);
345 EXPECT_STREQ("color", info->name.c_str()); 322 EXPECT_STREQ("color", info->name.c_str());
346 EXPECT_STREQ("bar[1].foo.color[0]", original_name.c_str()); 323 EXPECT_STREQ("bar[1].foo.color[0]", original_name.c_str());
324 EXPECT_EQ(1u, output_variable_list.size());
325 ASSERT_TRUE(output_variable_list.size() > 0);
326 EXPECT_EQ(output_variable_list[0].mappedName, "gl_FragColor");
347 } 327 }
348 328
349 329
350 TEST_F(ES3ShaderTranslatorTest, InvalidInterfaceBlocks) { 330 TEST_F(ES3ShaderTranslatorTest, InvalidInterfaceBlocks) {
351 const char* shader = 331 const char* shader =
352 "#version 300 es\n" 332 "#version 300 es\n"
353 "precision mediump float;\n" 333 "precision mediump float;\n"
354 "layout(location=0) out vec4 oColor;\n" 334 "layout(location=0) out vec4 oColor;\n"
355 "uniform Color {\n" 335 "uniform Color {\n"
356 " float red;\n" 336 " float red;\n"
357 " float green;\n" 337 " float green;\n"
358 " float blue;\n" 338 " float blue;\n"
359 "};\n" 339 "};\n"
360 "uniform Color2 {\n" 340 "uniform Color2 {\n"
361 " float R;\n" 341 " float R;\n"
362 " float green;\n" 342 " float green;\n"
363 " float B;\n" 343 " float B;\n"
364 "};\n" 344 "};\n"
365 "void main() {\n" 345 "void main() {\n"
366 " oColor = vec4(red * R, green * green, blue * B, 1.0);\n" 346 " oColor = vec4(red * R, green * green, blue * B, 1.0);\n"
367 "}"; 347 "}";
368 348
369 std::string info_log, translated_source; 349 std::string info_log, translated_source;
370 int shader_version; 350 int shader_version;
371 AttributeMap attrib_map; 351 AttributeMap attrib_map;
372 UniformMap uniform_map; 352 UniformMap uniform_map;
373 VaryingMap varying_map; 353 VaryingMap varying_map;
374 InterfaceBlockMap interface_block_map; 354 InterfaceBlockMap interface_block_map;
355 OutputVariableList output_variable_list;
375 NameMap name_map; 356 NameMap name_map;
376 EXPECT_FALSE(fragment_translator_->Translate(shader, 357 EXPECT_FALSE(fragment_translator_->Translate(
377 &info_log, 358 shader, &info_log, &translated_source, &shader_version, &attrib_map,
378 &translated_source, 359 &uniform_map, &varying_map, &interface_block_map, &output_variable_list,
379 &shader_version, 360 &name_map));
380 &attrib_map,
381 &uniform_map,
382 &varying_map,
383 &interface_block_map,
384 &name_map));
385 // Info log must be valid and non-empty. 361 // Info log must be valid and non-empty.
386 ASSERT_FALSE(info_log.empty()); 362 ASSERT_FALSE(info_log.empty());
387 // Translated shader must be NULL. 363 // Translated shader must be NULL.
388 EXPECT_TRUE(translated_source.empty()); 364 EXPECT_TRUE(translated_source.empty());
389 // There should be no attributes, uniforms, varyings, interface block or 365 // There should be no attributes, uniforms, varyings, interface block or
390 // name mapping. 366 // name mapping.
391 EXPECT_TRUE(attrib_map.empty()); 367 EXPECT_TRUE(attrib_map.empty());
392 EXPECT_TRUE(uniform_map.empty()); 368 EXPECT_TRUE(uniform_map.empty());
393 EXPECT_TRUE(varying_map.empty()); 369 EXPECT_TRUE(varying_map.empty());
394 EXPECT_TRUE(interface_block_map.empty()); 370 EXPECT_TRUE(interface_block_map.empty());
(...skipping 13 matching lines...) Expand all
408 "void main() {\n" 384 "void main() {\n"
409 " oColor = vec4(red, green, blue, 1.0);\n" 385 " oColor = vec4(red, green, blue, 1.0);\n"
410 "}"; 386 "}";
411 387
412 std::string info_log, translated_source; 388 std::string info_log, translated_source;
413 int shader_version; 389 int shader_version;
414 AttributeMap attrib_map; 390 AttributeMap attrib_map;
415 UniformMap uniform_map; 391 UniformMap uniform_map;
416 VaryingMap varying_map; 392 VaryingMap varying_map;
417 InterfaceBlockMap interface_block_map; 393 InterfaceBlockMap interface_block_map;
394 OutputVariableList output_variable_list;
418 NameMap name_map; 395 NameMap name_map;
419 EXPECT_TRUE(fragment_translator_->Translate(shader, 396 EXPECT_TRUE(fragment_translator_->Translate(
420 &info_log, 397 shader, &info_log, &translated_source, &shader_version, &attrib_map,
421 &translated_source, 398 &uniform_map, &varying_map, &interface_block_map, &output_variable_list,
422 &shader_version, 399 &name_map));
423 &attrib_map,
424 &uniform_map,
425 &varying_map,
426 &interface_block_map,
427 &name_map));
428 // Info log must be NULL. 400 // Info log must be NULL.
429 EXPECT_TRUE(info_log.empty()); 401 EXPECT_TRUE(info_log.empty());
430 // Translated shader must be valid and non-empty. 402 // Translated shader must be valid and non-empty.
431 EXPECT_FALSE(translated_source.empty()); 403 EXPECT_FALSE(translated_source.empty());
432 // There should be no attributes. 404 // There should be no attributes.
433 EXPECT_TRUE(attrib_map.empty()); 405 EXPECT_TRUE(attrib_map.empty());
434 // There should be one block in interface_block_map 406 // There should be one block in interface_block_map
435 EXPECT_EQ(1u, interface_block_map.size()); 407 EXPECT_EQ(1u, interface_block_map.size());
436 InterfaceBlockMap::const_iterator iter; 408 InterfaceBlockMap::const_iterator iter;
437 for (iter = interface_block_map.begin(); 409 for (iter = interface_block_map.begin();
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 ShShaderOutput shader_output_language = 474 ShShaderOutput shader_output_language =
503 ShaderTranslator::GetShaderOutputLanguageForContext( 475 ShaderTranslator::GetShaderOutputLanguageForContext(
504 output_context_version); 476 output_context_version);
505 ASSERT_TRUE(translator->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC, &resources, 477 ASSERT_TRUE(translator->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC, &resources,
506 shader_output_language, compile_options)); 478 shader_output_language, compile_options));
507 479
508 std::string translated_source; 480 std::string translated_source;
509 int shader_version; 481 int shader_version;
510 EXPECT_TRUE(translator->Translate(kShader, nullptr, &translated_source, 482 EXPECT_TRUE(translator->Translate(kShader, nullptr, &translated_source,
511 &shader_version, nullptr, nullptr, nullptr, 483 &shader_version, nullptr, nullptr, nullptr,
512 nullptr, nullptr)); 484 nullptr, nullptr, nullptr));
513 485
514 std::string expected_version_directive = testing::get<1>(GetParam()); 486 std::string expected_version_directive = testing::get<1>(GetParam());
515 if (expected_version_directive.empty()) { 487 if (expected_version_directive.empty()) {
516 EXPECT_TRUE(translated_source.find("#version") == std::string::npos) 488 EXPECT_TRUE(translated_source.find("#version") == std::string::npos)
517 << "Translation was:\n" << translated_source; 489 << "Translation was:\n" << translated_source;
518 } else { 490 } else {
519 EXPECT_TRUE(translated_source.find(expected_version_directive) != 491 EXPECT_TRUE(translated_source.find(expected_version_directive) !=
520 std::string::npos) 492 std::string::npos)
521 << "Translation was:\n" << translated_source; 493 << "Translation was:\n" << translated_source;
522 } 494 }
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 ShaderTranslatorOutputVersionTest, 551 ShaderTranslatorOutputVersionTest,
580 testing::Values(make_gl_glsl_tuple("opengl es 2.0", ""), 552 testing::Values(make_gl_glsl_tuple("opengl es 2.0", ""),
581 make_gl_glsl_tuple("opengl es 3.0", ""), 553 make_gl_glsl_tuple("opengl es 3.0", ""),
582 make_gl_glsl_tuple("opengl es 3.1", ""), 554 make_gl_glsl_tuple("opengl es 3.1", ""),
583 make_gl_glsl_tuple("opengl es 3.2", 555 make_gl_glsl_tuple("opengl es 3.2",
584 ""))); 556 "")));
585 557
586 } // namespace gles2 558 } // namespace gles2
587 } // namespace gpu 559 } // namespace gpu
588 560
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/shader_translator.cc ('k') | gpu/command_buffer/service/test_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698