OLD | NEW |
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 "cc/test/layer_tree_pixel_test.h" | 5 #include "cc/test/layer_tree_pixel_test.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
9 #include "cc/base/switches.h" | 9 #include "cc/base/switches.h" |
10 #include "cc/layers/solid_color_layer.h" | 10 #include "cc/layers/solid_color_layer.h" |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 scoped_ptr<SkBitmap> LayerTreePixelTest::CopyTextureMailboxToBitmap( | 240 scoped_ptr<SkBitmap> LayerTreePixelTest::CopyTextureMailboxToBitmap( |
241 const gfx::Size& size, | 241 const gfx::Size& size, |
242 const TextureMailbox& texture_mailbox) { | 242 const TextureMailbox& texture_mailbox) { |
243 DCHECK(texture_mailbox.IsTexture()); | 243 DCHECK(texture_mailbox.IsTexture()); |
244 if (!texture_mailbox.IsTexture()) | 244 if (!texture_mailbox.IsTexture()) |
245 return nullptr; | 245 return nullptr; |
246 | 246 |
247 scoped_ptr<gpu::GLInProcessContext> context = CreateTestInProcessContext(); | 247 scoped_ptr<gpu::GLInProcessContext> context = CreateTestInProcessContext(); |
248 GLES2Interface* gl = context->GetImplementation(); | 248 GLES2Interface* gl = context->GetImplementation(); |
249 | 249 |
250 if (texture_mailbox.sync_point()) | 250 if (texture_mailbox.sync_point() || texture_mailbox.sync_token().HasData()) { |
251 gl->WaitSyncPointCHROMIUM(texture_mailbox.sync_point()); | 251 gl->WaitSyncPointCHROMIUM(texture_mailbox.sync_point(), |
| 252 texture_mailbox.sync_token().GetConstData()); |
| 253 } |
252 | 254 |
253 GLuint texture_id = 0; | 255 GLuint texture_id = 0; |
254 gl->GenTextures(1, &texture_id); | 256 gl->GenTextures(1, &texture_id); |
255 gl->BindTexture(GL_TEXTURE_2D, texture_id); | 257 gl->BindTexture(GL_TEXTURE_2D, texture_id); |
256 gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | 258 gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |
257 gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); | 259 gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |
258 gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); | 260 gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); |
259 gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); | 261 gl->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
260 gl->ConsumeTextureCHROMIUM(texture_mailbox.target(), texture_mailbox.name()); | 262 gl->ConsumeTextureCHROMIUM(texture_mailbox.target(), texture_mailbox.name()); |
261 gl->BindTexture(GL_TEXTURE_2D, 0); | 263 gl->BindTexture(GL_TEXTURE_2D, 0); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 } | 301 } |
300 } | 302 } |
301 | 303 |
302 return bitmap.Pass(); | 304 return bitmap.Pass(); |
303 } | 305 } |
304 | 306 |
305 void LayerTreePixelTest::ReleaseTextureMailbox( | 307 void LayerTreePixelTest::ReleaseTextureMailbox( |
306 scoped_ptr<gpu::GLInProcessContext> context, | 308 scoped_ptr<gpu::GLInProcessContext> context, |
307 uint32 texture, | 309 uint32 texture, |
308 uint32 sync_point, | 310 uint32 sync_point, |
| 311 const gpu::SyncToken& sync_token, |
309 bool lost_resource) { | 312 bool lost_resource) { |
310 GLES2Interface* gl = context->GetImplementation(); | 313 GLES2Interface* gl = context->GetImplementation(); |
311 if (sync_point) | 314 if (sync_point || sync_token.HasData()) |
312 gl->WaitSyncPointCHROMIUM(sync_point); | 315 gl->WaitSyncPointCHROMIUM(sync_point, sync_token.GetConstData()); |
313 gl->DeleteTextures(1, &texture); | 316 gl->DeleteTextures(1, &texture); |
314 pending_texture_mailbox_callbacks_--; | 317 pending_texture_mailbox_callbacks_--; |
315 TryEndTest(); | 318 TryEndTest(); |
316 } | 319 } |
317 | 320 |
318 void LayerTreePixelTest::CopyBitmapToTextureMailboxAsTexture( | 321 void LayerTreePixelTest::CopyBitmapToTextureMailboxAsTexture( |
319 const SkBitmap& bitmap, | 322 const SkBitmap& bitmap, |
320 TextureMailbox* texture_mailbox, | 323 TextureMailbox* texture_mailbox, |
321 scoped_ptr<SingleReleaseCallback>* release_callback) { | 324 scoped_ptr<SingleReleaseCallback>* release_callback) { |
322 DCHECK_GT(bitmap.width(), 0); | 325 DCHECK_GT(bitmap.width(), 0); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 GL_UNSIGNED_BYTE, | 369 GL_UNSIGNED_BYTE, |
367 gl_pixels.get()); | 370 gl_pixels.get()); |
368 } | 371 } |
369 | 372 |
370 gpu::Mailbox mailbox; | 373 gpu::Mailbox mailbox; |
371 gl->GenMailboxCHROMIUM(mailbox.name); | 374 gl->GenMailboxCHROMIUM(mailbox.name); |
372 gl->ProduceTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); | 375 gl->ProduceTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); |
373 gl->BindTexture(GL_TEXTURE_2D, 0); | 376 gl->BindTexture(GL_TEXTURE_2D, 0); |
374 uint32 sync_point = gl->InsertSyncPointCHROMIUM(); | 377 uint32 sync_point = gl->InsertSyncPointCHROMIUM(); |
375 | 378 |
376 *texture_mailbox = TextureMailbox(mailbox, GL_TEXTURE_2D, sync_point); | 379 *texture_mailbox = |
| 380 TextureMailbox(mailbox, GL_TEXTURE_2D, sync_point, gpu::SyncToken()); |
377 *release_callback = SingleReleaseCallback::Create( | 381 *release_callback = SingleReleaseCallback::Create( |
378 base::Bind(&LayerTreePixelTest::ReleaseTextureMailbox, | 382 base::Bind(&LayerTreePixelTest::ReleaseTextureMailbox, |
379 base::Unretained(this), | 383 base::Unretained(this), |
380 base::Passed(&context), | 384 base::Passed(&context), |
381 texture_id)); | 385 texture_id)); |
382 } | 386 } |
383 | 387 |
384 void LayerTreePixelTest::Finish() { | 388 void LayerTreePixelTest::Finish() { |
385 scoped_ptr<gpu::GLInProcessContext> context = CreateTestInProcessContext(); | 389 scoped_ptr<gpu::GLInProcessContext> context = CreateTestInProcessContext(); |
386 GLES2Interface* gl = context->GetImplementation(); | 390 GLES2Interface* gl = context->GetImplementation(); |
387 gl->Finish(); | 391 gl->Finish(); |
388 } | 392 } |
389 | 393 |
390 } // namespace cc | 394 } // namespace cc |
OLD | NEW |