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

Side by Side Diff: gpu/command_buffer/client/program_info_manager_unittest.cc

Issue 1542513002: Switch to standard integer types in gpu/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix 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) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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 <stddef.h>
6 #include <stdint.h>
7
5 #include "gpu/command_buffer/client/program_info_manager.h" 8 #include "gpu/command_buffer/client/program_info_manager.h"
6 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
7 10
8 namespace { 11 namespace {
9 12
10 uint32 ComputeOffset(const void* start, const void* position) { 13 uint32_t ComputeOffset(const void* start, const void* position) {
11 return static_cast<const uint8*>(position) - 14 return static_cast<const uint8_t*>(position) -
12 static_cast<const uint8*>(start); 15 static_cast<const uint8_t*>(start);
13 } 16 }
14 17
15 const GLuint kClientProgramId = 321; 18 const GLuint kClientProgramId = 321;
16 19
17 } // namespace anonymous 20 } // namespace anonymous
18 21
19 namespace gpu { 22 namespace gpu {
20 namespace gles2 { 23 namespace gles2 {
21 24
22 class ProgramInfoManagerTest : public testing::Test { 25 class ProgramInfoManagerTest : public testing::Test {
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 167
165 scoped_ptr<ProgramInfoManager> program_info_manager_; 168 scoped_ptr<ProgramInfoManager> program_info_manager_;
166 Program* program_; 169 Program* program_;
167 }; 170 };
168 171
169 TEST_F(ProgramInfoManagerTest, UpdateES2) { 172 TEST_F(ProgramInfoManagerTest, UpdateES2) {
170 ProgramES2Data data; 173 ProgramES2Data data;
171 SetupProgramES2Data(&data); 174 SetupProgramES2Data(&data);
172 const std::string kNames[] = { data.uniform_name0, data.uniform_name1 }; 175 const std::string kNames[] = { data.uniform_name0, data.uniform_name1 };
173 const int32_t* kLocs[] = { data.uniform_loc0, data.uniform_loc1 }; 176 const int32_t* kLocs[] = { data.uniform_loc0, data.uniform_loc1 };
174 std::vector<int8> result(sizeof(data)); 177 std::vector<int8_t> result(sizeof(data));
175 memcpy(&result[0], &data, sizeof(data)); 178 memcpy(&result[0], &data, sizeof(data));
176 EXPECT_FALSE(program_->IsCached(ProgramInfoManager::kES2)); 179 EXPECT_FALSE(program_->IsCached(ProgramInfoManager::kES2));
177 program_->UpdateES2(result); 180 program_->UpdateES2(result);
178 EXPECT_TRUE(program_->IsCached(ProgramInfoManager::kES2)); 181 EXPECT_TRUE(program_->IsCached(ProgramInfoManager::kES2));
179 182
180 GLint params = 0; 183 GLint params = 0;
181 EXPECT_TRUE(program_->GetProgramiv(GL_LINK_STATUS, &params)); 184 EXPECT_TRUE(program_->GetProgramiv(GL_LINK_STATUS, &params));
182 EXPECT_TRUE(params); 185 EXPECT_TRUE(params);
183 186
184 params = 0; 187 params = 0;
(...skipping 25 matching lines...) Expand all
210 EXPECT_EQ(kLocs[ii][uu], info->element_locations[uu]); 213 EXPECT_EQ(kLocs[ii][uu], info->element_locations[uu]);
211 } 214 }
212 } 215 }
213 } 216 }
214 217
215 TEST_F(ProgramInfoManagerTest, UpdateES3UniformBlocks) { 218 TEST_F(ProgramInfoManagerTest, UpdateES3UniformBlocks) {
216 UniformBlocksData data; 219 UniformBlocksData data;
217 SetupUniformBlocksData(&data); 220 SetupUniformBlocksData(&data);
218 const std::string kName[] = { data.name0, data.name1 }; 221 const std::string kName[] = { data.name0, data.name1 };
219 const uint32_t* kIndices[] = { data.indices0, data.indices1 }; 222 const uint32_t* kIndices[] = { data.indices0, data.indices1 };
220 std::vector<int8> result(sizeof(data)); 223 std::vector<int8_t> result(sizeof(data));
221 memcpy(&result[0], &data, sizeof(data)); 224 memcpy(&result[0], &data, sizeof(data));
222 EXPECT_FALSE(program_->IsCached(ProgramInfoManager::kES3UniformBlocks)); 225 EXPECT_FALSE(program_->IsCached(ProgramInfoManager::kES3UniformBlocks));
223 program_->UpdateES3UniformBlocks(result); 226 program_->UpdateES3UniformBlocks(result);
224 EXPECT_TRUE(program_->IsCached(ProgramInfoManager::kES3UniformBlocks)); 227 EXPECT_TRUE(program_->IsCached(ProgramInfoManager::kES3UniformBlocks));
225 228
226 GLint uniform_block_count = 0; 229 GLint uniform_block_count = 0;
227 EXPECT_TRUE(program_->GetProgramiv( 230 EXPECT_TRUE(program_->GetProgramiv(
228 GL_ACTIVE_UNIFORM_BLOCKS, &uniform_block_count)); 231 GL_ACTIVE_UNIFORM_BLOCKS, &uniform_block_count));
229 EXPECT_EQ(data.header.num_uniform_blocks, 232 EXPECT_EQ(data.header.num_uniform_blocks,
230 static_cast<uint32_t>(uniform_block_count)); 233 static_cast<uint32_t>(uniform_block_count));
(...skipping 20 matching lines...) Expand all
251 } 254 }
252 255
253 EXPECT_EQ(GL_INVALID_INDEX, program_->GetUniformBlockIndex("BadName")); 256 EXPECT_EQ(GL_INVALID_INDEX, program_->GetUniformBlockIndex("BadName"));
254 EXPECT_EQ(NULL, program_->GetUniformBlock(data.header.num_uniform_blocks)); 257 EXPECT_EQ(NULL, program_->GetUniformBlock(data.header.num_uniform_blocks));
255 } 258 }
256 259
257 TEST_F(ProgramInfoManagerTest, UpdateES3TransformFeedbackVaryings) { 260 TEST_F(ProgramInfoManagerTest, UpdateES3TransformFeedbackVaryings) {
258 TransformFeedbackVaryingsData data; 261 TransformFeedbackVaryingsData data;
259 SetupTransformFeedbackVaryingsData(&data); 262 SetupTransformFeedbackVaryingsData(&data);
260 const std::string kName[] = { data.name0, data.name1 }; 263 const std::string kName[] = { data.name0, data.name1 };
261 std::vector<int8> result(sizeof(data)); 264 std::vector<int8_t> result(sizeof(data));
262 memcpy(&result[0], &data, sizeof(data)); 265 memcpy(&result[0], &data, sizeof(data));
263 EXPECT_FALSE(program_->IsCached( 266 EXPECT_FALSE(program_->IsCached(
264 ProgramInfoManager::kES3TransformFeedbackVaryings)); 267 ProgramInfoManager::kES3TransformFeedbackVaryings));
265 program_->UpdateES3TransformFeedbackVaryings(result); 268 program_->UpdateES3TransformFeedbackVaryings(result);
266 EXPECT_TRUE(program_->IsCached( 269 EXPECT_TRUE(program_->IsCached(
267 ProgramInfoManager::kES3TransformFeedbackVaryings)); 270 ProgramInfoManager::kES3TransformFeedbackVaryings));
268 271
269 GLint transform_feedback_buffer_mode = 0; 272 GLint transform_feedback_buffer_mode = 0;
270 EXPECT_TRUE(program_->GetProgramiv( 273 EXPECT_TRUE(program_->GetProgramiv(
271 GL_TRANSFORM_FEEDBACK_BUFFER_MODE, &transform_feedback_buffer_mode)); 274 GL_TRANSFORM_FEEDBACK_BUFFER_MODE, &transform_feedback_buffer_mode));
(...skipping 17 matching lines...) Expand all
289 EXPECT_EQ(kName[ii], varying->name); 292 EXPECT_EQ(kName[ii], varying->name);
290 EXPECT_GE(max_name_length, static_cast<GLint>(varying->name.size()) + 1); 293 EXPECT_GE(max_name_length, static_cast<GLint>(varying->name.size()) + 1);
291 } 294 }
292 EXPECT_EQ(NULL, program_->GetTransformFeedbackVarying( 295 EXPECT_EQ(NULL, program_->GetTransformFeedbackVarying(
293 data.header.num_transform_feedback_varyings)); 296 data.header.num_transform_feedback_varyings));
294 } 297 }
295 298
296 TEST_F(ProgramInfoManagerTest, GetUniformBlockIndexCached) { 299 TEST_F(ProgramInfoManagerTest, GetUniformBlockIndexCached) {
297 UniformBlocksData data; 300 UniformBlocksData data;
298 SetupUniformBlocksData(&data); 301 SetupUniformBlocksData(&data);
299 std::vector<int8> result(sizeof(data)); 302 std::vector<int8_t> result(sizeof(data));
300 memcpy(&result[0], &data, sizeof(data)); 303 memcpy(&result[0], &data, sizeof(data));
301 program_->UpdateES3UniformBlocks(result); 304 program_->UpdateES3UniformBlocks(result);
302 305
303 EXPECT_EQ(0u, program_info_manager_->GetUniformBlockIndex( 306 EXPECT_EQ(0u, program_info_manager_->GetUniformBlockIndex(
304 NULL, kClientProgramId, data.name0)); 307 NULL, kClientProgramId, data.name0));
305 EXPECT_EQ(1u, program_info_manager_->GetUniformBlockIndex( 308 EXPECT_EQ(1u, program_info_manager_->GetUniformBlockIndex(
306 NULL, kClientProgramId, data.name1)); 309 NULL, kClientProgramId, data.name1));
307 EXPECT_EQ(GL_INVALID_INDEX, program_info_manager_->GetUniformBlockIndex( 310 EXPECT_EQ(GL_INVALID_INDEX, program_info_manager_->GetUniformBlockIndex(
308 NULL, kClientProgramId, "BadName")); 311 NULL, kClientProgramId, "BadName"));
309 } 312 }
310 313
311 TEST_F(ProgramInfoManagerTest, GetActiveUniformBlockNameCached) { 314 TEST_F(ProgramInfoManagerTest, GetActiveUniformBlockNameCached) {
312 UniformBlocksData data; 315 UniformBlocksData data;
313 SetupUniformBlocksData(&data); 316 SetupUniformBlocksData(&data);
314 std::vector<int8> result(sizeof(data)); 317 std::vector<int8_t> result(sizeof(data));
315 memcpy(&result[0], &data, sizeof(data)); 318 memcpy(&result[0], &data, sizeof(data));
316 program_->UpdateES3UniformBlocks(result); 319 program_->UpdateES3UniformBlocks(result);
317 320
318 GLsizei buf_size = std::max(strlen(data.name0), strlen(data.name1)) + 1; 321 GLsizei buf_size = std::max(strlen(data.name0), strlen(data.name1)) + 1;
319 std::vector<char> buffer(buf_size); 322 std::vector<char> buffer(buf_size);
320 GLsizei length = 0; 323 GLsizei length = 0;
321 EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockName( 324 EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockName(
322 NULL, kClientProgramId, 0, buf_size, &length, &buffer[0])); 325 NULL, kClientProgramId, 0, buf_size, &length, &buffer[0]));
323 EXPECT_EQ(static_cast<GLsizei>(strlen(data.name0)), length); 326 EXPECT_EQ(static_cast<GLsizei>(strlen(data.name0)), length);
324 EXPECT_STREQ(data.name0, &buffer[0]); 327 EXPECT_STREQ(data.name0, &buffer[0]);
(...skipping 17 matching lines...) Expand all
342 buf_size = strlen(data.name0); 345 buf_size = strlen(data.name0);
343 EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockName( 346 EXPECT_EQ(true, program_info_manager_->GetActiveUniformBlockName(
344 NULL, kClientProgramId, 0, buf_size, &length, &buffer[0])); 347 NULL, kClientProgramId, 0, buf_size, &length, &buffer[0]));
345 EXPECT_EQ(buf_size, length + 1); 348 EXPECT_EQ(buf_size, length + 1);
346 EXPECT_STREQ(std::string(data.name0).substr(0, length).c_str(), &buffer[0]); 349 EXPECT_STREQ(std::string(data.name0).substr(0, length).c_str(), &buffer[0]);
347 } 350 }
348 351
349 TEST_F(ProgramInfoManagerTest, GetActiveUniformBlockivCached) { 352 TEST_F(ProgramInfoManagerTest, GetActiveUniformBlockivCached) {
350 UniformBlocksData data; 353 UniformBlocksData data;
351 SetupUniformBlocksData(&data); 354 SetupUniformBlocksData(&data);
352 std::vector<int8> result(sizeof(data)); 355 std::vector<int8_t> result(sizeof(data));
353 memcpy(&result[0], &data, sizeof(data)); 356 memcpy(&result[0], &data, sizeof(data));
354 program_->UpdateES3UniformBlocks(result); 357 program_->UpdateES3UniformBlocks(result);
355 const char* kName[] = { data.name0, data.name1 }; 358 const char* kName[] = { data.name0, data.name1 };
356 const uint32_t* kIndices[] = { data.indices0, data.indices1 }; 359 const uint32_t* kIndices[] = { data.indices0, data.indices1 };
357 360
358 for (uint32_t ii = 0; ii < data.header.num_uniform_blocks; ++ii) { 361 for (uint32_t ii = 0; ii < data.header.num_uniform_blocks; ++ii) {
359 ASSERT_GE(2u, data.entry[ii].active_uniforms); 362 ASSERT_GE(2u, data.entry[ii].active_uniforms);
360 GLint params[2]; 363 GLint params[2];
361 EXPECT_TRUE(program_info_manager_->GetActiveUniformBlockiv( 364 EXPECT_TRUE(program_info_manager_->GetActiveUniformBlockiv(
362 NULL, kClientProgramId, ii, GL_UNIFORM_BLOCK_BINDING, params)); 365 NULL, kClientProgramId, ii, GL_UNIFORM_BLOCK_BINDING, params));
(...skipping 28 matching lines...) Expand all
391 NULL, kClientProgramId, ii, 394 NULL, kClientProgramId, ii,
392 GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER, params)); 395 GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER, params));
393 EXPECT_EQ(data.entry[ii].referenced_by_fragment_shader, 396 EXPECT_EQ(data.entry[ii].referenced_by_fragment_shader,
394 static_cast<uint32_t>(params[0])); 397 static_cast<uint32_t>(params[0]));
395 } 398 }
396 } 399 }
397 400
398 TEST_F(ProgramInfoManagerTest, GetTransformFeedbackVaryingCached) { 401 TEST_F(ProgramInfoManagerTest, GetTransformFeedbackVaryingCached) {
399 TransformFeedbackVaryingsData data; 402 TransformFeedbackVaryingsData data;
400 SetupTransformFeedbackVaryingsData(&data); 403 SetupTransformFeedbackVaryingsData(&data);
401 std::vector<int8> result(sizeof(data)); 404 std::vector<int8_t> result(sizeof(data));
402 memcpy(&result[0], &data, sizeof(data)); 405 memcpy(&result[0], &data, sizeof(data));
403 program_->UpdateES3TransformFeedbackVaryings(result); 406 program_->UpdateES3TransformFeedbackVaryings(result);
404 const char* kName[] = { data.name0, data.name1 }; 407 const char* kName[] = { data.name0, data.name1 };
405 GLsizei buf_size = std::max(strlen(kName[0]), strlen(kName[1])) + 1; 408 GLsizei buf_size = std::max(strlen(kName[0]), strlen(kName[1])) + 1;
406 for (uint32_t ii = 0; ii < data.header.num_transform_feedback_varyings; 409 for (uint32_t ii = 0; ii < data.header.num_transform_feedback_varyings;
407 ++ii) { 410 ++ii) {
408 std::vector<char> buffer(buf_size); 411 std::vector<char> buffer(buf_size);
409 GLsizei length = 0; 412 GLsizei length = 0;
410 GLsizei size = 0; 413 GLsizei size = 0;
411 GLenum type = 0; 414 GLenum type = 0;
412 EXPECT_EQ(true, program_info_manager_->GetTransformFeedbackVarying( 415 EXPECT_EQ(true, program_info_manager_->GetTransformFeedbackVarying(
413 NULL, kClientProgramId, ii, buf_size, 416 NULL, kClientProgramId, ii, buf_size,
414 &length, &size, &type, &buffer[0])); 417 &length, &size, &type, &buffer[0]));
415 EXPECT_EQ(data.entry[ii].size, static_cast<uint32_t>(size)); 418 EXPECT_EQ(data.entry[ii].size, static_cast<uint32_t>(size));
416 EXPECT_EQ(data.entry[ii].type, static_cast<uint32_t>(type)); 419 EXPECT_EQ(data.entry[ii].type, static_cast<uint32_t>(type));
417 EXPECT_STREQ(kName[ii], &buffer[0]); 420 EXPECT_STREQ(kName[ii], &buffer[0]);
418 EXPECT_EQ(strlen(kName[ii]), static_cast<size_t>(length)); 421 EXPECT_EQ(strlen(kName[ii]), static_cast<size_t>(length));
419 } 422 }
420 } 423 }
421 424
422 TEST_F(ProgramInfoManagerTest, GetUniformIndices) { 425 TEST_F(ProgramInfoManagerTest, GetUniformIndices) {
423 ProgramES2Data data; 426 ProgramES2Data data;
424 SetupProgramES2Data(&data); 427 SetupProgramES2Data(&data);
425 std::vector<int8> result(sizeof(data)); 428 std::vector<int8_t> result(sizeof(data));
426 memcpy(&result[0], &data, sizeof(data)); 429 memcpy(&result[0], &data, sizeof(data));
427 program_->UpdateES2(result); 430 program_->UpdateES2(result);
428 431
429 { // Original order. 432 { // Original order.
430 const char* kNames[] = { data.uniform_name0, data.uniform_name1 }; 433 const char* kNames[] = { data.uniform_name0, data.uniform_name1 };
431 const GLuint kIndices[] = { 0, 1 }; 434 const GLuint kIndices[] = { 0, 1 };
432 const GLsizei kCount = 2; 435 const GLsizei kCount = 2;
433 GLuint indices[kCount]; 436 GLuint indices[kCount];
434 EXPECT_TRUE(program_info_manager_->GetUniformIndices( 437 EXPECT_TRUE(program_info_manager_->GetUniformIndices(
435 NULL, kClientProgramId, kCount, kNames, indices)); 438 NULL, kClientProgramId, kCount, kNames, indices));
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 for (GLsizei ii = 0; ii < kCount; ++ii) { 476 for (GLsizei ii = 0; ii < kCount; ++ii) {
474 EXPECT_EQ(kIndices[ii], indices[ii]); 477 EXPECT_EQ(kIndices[ii], indices[ii]);
475 } 478 }
476 } 479 }
477 } 480 }
478 481
479 TEST_F(ProgramInfoManagerTest, GetActiveUniformsivCached) { 482 TEST_F(ProgramInfoManagerTest, GetActiveUniformsivCached) {
480 // ES3 only parameters. 483 // ES3 only parameters.
481 UniformsES3Data data_es3; 484 UniformsES3Data data_es3;
482 SetupUniformsES3Data(&data_es3); 485 SetupUniformsES3Data(&data_es3);
483 std::vector<int8> result(sizeof(data_es3)); 486 std::vector<int8_t> result(sizeof(data_es3));
484 memcpy(&result[0], &data_es3, sizeof(data_es3)); 487 memcpy(&result[0], &data_es3, sizeof(data_es3));
485 EXPECT_FALSE(program_->IsCached(ProgramInfoManager::kES3Uniformsiv)); 488 EXPECT_FALSE(program_->IsCached(ProgramInfoManager::kES3Uniformsiv));
486 program_->UpdateES3Uniformsiv(result); 489 program_->UpdateES3Uniformsiv(result);
487 EXPECT_TRUE(program_->IsCached(ProgramInfoManager::kES3Uniformsiv)); 490 EXPECT_TRUE(program_->IsCached(ProgramInfoManager::kES3Uniformsiv));
488 491
489 uint32_t count = data_es3.header.num_uniforms; 492 uint32_t count = data_es3.header.num_uniforms;
490 std::vector<GLuint> indices(count); 493 std::vector<GLuint> indices(count);
491 for (uint32_t ii = 0; ii < count; ++ii) { 494 for (uint32_t ii = 0; ii < count; ++ii) {
492 indices[ii] = ii; 495 indices[ii] = ii;
493 } 496 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 EXPECT_EQ(data_es2.uniforms[ii].size, size[ii]); 549 EXPECT_EQ(data_es2.uniforms[ii].size, size[ii]);
547 EXPECT_EQ(data_es2.uniforms[ii].type, static_cast<uint32_t>(type[ii])); 550 EXPECT_EQ(data_es2.uniforms[ii].type, static_cast<uint32_t>(type[ii]));
548 EXPECT_EQ(data_es2.uniforms[ii].name_length + 1, 551 EXPECT_EQ(data_es2.uniforms[ii].name_length + 1,
549 static_cast<uint32_t>(name_length[ii])); 552 static_cast<uint32_t>(name_length[ii]));
550 } 553 }
551 } 554 }
552 555
553 } // namespace gles2 556 } // namespace gles2
554 } // namespace gpu 557 } // namespace gpu
555 558
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/program_info_manager.cc ('k') | gpu/command_buffer/client/query_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698