OLD | NEW |
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/program_manager.h" | 5 #include "gpu/command_buffer/service/program_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
(...skipping 1365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1376 | 1376 |
1377 ProgramManager::ProgramInfo* program_info = manager_.CreateProgramInfo( | 1377 ProgramManager::ProgramInfo* program_info = manager_.CreateProgramInfo( |
1378 kNewProgramClientId, kNewProgramServiceId); | 1378 kNewProgramClientId, kNewProgramServiceId); |
1379 ASSERT_TRUE(program_info != NULL); | 1379 ASSERT_TRUE(program_info != NULL); |
1380 program_info->AttachShader(&shader_manager_, new_vertex_shader); | 1380 program_info->AttachShader(&shader_manager_, new_vertex_shader); |
1381 program_info->AttachShader(&shader_manager_, fragment_shader_); | 1381 program_info->AttachShader(&shader_manager_, fragment_shader_); |
1382 | 1382 |
1383 SetExpectationsForNoCompile(new_vertex_shader); | 1383 SetExpectationsForNoCompile(new_vertex_shader); |
1384 | 1384 |
1385 manager_.DoCompileShader(new_vertex_shader, NULL, NULL); | 1385 manager_.DoCompileShader(new_vertex_shader, NULL, NULL); |
| 1386 EXPECT_EQ(ShaderManager::ShaderInfo::PENDING_DEFERRED_COMPILE, |
| 1387 new_vertex_shader->compilation_status()); |
1386 | 1388 |
1387 new_vertex_shader->UpdateSource("different!"); | 1389 new_vertex_shader->UpdateSource("different!"); |
1388 EXPECT_EQ(original_source, | 1390 EXPECT_EQ(original_source, |
1389 *new_vertex_shader->deferred_compilation_source()); | 1391 *new_vertex_shader->deferred_compilation_source()); |
1390 | 1392 |
1391 EXPECT_FALSE(new_vertex_shader->source_compiled()); | 1393 EXPECT_EQ(ShaderManager::ShaderInfo::PENDING_DEFERRED_COMPILE, |
1392 EXPECT_FALSE(fragment_shader_->source_compiled()); | 1394 new_vertex_shader->compilation_status()); |
| 1395 EXPECT_EQ(ShaderManager::ShaderInfo::PENDING_DEFERRED_COMPILE, |
| 1396 fragment_shader_->compilation_status()); |
1393 | 1397 |
1394 SetExpectationsForNoCompile(fragment_shader_); | 1398 SetExpectationsForNoCompile(fragment_shader_); |
1395 SetExpectationsForNotCachingProgram(program_info, | 1399 SetExpectationsForNotCachingProgram(program_info, |
1396 new_vertex_shader, | 1400 new_vertex_shader, |
1397 fragment_shader_); | 1401 fragment_shader_); |
1398 SetExpectationsForProgramLoad(kNewProgramServiceId, | 1402 SetExpectationsForProgramLoad(kNewProgramServiceId, |
1399 program_info, | 1403 program_info, |
1400 new_vertex_shader, | 1404 new_vertex_shader, |
1401 fragment_shader_, | 1405 fragment_shader_, |
1402 ProgramCache::PROGRAM_LOAD_SUCCESS); | 1406 ProgramCache::PROGRAM_LOAD_SUCCESS); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1434 | 1438 |
1435 const std::string differentSource = "different!"; | 1439 const std::string differentSource = "different!"; |
1436 new_vertex_shader->UpdateSource(differentSource.c_str()); | 1440 new_vertex_shader->UpdateSource(differentSource.c_str()); |
1437 SetExpectationsForSuccessCompile(new_vertex_shader); | 1441 SetExpectationsForSuccessCompile(new_vertex_shader); |
1438 | 1442 |
1439 FeatureInfo::Ref info(new FeatureInfo()); | 1443 FeatureInfo::Ref info(new FeatureInfo()); |
1440 manager_.DoCompileShader(new_vertex_shader, NULL, info.get()); | 1444 manager_.DoCompileShader(new_vertex_shader, NULL, info.get()); |
1441 EXPECT_EQ(differentSource, | 1445 EXPECT_EQ(differentSource, |
1442 *new_vertex_shader->deferred_compilation_source()); | 1446 *new_vertex_shader->deferred_compilation_source()); |
1443 | 1447 |
1444 EXPECT_TRUE(new_vertex_shader->source_compiled()); | 1448 EXPECT_EQ(ShaderManager::ShaderInfo::COMPILED, |
1445 EXPECT_FALSE(fragment_shader_->source_compiled()); | 1449 new_vertex_shader->compilation_status()); |
| 1450 EXPECT_EQ(ShaderManager::ShaderInfo::PENDING_DEFERRED_COMPILE, |
| 1451 fragment_shader_->compilation_status()); |
1446 | 1452 |
1447 // so we don't recompile because we were pending originally | 1453 // so we don't recompile because we were pending originally |
1448 SetExpectationsForNoCompile(new_vertex_shader); | 1454 SetExpectationsForNoCompile(new_vertex_shader); |
1449 SetExpectationsForSuccessCompile(fragment_shader_); | 1455 SetExpectationsForSuccessCompile(fragment_shader_); |
1450 SetExpectationsForProgramCached(program_info, | 1456 SetExpectationsForProgramCached(program_info, |
1451 new_vertex_shader, | 1457 new_vertex_shader, |
1452 fragment_shader_); | 1458 fragment_shader_); |
1453 SetExpectationsForProgramLink(kNewProgramServiceId); | 1459 SetExpectationsForProgramLink(kNewProgramServiceId); |
1454 | 1460 |
1455 EXPECT_TRUE(program_info->Link(&shader_manager_, NULL, NULL, info.get())); | 1461 EXPECT_TRUE(program_info->Link(&shader_manager_, NULL, NULL, info.get())); |
1456 } | 1462 } |
1457 | 1463 |
1458 } // namespace gles2 | 1464 } // namespace gles2 |
1459 } // namespace gpu | 1465 } // namespace gpu |
OLD | NEW |