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

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

Issue 12326146: Refactor/Rename a bunch of GPU stuff (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 | Annotate | Revision Log
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 "gpu/command_buffer/service/renderbuffer_manager.h" 5 #include "gpu/command_buffer/service/renderbuffer_manager.h"
6 6
7 #include <set> 7 #include <set>
8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 8 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
9 #include "gpu/command_buffer/service/mocks.h" 9 #include "gpu/command_buffer/service/mocks.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 #endif 71 #endif
72 72
73 TEST_F(RenderbufferManagerTest, Basic) { 73 TEST_F(RenderbufferManagerTest, Basic) {
74 const GLuint kClient1Id = 1; 74 const GLuint kClient1Id = 1;
75 const GLuint kService1Id = 11; 75 const GLuint kService1Id = 11;
76 const GLuint kClient2Id = 2; 76 const GLuint kClient2Id = 2;
77 EXPECT_EQ(kMaxSize, manager_->max_renderbuffer_size()); 77 EXPECT_EQ(kMaxSize, manager_->max_renderbuffer_size());
78 EXPECT_EQ(kMaxSamples, manager_->max_samples()); 78 EXPECT_EQ(kMaxSamples, manager_->max_samples());
79 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers()); 79 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers());
80 // Check we can create renderbuffer. 80 // Check we can create renderbuffer.
81 manager_->CreateRenderbufferInfo(kClient1Id, kService1Id); 81 manager_->CreateRenderbuffer(kClient1Id, kService1Id);
82 // Check renderbuffer got created. 82 // Check renderbuffer got created.
83 RenderbufferManager::RenderbufferInfo* info1 = 83 Renderbuffer* info1 =
84 manager_->GetRenderbufferInfo(kClient1Id); 84 manager_->GetRenderbuffer(kClient1Id);
85 ASSERT_TRUE(info1 != NULL); 85 ASSERT_TRUE(info1 != NULL);
86 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers()); 86 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers());
87 GLuint client_id = 0; 87 GLuint client_id = 0;
88 EXPECT_TRUE(manager_->GetClientId(info1->service_id(), &client_id)); 88 EXPECT_TRUE(manager_->GetClientId(info1->service_id(), &client_id));
89 EXPECT_EQ(kClient1Id, client_id); 89 EXPECT_EQ(kClient1Id, client_id);
90 // Check we get nothing for a non-existent renderbuffer. 90 // Check we get nothing for a non-existent renderbuffer.
91 EXPECT_TRUE(manager_->GetRenderbufferInfo(kClient2Id) == NULL); 91 EXPECT_TRUE(manager_->GetRenderbuffer(kClient2Id) == NULL);
92 // Check trying to a remove non-existent renderbuffers does not crash. 92 // Check trying to a remove non-existent renderbuffers does not crash.
93 manager_->RemoveRenderbufferInfo(kClient2Id); 93 manager_->RemoveRenderbuffer(kClient2Id);
94 // Check that the renderbuffer is deleted when the last ref is released. 94 // Check that the renderbuffer is deleted when the last ref is released.
95 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id))) 95 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id)))
96 .Times(1) 96 .Times(1)
97 .RetiresOnSaturation(); 97 .RetiresOnSaturation();
98 // Check we can't get the renderbuffer after we remove it. 98 // Check we can't get the renderbuffer after we remove it.
99 manager_->RemoveRenderbufferInfo(kClient1Id); 99 manager_->RemoveRenderbuffer(kClient1Id);
100 EXPECT_TRUE(manager_->GetRenderbufferInfo(kClient1Id) == NULL); 100 EXPECT_TRUE(manager_->GetRenderbuffer(kClient1Id) == NULL);
101 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers()); 101 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers());
102 } 102 }
103 103
104 TEST_F(RenderbufferManagerTest, Destroy) { 104 TEST_F(RenderbufferManagerTest, Destroy) {
105 const GLuint kClient1Id = 1; 105 const GLuint kClient1Id = 1;
106 const GLuint kService1Id = 11; 106 const GLuint kService1Id = 11;
107 // Check we can create renderbuffer. 107 // Check we can create renderbuffer.
108 manager_->CreateRenderbufferInfo(kClient1Id, kService1Id); 108 manager_->CreateRenderbuffer(kClient1Id, kService1Id);
109 // Check renderbuffer got created. 109 // Check renderbuffer got created.
110 RenderbufferManager::RenderbufferInfo* info1 = 110 Renderbuffer* info1 =
111 manager_->GetRenderbufferInfo(kClient1Id); 111 manager_->GetRenderbuffer(kClient1Id);
112 ASSERT_TRUE(info1 != NULL); 112 ASSERT_TRUE(info1 != NULL);
113 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id))) 113 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id)))
114 .Times(1) 114 .Times(1)
115 .RetiresOnSaturation(); 115 .RetiresOnSaturation();
116 manager_->Destroy(true); 116 manager_->Destroy(true);
117 info1 = manager_->GetRenderbufferInfo(kClient1Id); 117 info1 = manager_->GetRenderbuffer(kClient1Id);
118 ASSERT_TRUE(info1 == NULL); 118 ASSERT_TRUE(info1 == NULL);
119 } 119 }
120 120
121 TEST_F(RenderbufferManagerTest, RenderbufferInfo) { 121 TEST_F(RenderbufferManagerTest, Renderbuffer) {
122 const GLuint kClient1Id = 1; 122 const GLuint kClient1Id = 1;
123 const GLuint kService1Id = 11; 123 const GLuint kService1Id = 11;
124 // Check we can create renderbuffer. 124 // Check we can create renderbuffer.
125 manager_->CreateRenderbufferInfo(kClient1Id, kService1Id); 125 manager_->CreateRenderbuffer(kClient1Id, kService1Id);
126 // Check renderbuffer got created. 126 // Check renderbuffer got created.
127 RenderbufferManager::RenderbufferInfo* info1 = 127 Renderbuffer* info1 =
128 manager_->GetRenderbufferInfo(kClient1Id); 128 manager_->GetRenderbuffer(kClient1Id);
129 ASSERT_TRUE(info1 != NULL); 129 ASSERT_TRUE(info1 != NULL);
130 EXPECT_EQ(kService1Id, info1->service_id()); 130 EXPECT_EQ(kService1Id, info1->service_id());
131 EXPECT_EQ(0, info1->samples()); 131 EXPECT_EQ(0, info1->samples());
132 EXPECT_EQ(static_cast<GLenum>(GL_RGBA4), info1->internal_format()); 132 EXPECT_EQ(static_cast<GLenum>(GL_RGBA4), info1->internal_format());
133 EXPECT_EQ(0, info1->width()); 133 EXPECT_EQ(0, info1->width());
134 EXPECT_EQ(0, info1->height()); 134 EXPECT_EQ(0, info1->height());
135 EXPECT_TRUE(info1->cleared()); 135 EXPECT_TRUE(info1->cleared());
136 EXPECT_EQ(0u, info1->EstimatedSize()); 136 EXPECT_EQ(0u, info1->EstimatedSize());
137 137
138 // Check if we set the info it gets marked as not cleared. 138 // Check if we set the info it gets marked as not cleared.
(...skipping 15 matching lines...) Expand all
154 EXPECT_TRUE(info1->cleared()); 154 EXPECT_TRUE(info1->cleared());
155 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers()); 155 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers());
156 156
157 manager_->SetInfo(info1, kSamples, kFormat, kWidth, kHeight); 157 manager_->SetInfo(info1, kSamples, kFormat, kWidth, kHeight);
158 EXPECT_TRUE(manager_->HaveUnclearedRenderbuffers()); 158 EXPECT_TRUE(manager_->HaveUnclearedRenderbuffers());
159 159
160 // Check that the renderbuffer is deleted when the last ref is released. 160 // Check that the renderbuffer is deleted when the last ref is released.
161 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id))) 161 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id)))
162 .Times(1) 162 .Times(1)
163 .RetiresOnSaturation(); 163 .RetiresOnSaturation();
164 manager_->RemoveRenderbufferInfo(kClient1Id); 164 manager_->RemoveRenderbuffer(kClient1Id);
165 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers()); 165 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers());
166 } 166 }
167 167
168 TEST_F(RenderbufferManagerMemoryTrackerTest, Basic) { 168 TEST_F(RenderbufferManagerMemoryTrackerTest, Basic) {
169 const GLuint kClient1Id = 1; 169 const GLuint kClient1Id = 1;
170 const GLuint kService1Id = 11; 170 const GLuint kService1Id = 11;
171 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0, MemoryTracker::kUnmanaged); 171 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0, MemoryTracker::kUnmanaged);
172 manager_->CreateRenderbufferInfo(kClient1Id, kService1Id); 172 manager_->CreateRenderbuffer(kClient1Id, kService1Id);
173 RenderbufferManager::RenderbufferInfo* info1 = 173 Renderbuffer* info1 =
174 manager_->GetRenderbufferInfo(kClient1Id); 174 manager_->GetRenderbuffer(kClient1Id);
175 ASSERT_TRUE(info1 != NULL); 175 ASSERT_TRUE(info1 != NULL);
176 176
177 const GLsizei kSamples = 4; 177 const GLsizei kSamples = 4;
178 const GLenum kFormat = GL_RGBA4; 178 const GLenum kFormat = GL_RGBA4;
179 const GLsizei kWidth = 128; 179 const GLsizei kWidth = 128;
180 const GLsizei kHeight1 = 64; 180 const GLsizei kHeight1 = 64;
181 const GLsizei kHeight2 = 32; 181 const GLsizei kHeight2 = 32;
182 uint32 expected_size_1 = 0; 182 uint32 expected_size_1 = 0;
183 uint32 expected_size_2 = 0; 183 uint32 expected_size_2 = 0;
184 RenderbufferManager::ComputeEstimatedRenderbufferSize( 184 RenderbufferManager::ComputeEstimatedRenderbufferSize(
(...skipping 11 matching lines...) Expand all
196 EXPECT_MEMORY_ALLOCATION_CHANGE( 196 EXPECT_MEMORY_ALLOCATION_CHANGE(
197 expected_size_2, 0, MemoryTracker::kUnmanaged); 197 expected_size_2, 0, MemoryTracker::kUnmanaged);
198 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id))) 198 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id)))
199 .Times(1) 199 .Times(1)
200 .RetiresOnSaturation(); 200 .RetiresOnSaturation();
201 } 201 }
202 202
203 TEST_F(RenderbufferManagerTest, UseDeletedRenderbufferInfo) { 203 TEST_F(RenderbufferManagerTest, UseDeletedRenderbufferInfo) {
204 const GLuint kClient1Id = 1; 204 const GLuint kClient1Id = 1;
205 const GLuint kService1Id = 11; 205 const GLuint kService1Id = 11;
206 manager_->CreateRenderbufferInfo(kClient1Id, kService1Id); 206 manager_->CreateRenderbuffer(kClient1Id, kService1Id);
207 RenderbufferManager::RenderbufferInfo::Ref info1( 207 scoped_refptr<Renderbuffer> info1(
208 manager_->GetRenderbufferInfo(kClient1Id)); 208 manager_->GetRenderbuffer(kClient1Id));
209 ASSERT_TRUE(info1 != NULL); 209 ASSERT_TRUE(info1 != NULL);
210 // Remove it. 210 // Remove it.
211 manager_->RemoveRenderbufferInfo(kClient1Id); 211 manager_->RemoveRenderbuffer(kClient1Id);
212 // Use after removing. 212 // Use after removing.
213 const GLsizei kSamples = 4; 213 const GLsizei kSamples = 4;
214 const GLenum kFormat = GL_RGBA4; 214 const GLenum kFormat = GL_RGBA4;
215 const GLsizei kWidth = 128; 215 const GLsizei kWidth = 128;
216 const GLsizei kHeight = 64; 216 const GLsizei kHeight = 64;
217 manager_->SetInfo(info1, kSamples, kFormat, kWidth, kHeight); 217 manager_->SetInfo(info1, kSamples, kFormat, kWidth, kHeight);
218 // See that it still affects manager. 218 // See that it still affects manager.
219 EXPECT_TRUE(manager_->HaveUnclearedRenderbuffers()); 219 EXPECT_TRUE(manager_->HaveUnclearedRenderbuffers());
220 manager_->SetCleared(info1, true); 220 manager_->SetCleared(info1, true);
221 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers()); 221 EXPECT_FALSE(manager_->HaveUnclearedRenderbuffers());
(...skipping 10 matching lines...) Expand all
232 std::pair<std::set<std::string>::iterator, bool> result = 232 std::pair<std::set<std::string>::iterator, bool> result =
233 string_set->insert(str); 233 string_set->insert(str);
234 return !result.second; 234 return !result.second;
235 } 235 }
236 236
237 } // anonymous namespace 237 } // anonymous namespace
238 238
239 TEST_F(RenderbufferManagerTest, AddToSignature) { 239 TEST_F(RenderbufferManagerTest, AddToSignature) {
240 const GLuint kClient1Id = 1; 240 const GLuint kClient1Id = 1;
241 const GLuint kService1Id = 11; 241 const GLuint kService1Id = 11;
242 manager_->CreateRenderbufferInfo(kClient1Id, kService1Id); 242 manager_->CreateRenderbuffer(kClient1Id, kService1Id);
243 RenderbufferManager::RenderbufferInfo::Ref info1( 243 scoped_refptr<Renderbuffer> info1(
244 manager_->GetRenderbufferInfo(kClient1Id)); 244 manager_->GetRenderbuffer(kClient1Id));
245 ASSERT_TRUE(info1 != NULL); 245 ASSERT_TRUE(info1 != NULL);
246 const GLsizei kSamples = 4; 246 const GLsizei kSamples = 4;
247 const GLenum kFormat = GL_RGBA4; 247 const GLenum kFormat = GL_RGBA4;
248 const GLsizei kWidth = 128; 248 const GLsizei kWidth = 128;
249 const GLsizei kHeight = 64; 249 const GLsizei kHeight = 64;
250 manager_->SetInfo(info1, kSamples, kFormat, kWidth, kHeight); 250 manager_->SetInfo(info1, kSamples, kFormat, kWidth, kHeight);
251 std::string signature1; 251 std::string signature1;
252 std::string signature2; 252 std::string signature2;
253 info1->AddToSignature(&signature1); 253 info1->AddToSignature(&signature1);
254 254
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 286
287 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id))) 287 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id)))
288 .Times(1) 288 .Times(1)
289 .RetiresOnSaturation(); 289 .RetiresOnSaturation();
290 } 290 }
291 291
292 } // namespace gles2 292 } // namespace gles2
293 } // namespace gpu 293 } // namespace gpu
294 294
295 295
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/renderbuffer_manager.cc ('k') | gpu/command_buffer/service/shader_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698