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

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

Issue 1126243002: Check for shader version mismatch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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/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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698