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

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

Issue 2378583003: Ping watchdog thread during GpuChannel destruction (Closed)
Patch Set: feedback Created 4 years, 2 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "gpu/command_buffer/service/error_state_mock.h" 8 #include "gpu/command_buffer/service/error_state_mock.h"
9 #include "gpu/command_buffer/service/feature_info.h" 9 #include "gpu/command_buffer/service/feature_info.h"
10 #include "gpu/command_buffer/service/framebuffer_manager.h" 10 #include "gpu/command_buffer/service/framebuffer_manager.h"
11 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h" 11 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
12 #include "gpu/command_buffer/service/gpu_service_test.h" 12 #include "gpu/command_buffer/service/gpu_service_test.h"
13 #include "gpu/command_buffer/service/progress_reporter_stub.h"
13 #include "gpu/command_buffer/service/renderbuffer_manager.h" 14 #include "gpu/command_buffer/service/renderbuffer_manager.h"
14 #include "gpu/command_buffer/service/test_helper.h" 15 #include "gpu/command_buffer/service/test_helper.h"
15 #include "gpu/command_buffer/service/texture_manager.h" 16 #include "gpu/command_buffer/service/texture_manager.h"
16 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
17 #include "ui/gl/gl_mock.h" 18 #include "ui/gl/gl_mock.h"
18 19
19 using ::testing::_; 20 using ::testing::_;
20 using ::testing::Return; 21 using ::testing::Return;
21 22
22 namespace gpu { 23 namespace gpu {
(...skipping 11 matching lines...) Expand all
34 const uint32_t kMaxColorAttachments = 16; 35 const uint32_t kMaxColorAttachments = 16;
35 const bool kUseDefaultTextures = false; 36 const bool kUseDefaultTextures = false;
36 37
37 } // namespace 38 } // namespace
38 39
39 class FramebufferManagerTest : public GpuServiceTest { 40 class FramebufferManagerTest : public GpuServiceTest {
40 public: 41 public:
41 FramebufferManagerTest() 42 FramebufferManagerTest()
42 : manager_(1, 1, CONTEXT_TYPE_OPENGLES2, nullptr), 43 : manager_(1, 1, CONTEXT_TYPE_OPENGLES2, nullptr),
43 feature_info_(new FeatureInfo()) { 44 feature_info_(new FeatureInfo()) {
44 texture_manager_.reset(new TextureManager(nullptr, 45 texture_manager_.reset(new TextureManager(
45 feature_info_.get(), 46 nullptr, feature_info_.get(), kMaxTextureSize, kMaxCubemapSize,
46 kMaxTextureSize, 47 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers,
47 kMaxCubemapSize, 48 kUseDefaultTextures, &progress_reporter_));
48 kMaxRectangleTextureSize,
49 kMax3DTextureSize,
50 kMaxArrayTextureLayers,
51 kUseDefaultTextures));
52 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, 49 renderbuffer_manager_.reset(new RenderbufferManager(nullptr,
53 kMaxRenderbufferSize, 50 kMaxRenderbufferSize,
54 kMaxSamples, 51 kMaxSamples,
55 feature_info_.get())); 52 feature_info_.get()));
56 } 53 }
57 ~FramebufferManagerTest() override { 54 ~FramebufferManagerTest() override {
58 manager_.Destroy(false); 55 manager_.Destroy(false);
59 texture_manager_->Destroy(false); 56 texture_manager_->Destroy(false);
60 renderbuffer_manager_->Destroy(false); 57 renderbuffer_manager_->Destroy(false);
61 } 58 }
62 59
63 protected: 60 protected:
64 FramebufferManager manager_; 61 FramebufferManager manager_;
65 scoped_refptr<FeatureInfo> feature_info_; 62 scoped_refptr<FeatureInfo> feature_info_;
66 std::unique_ptr<TextureManager> texture_manager_; 63 std::unique_ptr<TextureManager> texture_manager_;
67 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; 64 std::unique_ptr<RenderbufferManager> renderbuffer_manager_;
65 ProgressReporterStub progress_reporter_;
68 }; 66 };
69 67
70 TEST_F(FramebufferManagerTest, Basic) { 68 TEST_F(FramebufferManagerTest, Basic) {
71 const GLuint kClient1Id = 1; 69 const GLuint kClient1Id = 1;
72 const GLuint kService1Id = 11; 70 const GLuint kService1Id = 11;
73 const GLuint kClient2Id = 2; 71 const GLuint kClient2Id = 2;
74 // Check we can create framebuffer. 72 // Check we can create framebuffer.
75 manager_.CreateFramebuffer(kClient1Id, kService1Id); 73 manager_.CreateFramebuffer(kClient1Id, kService1Id);
76 // Check framebuffer got created. 74 // Check framebuffer got created.
77 Framebuffer* framebuffer1 = manager_.GetFramebuffer(kClient1Id); 75 Framebuffer* framebuffer1 = manager_.GetFramebuffer(kClient1Id);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 public: 113 public:
116 static const GLuint kClient1Id = 1; 114 static const GLuint kClient1Id = 1;
117 static const GLuint kService1Id = 11; 115 static const GLuint kService1Id = 11;
118 116
119 explicit FramebufferInfoTestBase(ContextType context_type) 117 explicit FramebufferInfoTestBase(ContextType context_type)
120 : manager_(kMaxDrawBuffers, 118 : manager_(kMaxDrawBuffers,
121 kMaxColorAttachments, 119 kMaxColorAttachments,
122 context_type, 120 context_type,
123 new FramebufferCompletenessCache), 121 new FramebufferCompletenessCache),
124 feature_info_(new FeatureInfo()) { 122 feature_info_(new FeatureInfo()) {
125 texture_manager_.reset(new TextureManager(nullptr, 123 texture_manager_.reset(new TextureManager(
126 feature_info_.get(), 124 nullptr, feature_info_.get(), kMaxTextureSize, kMaxCubemapSize,
127 kMaxTextureSize, 125 kMaxRectangleTextureSize, kMax3DTextureSize, kMaxArrayTextureLayers,
128 kMaxCubemapSize, 126 kUseDefaultTextures, &progress_reporter_));
129 kMaxRectangleTextureSize,
130 kMax3DTextureSize,
131 kMaxArrayTextureLayers,
132 kUseDefaultTextures));
133 renderbuffer_manager_.reset(new RenderbufferManager(nullptr, 127 renderbuffer_manager_.reset(new RenderbufferManager(nullptr,
134 kMaxRenderbufferSize, 128 kMaxRenderbufferSize,
135 kMaxSamples, 129 kMaxSamples,
136 feature_info_.get())); 130 feature_info_.get()));
137 } 131 }
138 ~FramebufferInfoTestBase() override { 132 ~FramebufferInfoTestBase() override {
139 manager_.Destroy(false); 133 manager_.Destroy(false);
140 texture_manager_->Destroy(false); 134 texture_manager_->Destroy(false);
141 renderbuffer_manager_->Destroy(false); 135 renderbuffer_manager_->Destroy(false);
142 } 136 }
(...skipping 15 matching lines...) Expand all
158 ASSERT_TRUE(framebuffer_ != nullptr); 152 ASSERT_TRUE(framebuffer_ != nullptr);
159 } 153 }
160 154
161 FramebufferManager manager_; 155 FramebufferManager manager_;
162 Framebuffer* framebuffer_; 156 Framebuffer* framebuffer_;
163 scoped_refptr<FeatureInfo> feature_info_; 157 scoped_refptr<FeatureInfo> feature_info_;
164 std::unique_ptr<TextureManager> texture_manager_; 158 std::unique_ptr<TextureManager> texture_manager_;
165 std::unique_ptr<RenderbufferManager> renderbuffer_manager_; 159 std::unique_ptr<RenderbufferManager> renderbuffer_manager_;
166 std::unique_ptr<MockErrorState> error_state_; 160 std::unique_ptr<MockErrorState> error_state_;
167 std::unique_ptr<MockGLES2Decoder> decoder_; 161 std::unique_ptr<MockGLES2Decoder> decoder_;
162 ProgressReporterStub progress_reporter_;
168 }; 163 };
169 164
170 class FramebufferInfoTest : public FramebufferInfoTestBase { 165 class FramebufferInfoTest : public FramebufferInfoTestBase {
171 public: 166 public:
172 FramebufferInfoTest() : FramebufferInfoTestBase(CONTEXT_TYPE_OPENGLES2) {} 167 FramebufferInfoTest() : FramebufferInfoTestBase(CONTEXT_TYPE_OPENGLES2) {}
173 }; 168 };
174 169
175 // GCC requires these declarations, but MSVC requires they not be present 170 // GCC requires these declarations, but MSVC requires they not be present
176 #ifndef COMPILER_MSVC 171 #ifndef COMPILER_MSVC
177 const GLuint FramebufferInfoTestBase::kClient1Id; 172 const GLuint FramebufferInfoTestBase::kClient1Id;
(...skipping 1489 matching lines...) Expand 10 before | Expand all | Expand 10 after
1667 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClientId); 1662 renderbuffer_manager_->GetRenderbuffer(kRenderbufferClientId);
1668 ASSERT_TRUE(renderbuffer != nullptr); 1663 ASSERT_TRUE(renderbuffer != nullptr);
1669 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT1, renderbuffer); 1664 framebuffer_->AttachRenderbuffer(GL_COLOR_ATTACHMENT1, renderbuffer);
1670 EXPECT_TRUE(framebuffer_->GetReadBufferAttachment()); 1665 EXPECT_TRUE(framebuffer_->GetReadBufferAttachment());
1671 } 1666 }
1672 1667
1673 } // namespace gles2 1668 } // namespace gles2
1674 } // namespace gpu 1669 } // namespace gpu
1675 1670
1676 1671
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698