| 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/gles2_cmd_decoder_unittest_base.h" | 5 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 client_sampler_id_(104), | 93 client_sampler_id_(104), |
| 94 client_shader_id_(105), | 94 client_shader_id_(105), |
| 95 client_texture_id_(106), | 95 client_texture_id_(106), |
| 96 client_element_buffer_id_(107), | 96 client_element_buffer_id_(107), |
| 97 client_vertex_shader_id_(121), | 97 client_vertex_shader_id_(121), |
| 98 client_fragment_shader_id_(122), | 98 client_fragment_shader_id_(122), |
| 99 client_query_id_(123), | 99 client_query_id_(123), |
| 100 client_vertexarray_id_(124), | 100 client_vertexarray_id_(124), |
| 101 client_valuebuffer_id_(125), | 101 client_valuebuffer_id_(125), |
| 102 client_transformfeedback_id_(126), | 102 client_transformfeedback_id_(126), |
| 103 client_sync_id_(127), |
| 103 service_renderbuffer_id_(0), | 104 service_renderbuffer_id_(0), |
| 104 service_renderbuffer_valid_(false), | 105 service_renderbuffer_valid_(false), |
| 105 ignore_cached_state_for_test_(GetParam()), | 106 ignore_cached_state_for_test_(GetParam()), |
| 106 cached_color_mask_red_(true), | 107 cached_color_mask_red_(true), |
| 107 cached_color_mask_green_(true), | 108 cached_color_mask_green_(true), |
| 108 cached_color_mask_blue_(true), | 109 cached_color_mask_blue_(true), |
| 109 cached_color_mask_alpha_(true), | 110 cached_color_mask_alpha_(true), |
| 110 cached_depth_mask_(true), | 111 cached_depth_mask_(true), |
| 111 cached_stencil_front_mask_(static_cast<GLuint>(-1)), | 112 cached_stencil_front_mask_(static_cast<GLuint>(-1)), |
| 112 cached_stencil_back_mask_(static_cast<GLuint>(-1)) { | 113 cached_stencil_back_mask_(static_cast<GLuint>(-1)) { |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 reset_unsafe_es3_apis_enabled = true; | 424 reset_unsafe_es3_apis_enabled = true; |
| 424 } | 425 } |
| 425 EXPECT_CALL(*gl_, GenSamplers(_, _)) | 426 EXPECT_CALL(*gl_, GenSamplers(_, _)) |
| 426 .WillOnce(SetArgumentPointee<1>(kServiceSamplerId)) | 427 .WillOnce(SetArgumentPointee<1>(kServiceSamplerId)) |
| 427 .RetiresOnSaturation(); | 428 .RetiresOnSaturation(); |
| 428 GenHelper<cmds::GenSamplersImmediate>(client_sampler_id_); | 429 GenHelper<cmds::GenSamplersImmediate>(client_sampler_id_); |
| 429 EXPECT_CALL(*gl_, GenTransformFeedbacks(_, _)) | 430 EXPECT_CALL(*gl_, GenTransformFeedbacks(_, _)) |
| 430 .WillOnce(SetArgumentPointee<1>(kServiceTransformFeedbackId)) | 431 .WillOnce(SetArgumentPointee<1>(kServiceTransformFeedbackId)) |
| 431 .RetiresOnSaturation(); | 432 .RetiresOnSaturation(); |
| 432 GenHelper<cmds::GenTransformFeedbacksImmediate>(client_transformfeedback_id_); | 433 GenHelper<cmds::GenTransformFeedbacksImmediate>(client_transformfeedback_id_); |
| 434 DoFenceSync(client_sync_id_, kServiceSyncId); |
| 433 if (reset_unsafe_es3_apis_enabled) { | 435 if (reset_unsafe_es3_apis_enabled) { |
| 434 decoder_->set_unsafe_es3_apis_enabled(false); | 436 decoder_->set_unsafe_es3_apis_enabled(false); |
| 435 } | 437 } |
| 436 | 438 |
| 437 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 439 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 438 } | 440 } |
| 439 | 441 |
| 440 void GLES2DecoderTestBase::ResetDecoder() { | 442 void GLES2DecoderTestBase::ResetDecoder() { |
| 441 if (!decoder_.get()) | 443 if (!decoder_.get()) |
| 442 return; | 444 return; |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 return IsObjectHelper<cmds::IsProgram, cmds::IsProgram::Result>(client_id); | 531 return IsObjectHelper<cmds::IsProgram, cmds::IsProgram::Result>(client_id); |
| 530 } | 532 } |
| 531 | 533 |
| 532 void GLES2DecoderTestBase::DoDeleteProgram( | 534 void GLES2DecoderTestBase::DoDeleteProgram( |
| 533 GLuint client_id, GLuint /* service_id */) { | 535 GLuint client_id, GLuint /* service_id */) { |
| 534 cmds::DeleteProgram cmd; | 536 cmds::DeleteProgram cmd; |
| 535 cmd.Init(client_id); | 537 cmd.Init(client_id); |
| 536 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 538 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 537 } | 539 } |
| 538 | 540 |
| 541 void GLES2DecoderTestBase::DoFenceSync( |
| 542 GLuint client_id, GLuint service_id) { |
| 543 EXPECT_CALL(*gl_, FenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0)) |
| 544 .Times(1) |
| 545 .WillOnce(Return(reinterpret_cast<GLsync>(service_id))) |
| 546 .RetiresOnSaturation(); |
| 547 cmds::FenceSync cmd; |
| 548 cmd.Init(client_id); |
| 549 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 550 } |
| 551 |
| 539 void GLES2DecoderTestBase::SetBucketAsCString( | 552 void GLES2DecoderTestBase::SetBucketAsCString( |
| 540 uint32 bucket_id, const char* str) { | 553 uint32 bucket_id, const char* str) { |
| 541 uint32 size = str ? (strlen(str) + 1) : 0; | 554 uint32 size = str ? (strlen(str) + 1) : 0; |
| 542 cmd::SetBucketSize cmd1; | 555 cmd::SetBucketSize cmd1; |
| 543 cmd1.Init(bucket_id, size); | 556 cmd1.Init(bucket_id, size); |
| 544 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); | 557 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); |
| 545 if (str) { | 558 if (str) { |
| 546 memcpy(shared_memory_address_, str, size); | 559 memcpy(shared_memory_address_, str, size); |
| 547 cmd::SetBucketData cmd2; | 560 cmd::SetBucketData cmd2; |
| 548 cmd2.Init(bucket_id, 0, size, kSharedMemoryId, kSharedMemoryOffset); | 561 cmd2.Init(bucket_id, 0, size, kSharedMemoryId, kSharedMemoryOffset); |
| 549 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); | 562 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); |
| 550 ClearSharedMemory(); | 563 ClearSharedMemory(); |
| 551 } | 564 } |
| 552 } | 565 } |
| 553 | 566 |
| 567 void GLES2DecoderTestBase::SetBucketAsCStrings( |
| 568 uint32 bucket_id, GLsizei count, const char** str, |
| 569 GLsizei count_in_header, char str_end) { |
| 570 uint32_t header_size = sizeof(GLint) * (count + 1); |
| 571 uint32_t total_size = header_size; |
| 572 scoped_ptr<GLint[]> header(new GLint[count + 1]); |
| 573 header[0] = static_cast<GLint>(count_in_header); |
| 574 for (GLsizei ii = 0; ii < count; ++ii) { |
| 575 header[ii + 1] = str && str[ii] ? strlen(str[ii]) : 0; |
| 576 total_size += header[ii + 1] + 1; |
| 577 } |
| 578 cmd::SetBucketSize cmd1; |
| 579 cmd1.Init(bucket_id, total_size); |
| 580 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1)); |
| 581 memcpy(shared_memory_address_, header.get(), header_size); |
| 582 uint32_t offset = header_size; |
| 583 for (GLsizei ii = 0; ii < count; ++ii) { |
| 584 if (str && str[ii]) { |
| 585 size_t str_len = strlen(str[ii]); |
| 586 memcpy(reinterpret_cast<char*>(shared_memory_address_) + offset, |
| 587 str[ii], str_len); |
| 588 offset += str_len; |
| 589 } |
| 590 memcpy(reinterpret_cast<char*>(shared_memory_address_) + offset, |
| 591 &str_end, 1); |
| 592 offset += 1; |
| 593 } |
| 594 cmd::SetBucketData cmd2; |
| 595 cmd2.Init(bucket_id, 0, total_size, kSharedMemoryId, kSharedMemoryOffset); |
| 596 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); |
| 597 ClearSharedMemory(); |
| 598 } |
| 599 |
| 554 void GLES2DecoderTestBase::SetupClearTextureExpectations( | 600 void GLES2DecoderTestBase::SetupClearTextureExpectations( |
| 555 GLuint service_id, | 601 GLuint service_id, |
| 556 GLuint old_service_id, | 602 GLuint old_service_id, |
| 557 GLenum bind_target, | 603 GLenum bind_target, |
| 558 GLenum target, | 604 GLenum target, |
| 559 GLint level, | 605 GLint level, |
| 560 GLenum internal_format, | 606 GLenum internal_format, |
| 561 GLenum format, | 607 GLenum format, |
| 562 GLenum type, | 608 GLenum type, |
| 563 GLsizei width, | 609 GLsizei width, |
| (...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1267 const GLuint GLES2DecoderTestBase::kServiceFramebufferId; | 1313 const GLuint GLES2DecoderTestBase::kServiceFramebufferId; |
| 1268 const GLuint GLES2DecoderTestBase::kServiceRenderbufferId; | 1314 const GLuint GLES2DecoderTestBase::kServiceRenderbufferId; |
| 1269 const GLuint GLES2DecoderTestBase::kServiceSamplerId; | 1315 const GLuint GLES2DecoderTestBase::kServiceSamplerId; |
| 1270 const GLuint GLES2DecoderTestBase::kServiceTextureId; | 1316 const GLuint GLES2DecoderTestBase::kServiceTextureId; |
| 1271 const GLuint GLES2DecoderTestBase::kServiceProgramId; | 1317 const GLuint GLES2DecoderTestBase::kServiceProgramId; |
| 1272 const GLuint GLES2DecoderTestBase::kServiceShaderId; | 1318 const GLuint GLES2DecoderTestBase::kServiceShaderId; |
| 1273 const GLuint GLES2DecoderTestBase::kServiceElementBufferId; | 1319 const GLuint GLES2DecoderTestBase::kServiceElementBufferId; |
| 1274 const GLuint GLES2DecoderTestBase::kServiceQueryId; | 1320 const GLuint GLES2DecoderTestBase::kServiceQueryId; |
| 1275 const GLuint GLES2DecoderTestBase::kServiceVertexArrayId; | 1321 const GLuint GLES2DecoderTestBase::kServiceVertexArrayId; |
| 1276 const GLuint GLES2DecoderTestBase::kServiceTransformFeedbackId; | 1322 const GLuint GLES2DecoderTestBase::kServiceTransformFeedbackId; |
| 1323 const GLuint GLES2DecoderTestBase::kServiceSyncId; |
| 1277 | 1324 |
| 1278 const int32 GLES2DecoderTestBase::kSharedMemoryId; | 1325 const int32 GLES2DecoderTestBase::kSharedMemoryId; |
| 1279 const size_t GLES2DecoderTestBase::kSharedBufferSize; | 1326 const size_t GLES2DecoderTestBase::kSharedBufferSize; |
| 1280 const uint32 GLES2DecoderTestBase::kSharedMemoryOffset; | 1327 const uint32 GLES2DecoderTestBase::kSharedMemoryOffset; |
| 1281 const int32 GLES2DecoderTestBase::kInvalidSharedMemoryId; | 1328 const int32 GLES2DecoderTestBase::kInvalidSharedMemoryId; |
| 1282 const uint32 GLES2DecoderTestBase::kInvalidSharedMemoryOffset; | 1329 const uint32 GLES2DecoderTestBase::kInvalidSharedMemoryOffset; |
| 1283 const uint32 GLES2DecoderTestBase::kInitialResult; | 1330 const uint32 GLES2DecoderTestBase::kInitialResult; |
| 1284 const uint8 GLES2DecoderTestBase::kInitialMemoryValue; | 1331 const uint8 GLES2DecoderTestBase::kInitialMemoryValue; |
| 1285 | 1332 |
| 1286 const uint32 GLES2DecoderTestBase::kNewClientId; | 1333 const uint32 GLES2DecoderTestBase::kNewClientId; |
| (...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1696 SetupDefaultProgram(); | 1743 SetupDefaultProgram(); |
| 1697 } | 1744 } |
| 1698 | 1745 |
| 1699 // Include the auto-generated part of this file. We split this because it means | 1746 // Include the auto-generated part of this file. We split this because it means |
| 1700 // we can easily edit the non-auto generated parts right here in this file | 1747 // we can easily edit the non-auto generated parts right here in this file |
| 1701 // instead of having to edit some template or the code generator. | 1748 // instead of having to edit some template or the code generator. |
| 1702 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h" | 1749 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h" |
| 1703 | 1750 |
| 1704 } // namespace gles2 | 1751 } // namespace gles2 |
| 1705 } // namespace gpu | 1752 } // namespace gpu |
| OLD | NEW |