Index: gpu/command_buffer/service/framebuffer_manager_unittest.cc |
diff --git a/gpu/command_buffer/service/framebuffer_manager_unittest.cc b/gpu/command_buffer/service/framebuffer_manager_unittest.cc |
index c7133acd9c3c7e1e0003f52c82b0b143f591c0bb..a3dc984b0c4a6a7222529111f829c0ac8a7f9deb 100644 |
--- a/gpu/command_buffer/service/framebuffer_manager_unittest.cc |
+++ b/gpu/command_buffer/service/framebuffer_manager_unittest.cc |
@@ -34,7 +34,10 @@ const bool kUseDefaultTextures = false; |
class FramebufferManagerTest : public GpuServiceTest { |
public: |
FramebufferManagerTest() |
- : manager_(1, 1, ContextGroup::CONTEXT_TYPE_UNDEFINED), |
+ : manager_(1, |
+ 1, |
+ ContextGroup::CONTEXT_TYPE_UNDEFINED, |
+ new FramebufferCompletenessCache), |
feature_info_(new FeatureInfo()) { |
texture_manager_.reset(new TextureManager(NULL, |
feature_info_.get(), |
@@ -111,7 +114,10 @@ class FramebufferInfoTestBase : public GpuServiceTest { |
static const GLuint kService1Id = 11; |
explicit FramebufferInfoTestBase(ContextGroup::ContextType context_type) |
- : manager_(kMaxDrawBuffers, kMaxColorAttachments, context_type), |
+ : manager_(kMaxDrawBuffers, |
+ kMaxColorAttachments, |
+ context_type, |
+ new FramebufferCompletenessCache), |
feature_info_(new FeatureInfo()) { |
texture_manager_.reset(new TextureManager(NULL, |
feature_info_.get(), |
@@ -832,59 +838,33 @@ TEST_F(FramebufferInfoTest, GetStatus) { |
EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)) |
.WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
.RetiresOnSaturation(); |
- framebuffer_->GetStatus(texture_manager_.get(), GL_FRAMEBUFFER); |
- |
- // Check a second call for the same type does not call anything |
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) { |
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)) |
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
- .RetiresOnSaturation(); |
- } |
- framebuffer_->GetStatus(texture_manager_.get(), GL_FRAMEBUFFER); |
no sievers
2015/08/19 00:43:13
I think all of these GetStatus() calls are importa
Tobias Sargeant
2015/08/19 11:33:13
Done, and tested that it fails if the cache is uns
|
+ ASSERT_EQ((GLenum)GL_FRAMEBUFFER_COMPLETE, |
+ framebuffer_->GetStatus(texture_manager_.get(), GL_FRAMEBUFFER)); |
// Check changing the attachments calls CheckFramebufferStatus. |
framebuffer_->AttachTexture( |
GL_COLOR_ATTACHMENT0, texture2.get(), kTarget1, kLevel1, kSamples1); |
EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)) |
.WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)).RetiresOnSaturation(); |
- framebuffer_->GetStatus(texture_manager_.get(), GL_FRAMEBUFFER); |
- |
- // Check a second call for the same type does not call anything. |
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) { |
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)) |
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
- .RetiresOnSaturation(); |
- } |
- framebuffer_->GetStatus(texture_manager_.get(), GL_FRAMEBUFFER); |
+ ASSERT_EQ((GLenum)GL_FRAMEBUFFER_COMPLETE, |
+ framebuffer_->GetStatus(texture_manager_.get(), GL_FRAMEBUFFER)); |
// Check a second call with a different target calls CheckFramebufferStatus. |
EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_READ_FRAMEBUFFER)) |
.WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
.RetiresOnSaturation(); |
- framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); |
- |
- // Check a second call for the same type does not call anything. |
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) { |
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_READ_FRAMEBUFFER)) |
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
- .RetiresOnSaturation(); |
- } |
- framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); |
+ ASSERT_EQ( |
+ (GLenum)GL_FRAMEBUFFER_COMPLETE, |
+ framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER)); |
// Check adding another attachment calls CheckFramebufferStatus. |
framebuffer_->AttachRenderbuffer(GL_DEPTH_ATTACHMENT, renderbuffer1); |
EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_READ_FRAMEBUFFER)) |
.WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
.RetiresOnSaturation(); |
- framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); |
- |
- // Check a second call for the same type does not call anything. |
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) { |
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_READ_FRAMEBUFFER)) |
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
- .RetiresOnSaturation(); |
- } |
- framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); |
+ ASSERT_EQ( |
+ (GLenum)GL_FRAMEBUFFER_COMPLETE, |
+ framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER)); |
// Check changing the format calls CheckFramebuffferStatus. |
TestHelper::SetTexParameteriWithExpectations(gl_.get(), |
@@ -899,35 +879,14 @@ TEST_F(FramebufferInfoTest, GetStatus) { |
.WillOnce(Return(GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT)) |
.WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
.RetiresOnSaturation(); |
- framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); |
- |
- // Check since it did not return FRAMEBUFFER_COMPLETE that it calls |
- // CheckFramebufferStatus |
- framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); |
- |
- // Check putting it back does not call CheckFramebufferStatus. |
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) { |
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_READ_FRAMEBUFFER)) |
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
- .RetiresOnSaturation(); |
- } |
- TestHelper::SetTexParameteriWithExpectations(gl_.get(), |
- error_state_.get(), |
- texture_manager_.get(), |
- texture2.get(), |
- GL_TEXTURE_WRAP_S, |
- GL_REPEAT, |
- GL_NO_ERROR); |
- framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); |
- |
- // Check Unbinding does not call CheckFramebufferStatus |
- framebuffer_->UnbindRenderbuffer(GL_RENDERBUFFER, renderbuffer1); |
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) { |
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_READ_FRAMEBUFFER)) |
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
- .RetiresOnSaturation(); |
- } |
- framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER); |
+ ASSERT_EQ( |
+ (GLenum)GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT, |
+ framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER)); |
+ |
+ // Check that incomplete framebuffer statuses are not cached. |
+ ASSERT_EQ( |
+ (GLenum)GL_FRAMEBUFFER_COMPLETE, |
+ framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER)); |
} |
class FramebufferInfoES3Test : public FramebufferInfoTestBase { |