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

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

Issue 895853003: Update from https://crrev.com/314320 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 10 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/feature_info.h" 5 #include "gpu/command_buffer/service/feature_info.h"
6 #include "gpu/command_buffer/service/gpu_service_test.h" 6 #include "gpu/command_buffer/service/gpu_service_test.h"
7 #include "gpu/command_buffer/service/mailbox_manager_impl.h" 7 #include "gpu/command_buffer/service/mailbox_manager_impl.h"
8 #include "gpu/command_buffer/service/mailbox_manager_sync.h" 8 #include "gpu/command_buffer/service/mailbox_manager_sync.h"
9 #include "gpu/command_buffer/service/texture_manager.h" 9 #include "gpu/command_buffer/service/texture_manager.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 internal_format, 65 internal_format,
66 width, 66 width,
67 height, 67 height,
68 depth, 68 depth,
69 border, 69 border,
70 format, 70 format,
71 type, 71 type,
72 cleared); 72 cleared);
73 } 73 }
74 74
75 void SetLevelCleared(Texture* texture,
76 GLenum target,
77 GLint level,
78 bool cleared) {
79 texture->SetLevelCleared(target, level, cleared);
80 }
81
75 GLenum SetParameter(Texture* texture, GLenum pname, GLint param) { 82 GLenum SetParameter(Texture* texture, GLenum pname, GLint param) {
76 return texture->SetParameteri(feature_info_.get(), pname, param); 83 return texture->SetParameteri(feature_info_.get(), pname, param);
77 } 84 }
78 85
79 void DestroyTexture(Texture* texture) { 86 void DestroyTexture(Texture* texture) {
80 delete texture; 87 delete texture;
81 } 88 }
82 89
83 scoped_refptr<MailboxManager> manager_; 90 scoped_refptr<MailboxManager> manager_;
84 91
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 DestroyTexture(tmp_texture); 543 DestroyTexture(tmp_texture);
537 544
538 DestroyTexture(old_texture); 545 DestroyTexture(old_texture);
539 DestroyTexture(texture); 546 DestroyTexture(texture);
540 DestroyTexture(new_texture); 547 DestroyTexture(new_texture);
541 548
542 EXPECT_EQ(NULL, manager_->ConsumeTexture(name)); 549 EXPECT_EQ(NULL, manager_->ConsumeTexture(name));
543 EXPECT_EQ(NULL, manager2_->ConsumeTexture(name)); 550 EXPECT_EQ(NULL, manager2_->ConsumeTexture(name));
544 } 551 }
545 552
553 TEST_F(MailboxManagerSyncTest, ClearedStateSynced) {
554 const GLuint kNewTextureId = 1234;
555
556 Texture* texture = DefineTexture();
557 EXPECT_TRUE(texture->SafeToRenderFrom());
558
559 Mailbox name = Mailbox::Generate();
560
561 manager_->ProduceTexture(name, texture);
562 EXPECT_EQ(texture, manager_->ConsumeTexture(name));
563
564 // Synchronize
565 manager_->PushTextureUpdates(0);
566 manager2_->PullTextureUpdates(0);
567
568 EXPECT_CALL(*gl_, GenTextures(1, _))
569 .WillOnce(SetArgPointee<1>(kNewTextureId));
570 SetupUpdateTexParamExpectations(
571 kNewTextureId, GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT);
572 Texture* new_texture = manager2_->ConsumeTexture(name);
573 EXPECT_FALSE(new_texture == NULL);
574 EXPECT_NE(texture, new_texture);
575 EXPECT_EQ(kNewTextureId, new_texture->service_id());
576 EXPECT_TRUE(texture->SafeToRenderFrom());
577
578 // Change cleared to false.
579 SetLevelCleared(texture, texture->target(), 0, false);
580 EXPECT_FALSE(texture->SafeToRenderFrom());
581
582 // Synchronize
583 manager_->PushTextureUpdates(0);
584 SetupUpdateTexParamExpectations(
585 kNewTextureId, GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT);
586 manager2_->PullTextureUpdates(0);
587
588 // Cleared state should be synced.
589 EXPECT_FALSE(new_texture->SafeToRenderFrom());
590
591 DestroyTexture(texture);
592 DestroyTexture(new_texture);
593
594 EXPECT_EQ(NULL, manager_->ConsumeTexture(name));
595 EXPECT_EQ(NULL, manager2_->ConsumeTexture(name));
596 }
597
546 // Putting the same texture into multiple mailboxes should result in sharing 598 // Putting the same texture into multiple mailboxes should result in sharing
547 // only a single texture also within a synchronized manager instance. 599 // only a single texture also within a synchronized manager instance.
548 TEST_F(MailboxManagerSyncTest, SharedThroughMultipleMailboxes) { 600 TEST_F(MailboxManagerSyncTest, SharedThroughMultipleMailboxes) {
549 const GLuint kNewTextureId = 1234; 601 const GLuint kNewTextureId = 1234;
550 InSequence sequence; 602 InSequence sequence;
551 603
552 Texture* texture = DefineTexture(); 604 Texture* texture = DefineTexture();
553 Mailbox name1 = Mailbox::Generate(); 605 Mailbox name1 = Mailbox::Generate();
554 Mailbox name2 = Mailbox::Generate(); 606 Mailbox name2 = Mailbox::Generate();
555 607
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 } 672 }
621 673
622 // TODO: Produce incomplete texture 674 // TODO: Produce incomplete texture
623 675
624 // TODO: Texture::level_infos_[][].size() 676 // TODO: Texture::level_infos_[][].size()
625 677
626 // TODO: unsupported targets and formats 678 // TODO: unsupported targets and formats
627 679
628 } // namespace gles2 680 } // namespace gles2
629 } // namespace gpu 681 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gpu_tracer_unittest.cc ('k') | gpu/command_buffer/service/memory_program_cache_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698