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/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 | 365 |
366 // Check we can create shader. | 366 // Check we can create shader. |
367 Shader* vshader = shader_manager_.CreateShader( | 367 Shader* vshader = shader_manager_.CreateShader( |
368 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER); | 368 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER); |
369 Shader* fshader = shader_manager_.CreateShader( | 369 Shader* fshader = shader_manager_.CreateShader( |
370 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER); | 370 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER); |
371 // Check shader got created. | 371 // Check shader got created. |
372 EXPECT_TRUE(vshader != NULL && fshader != NULL); | 372 EXPECT_TRUE(vshader != NULL && fshader != NULL); |
373 // Set Status | 373 // Set Status |
374 TestHelper::SetShaderStates( | 374 TestHelper::SetShaderStates( |
375 gl_.get(), vshader, true, NULL, NULL, | 375 gl_.get(), vshader, true, NULL, NULL, NULL, |
376 &vertex_attrib_map, &vertex_uniform_map, &vertex_varying_map, NULL); | 376 &vertex_attrib_map, &vertex_uniform_map, &vertex_varying_map, NULL); |
377 TestHelper::SetShaderStates( | 377 TestHelper::SetShaderStates( |
378 gl_.get(), fshader, true, NULL, NULL, | 378 gl_.get(), fshader, true, NULL, NULL, NULL, |
379 &frag_attrib_map, &frag_uniform_map, &frag_varying_map, NULL); | 379 &frag_attrib_map, &frag_uniform_map, &frag_varying_map, NULL); |
380 | 380 |
381 // Set up program | 381 // Set up program |
382 const GLuint kClientProgramId = 6666; | 382 const GLuint kClientProgramId = 6666; |
383 const GLuint kServiceProgramId = 8888; | 383 const GLuint kServiceProgramId = 8888; |
384 Program* program = | 384 Program* program = |
385 manager_.CreateProgram(kClientProgramId, kServiceProgramId); | 385 manager_.CreateProgram(kClientProgramId, kServiceProgramId); |
386 EXPECT_TRUE(program != NULL); | 386 EXPECT_TRUE(program != NULL); |
387 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader)); | 387 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader)); |
388 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader)); | 388 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader)); |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
827 kUniform3Type, kUniform3Size, kUniform3Precision, | 827 kUniform3Type, kUniform3Size, kUniform3Precision, |
828 kUniform3StaticUse, kUniform3Name); | 828 kUniform3StaticUse, kUniform3Name); |
829 const GLuint kVShaderClientId = 2001; | 829 const GLuint kVShaderClientId = 2001; |
830 const GLuint kFShaderClientId = 2002; | 830 const GLuint kFShaderClientId = 2002; |
831 const GLuint kVShaderServiceId = 3001; | 831 const GLuint kVShaderServiceId = 3001; |
832 const GLuint kFShaderServiceId = 3002; | 832 const GLuint kFShaderServiceId = 3002; |
833 Shader* vshader = shader_manager_.CreateShader( | 833 Shader* vshader = shader_manager_.CreateShader( |
834 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER); | 834 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER); |
835 ASSERT_TRUE(vshader != NULL); | 835 ASSERT_TRUE(vshader != NULL); |
836 TestHelper::SetShaderStates( | 836 TestHelper::SetShaderStates( |
837 gl_.get(), vshader, true, NULL, NULL, | 837 gl_.get(), vshader, true, NULL, NULL, NULL, |
838 &attrib_map, &uniform_map, &varying_map, NULL); | 838 &attrib_map, &uniform_map, &varying_map, NULL); |
839 Shader* fshader = shader_manager_.CreateShader( | 839 Shader* fshader = shader_manager_.CreateShader( |
840 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER); | 840 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER); |
841 ASSERT_TRUE(fshader != NULL); | 841 ASSERT_TRUE(fshader != NULL); |
842 TestHelper::SetShaderStates( | 842 TestHelper::SetShaderStates( |
843 gl_.get(), fshader, true, NULL, NULL, | 843 gl_.get(), fshader, true, NULL, NULL, NULL, |
844 &attrib_map, &uniform_map, &varying_map, NULL); | 844 &attrib_map, &uniform_map, &varying_map, NULL); |
845 static ProgramManagerWithShaderTest::AttribInfo kAttribs[] = { | 845 static ProgramManagerWithShaderTest::AttribInfo kAttribs[] = { |
846 { kAttrib1Name, kAttrib1Size, kAttrib1Type, kAttrib1Location, }, | 846 { kAttrib1Name, kAttrib1Size, kAttrib1Type, kAttrib1Location, }, |
847 { kAttrib2Name, kAttrib2Size, kAttrib2BadType, kAttrib2Location, }, | 847 { kAttrib2Name, kAttrib2Size, kAttrib2BadType, kAttrib2Location, }, |
848 { kAttrib3Name, kAttrib3Size, kAttrib3Type, kAttrib3Location, }, | 848 { kAttrib3Name, kAttrib3Size, kAttrib3Type, kAttrib3Location, }, |
849 }; | 849 }; |
850 static ProgramManagerWithShaderTest::UniformInfo kUniforms[] = { | 850 static ProgramManagerWithShaderTest::UniformInfo kUniforms[] = { |
851 { kUniform1Name, | 851 { kUniform1Name, |
852 kUniform1Size, | 852 kUniform1Size, |
853 kUniform1Type, | 853 kUniform1Type, |
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1492 kAttribMatName); | 1492 kAttribMatName); |
1493 // Check we can create shader. | 1493 // Check we can create shader. |
1494 Shader* vshader = shader_manager_.CreateShader( | 1494 Shader* vshader = shader_manager_.CreateShader( |
1495 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER); | 1495 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER); |
1496 Shader* fshader = shader_manager_.CreateShader( | 1496 Shader* fshader = shader_manager_.CreateShader( |
1497 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER); | 1497 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER); |
1498 // Check shader got created. | 1498 // Check shader got created. |
1499 ASSERT_TRUE(vshader != NULL && fshader != NULL); | 1499 ASSERT_TRUE(vshader != NULL && fshader != NULL); |
1500 // Set Status | 1500 // Set Status |
1501 TestHelper::SetShaderStates( | 1501 TestHelper::SetShaderStates( |
1502 gl_.get(), vshader, true, NULL, NULL, &attrib_map, NULL, NULL, NULL); | 1502 gl_.get(), vshader, true, NULL, NULL, NULL, &attrib_map, NULL, NULL, |
| 1503 NULL); |
1503 // Check attrib infos got copied. | 1504 // Check attrib infos got copied. |
1504 for (AttributeMap::const_iterator it = attrib_map.begin(); | 1505 for (AttributeMap::const_iterator it = attrib_map.begin(); |
1505 it != attrib_map.end(); ++it) { | 1506 it != attrib_map.end(); ++it) { |
1506 const sh::Attribute* variable_info = | 1507 const sh::Attribute* variable_info = |
1507 vshader->GetAttribInfo(it->first); | 1508 vshader->GetAttribInfo(it->first); |
1508 ASSERT_TRUE(variable_info != NULL); | 1509 ASSERT_TRUE(variable_info != NULL); |
1509 EXPECT_EQ(it->second.type, variable_info->type); | 1510 EXPECT_EQ(it->second.type, variable_info->type); |
1510 EXPECT_EQ(it->second.arraySize, variable_info->arraySize); | 1511 EXPECT_EQ(it->second.arraySize, variable_info->arraySize); |
1511 EXPECT_EQ(it->second.precision, variable_info->precision); | 1512 EXPECT_EQ(it->second.precision, variable_info->precision); |
1512 EXPECT_EQ(it->second.staticUse, variable_info->staticUse); | 1513 EXPECT_EQ(it->second.staticUse, variable_info->staticUse); |
1513 EXPECT_EQ(it->second.name, variable_info->name); | 1514 EXPECT_EQ(it->second.name, variable_info->name); |
1514 } | 1515 } |
1515 TestHelper::SetShaderStates( | 1516 TestHelper::SetShaderStates( |
1516 gl_.get(), fshader, true, NULL, NULL, &attrib_map, NULL, NULL, NULL); | 1517 gl_.get(), fshader, true, NULL, NULL, NULL, &attrib_map, NULL, NULL, |
| 1518 NULL); |
1517 | 1519 |
1518 // Set up program | 1520 // Set up program |
1519 const GLuint kClientProgramId = 6666; | 1521 const GLuint kClientProgramId = 6666; |
1520 const GLuint kServiceProgramId = 8888; | 1522 const GLuint kServiceProgramId = 8888; |
1521 Program* program = | 1523 Program* program = |
1522 manager_.CreateProgram(kClientProgramId, kServiceProgramId); | 1524 manager_.CreateProgram(kClientProgramId, kServiceProgramId); |
1523 ASSERT_TRUE(program != NULL); | 1525 ASSERT_TRUE(program != NULL); |
1524 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader)); | 1526 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader)); |
1525 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader)); | 1527 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader)); |
1526 | 1528 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1581 | 1583 |
1582 // Check we can create shader. | 1584 // Check we can create shader. |
1583 Shader* vshader = shader_manager_.CreateShader( | 1585 Shader* vshader = shader_manager_.CreateShader( |
1584 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER); | 1586 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER); |
1585 Shader* fshader = shader_manager_.CreateShader( | 1587 Shader* fshader = shader_manager_.CreateShader( |
1586 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER); | 1588 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER); |
1587 // Check shader got created. | 1589 // Check shader got created. |
1588 ASSERT_TRUE(vshader != NULL && fshader != NULL); | 1590 ASSERT_TRUE(vshader != NULL && fshader != NULL); |
1589 // Set Status | 1591 // Set Status |
1590 TestHelper::SetShaderStates( | 1592 TestHelper::SetShaderStates( |
1591 gl_.get(), vshader, true, NULL, NULL, NULL, | 1593 gl_.get(), vshader, true, NULL, NULL, NULL, NULL, |
1592 &vertex_uniform_map, NULL, NULL); | 1594 &vertex_uniform_map, NULL, NULL); |
1593 TestHelper::SetShaderStates( | 1595 TestHelper::SetShaderStates( |
1594 gl_.get(), fshader, true, NULL, NULL, NULL, | 1596 gl_.get(), fshader, true, NULL, NULL, NULL, NULL, |
1595 &frag_uniform_map, NULL, NULL); | 1597 &frag_uniform_map, NULL, NULL); |
1596 | 1598 |
1597 // Set up program | 1599 // Set up program |
1598 const GLuint kClientProgramId = 6666; | 1600 const GLuint kClientProgramId = 6666; |
1599 const GLuint kServiceProgramId = 8888; | 1601 const GLuint kServiceProgramId = 8888; |
1600 Program* program = | 1602 Program* program = |
1601 manager_.CreateProgram(kClientProgramId, kServiceProgramId); | 1603 manager_.CreateProgram(kClientProgramId, kServiceProgramId); |
1602 ASSERT_TRUE(program != NULL); | 1604 ASSERT_TRUE(program != NULL); |
1603 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader)); | 1605 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader)); |
1604 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader)); | 1606 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader)); |
(...skipping 526 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2131 SetExpectationsForProgramLoad(ProgramCache::PROGRAM_LOAD_SUCCESS); | 2133 SetExpectationsForProgramLoad(ProgramCache::PROGRAM_LOAD_SUCCESS); |
2132 SetExpectationsForNotCachingProgram(); | 2134 SetExpectationsForNotCachingProgram(); |
2133 SetExpectationsForProgramLoadSuccess(); | 2135 SetExpectationsForProgramLoadSuccess(); |
2134 | 2136 |
2135 EXPECT_TRUE(program_->Link(NULL, Program::kCountOnlyStaticallyUsed, | 2137 EXPECT_TRUE(program_->Link(NULL, Program::kCountOnlyStaticallyUsed, |
2136 base::Bind(&ShaderCacheCb))); | 2138 base::Bind(&ShaderCacheCb))); |
2137 } | 2139 } |
2138 | 2140 |
2139 } // namespace gles2 | 2141 } // namespace gles2 |
2140 } // namespace gpu | 2142 } // namespace gpu |
OLD | NEW |