| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "platform/graphics/OffscreenCanvasFrameDispatcherImpl.h" | 5 #include "platform/graphics/OffscreenCanvasFrameDispatcherImpl.h" |
| 6 | 6 |
| 7 #include "cc/output/compositor_frame.h" | 7 #include "cc/output/compositor_frame.h" |
| 8 #include "cc/quads/texture_draw_quad.h" | 8 #include "cc/quads/texture_draw_quad.h" |
| 9 #include "gpu/command_buffer/client/gles2_interface.h" | 9 #include "gpu/command_buffer/client/gles2_interface.h" |
| 10 #include "platform/CrossThreadFunctional.h" | 10 #include "platform/CrossThreadFunctional.h" |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 274 const bool nearestNeighbor = false; | 274 const bool nearestNeighbor = false; |
| 275 quad->SetAll(sqs, bounds, bounds, bounds, needsBlending, resource.id, | 275 quad->SetAll(sqs, bounds, bounds, bounds, needsBlending, resource.id, |
| 276 gfx::Size(), premultipliedAlpha, uvTopLeft, uvBottomRight, | 276 gfx::Size(), premultipliedAlpha, uvTopLeft, uvBottomRight, |
| 277 SK_ColorTRANSPARENT, vertexOpacity, yflipped, nearestNeighbor, | 277 SK_ColorTRANSPARENT, vertexOpacity, yflipped, nearestNeighbor, |
| 278 false); | 278 false); |
| 279 | 279 |
| 280 frame.render_pass_list.push_back(std::move(pass)); | 280 frame.render_pass_list.push_back(std::move(pass)); |
| 281 | 281 |
| 282 double elapsedTime = WTF::monotonicallyIncreasingTime() - commitStartTime; | 282 double elapsedTime = WTF::monotonicallyIncreasingTime() - commitStartTime; |
| 283 | 283 |
| 284 // TODO(crbug.com/663916): The off-main-thread metrics are commented-out | |
| 285 // because they cause thread check errors (static variable accessed in many | |
| 286 // threads) | |
| 287 switch (commitType) { | 284 switch (commitType) { |
| 288 case CommitGPUCanvasGPUCompositing: | 285 case CommitGPUCanvasGPUCompositing: |
| 289 if (isMainThread()) { | 286 if (isMainThread()) { |
| 290 DEFINE_STATIC_LOCAL( | 287 DEFINE_STATIC_LOCAL( |
| 291 CustomCountHistogram, commitGPUCanvasGPUCompositingMainTimer, | 288 CustomCountHistogram, commitGPUCanvasGPUCompositingMainTimer, |
| 292 ("Blink.Canvas.OffscreenCommit.GPUCanvasGPUCompositingMain", 0, | 289 ("Blink.Canvas.OffscreenCommit.GPUCanvasGPUCompositingMain", 0, |
| 293 10000000, 50)); | 290 10000000, 50)); |
| 294 commitGPUCanvasGPUCompositingMainTimer.count(elapsedTime * 1000000.0); | 291 commitGPUCanvasGPUCompositingMainTimer.count(elapsedTime * 1000000.0); |
| 295 } /* else { | 292 } else { |
| 296 DEFINE_STATIC_LOCAL( | 293 DEFINE_THREAD_SAFE_STATIC_LOCAL( |
| 297 CustomCountHistogram, commitGPUCanvasGPUCompositingWorkerTimer, | 294 CustomCountHistogram, commitGPUCanvasGPUCompositingWorkerTimer, |
| 298 ("Blink.Canvas.OffscreenCommit.GPUCanvasGPUCompositingWorker", 0, | 295 new CustomCountHistogram( |
| 299 10000000, 50)); | 296 "Blink.Canvas.OffscreenCommit.GPUCanvasGPUCompositingWorker", 0, |
| 297 10000000, 50)); |
| 300 commitGPUCanvasGPUCompositingWorkerTimer.count(elapsedTime * 1000000.0); | 298 commitGPUCanvasGPUCompositingWorkerTimer.count(elapsedTime * 1000000.0); |
| 301 } */ | 299 } |
| 302 break; | 300 break; |
| 303 case CommitGPUCanvasSoftwareCompositing: | 301 case CommitGPUCanvasSoftwareCompositing: |
| 304 if (isMainThread()) { | 302 if (isMainThread()) { |
| 305 DEFINE_STATIC_LOCAL( | 303 DEFINE_STATIC_LOCAL( |
| 306 CustomCountHistogram, commitGPUCanvasSoftwareCompositingMainTimer, | 304 CustomCountHistogram, commitGPUCanvasSoftwareCompositingMainTimer, |
| 307 ("Blink.Canvas.OffscreenCommit.GPUCanvasSoftwareCompositingMain", 0, | 305 ("Blink.Canvas.OffscreenCommit.GPUCanvasSoftwareCompositingMain", 0, |
| 308 10000000, 50)); | 306 10000000, 50)); |
| 309 commitGPUCanvasSoftwareCompositingMainTimer.count(elapsedTime * | 307 commitGPUCanvasSoftwareCompositingMainTimer.count(elapsedTime * |
| 310 1000000.0); | 308 1000000.0); |
| 311 } /* else { | 309 } else { |
| 312 DEFINE_STATIC_LOCAL( | 310 DEFINE_THREAD_SAFE_STATIC_LOCAL( |
| 313 CustomCountHistogram, commitGPUCanvasSoftwareCompositingWorkerTimer, | 311 CustomCountHistogram, commitGPUCanvasSoftwareCompositingWorkerTimer, |
| 314 ("Blink.Canvas.OffscreenCommit.GPUCanvasSoftwareCompositingWorker", | 312 new CustomCountHistogram("Blink.Canvas.OffscreenCommit." |
| 315 0, 10000000, 50)); | 313 "GPUCanvasSoftwareCompositingWorker", |
| 314 0, 10000000, 50)); |
| 316 commitGPUCanvasSoftwareCompositingWorkerTimer.count(elapsedTime * | 315 commitGPUCanvasSoftwareCompositingWorkerTimer.count(elapsedTime * |
| 317 1000000.0); | 316 1000000.0); |
| 318 } */ | 317 } |
| 319 break; | 318 break; |
| 320 case CommitSoftwareCanvasGPUCompositing: | 319 case CommitSoftwareCanvasGPUCompositing: |
| 321 if (isMainThread()) { | 320 if (isMainThread()) { |
| 322 DEFINE_STATIC_LOCAL( | 321 DEFINE_STATIC_LOCAL( |
| 323 CustomCountHistogram, commitSoftwareCanvasGPUCompositingMainTimer, | 322 CustomCountHistogram, commitSoftwareCanvasGPUCompositingMainTimer, |
| 324 ("Blink.Canvas.OffscreenCommit.SoftwareCanvasGPUCompositingMain", 0, | 323 ("Blink.Canvas.OffscreenCommit.SoftwareCanvasGPUCompositingMain", 0, |
| 325 10000000, 50)); | 324 10000000, 50)); |
| 326 commitSoftwareCanvasGPUCompositingMainTimer.count(elapsedTime * | 325 commitSoftwareCanvasGPUCompositingMainTimer.count(elapsedTime * |
| 327 1000000.0); | 326 1000000.0); |
| 328 } /* else { | 327 } else { |
| 329 DEFINE_STATIC_LOCAL( | 328 DEFINE_THREAD_SAFE_STATIC_LOCAL( |
| 330 CustomCountHistogram, commitSoftwareCanvasGPUCompositingWorkerTimer, | 329 CustomCountHistogram, commitSoftwareCanvasGPUCompositingWorkerTimer, |
| 331 ("Blink.Canvas.OffscreenCommit.SoftwareCanvasGPUCompositingWorker", | 330 new CustomCountHistogram("Blink.Canvas.OffscreenCommit." |
| 332 0, 10000000, 50)); | 331 "SoftwareCanvasGPUCompositingWorker", |
| 332 0, 10000000, 50)); |
| 333 commitSoftwareCanvasGPUCompositingWorkerTimer.count(elapsedTime * | 333 commitSoftwareCanvasGPUCompositingWorkerTimer.count(elapsedTime * |
| 334 1000000.0); | 334 1000000.0); |
| 335 } */ | 335 } |
| 336 break; | 336 break; |
| 337 case CommitSoftwareCanvasSoftwareCompositing: | 337 case CommitSoftwareCanvasSoftwareCompositing: |
| 338 if (isMainThread()) { | 338 if (isMainThread()) { |
| 339 DEFINE_STATIC_LOCAL(CustomCountHistogram, | 339 DEFINE_STATIC_LOCAL(CustomCountHistogram, |
| 340 commitSoftwareCanvasSoftwareCompositingMainTimer, | 340 commitSoftwareCanvasSoftwareCompositingMainTimer, |
| 341 ("Blink.Canvas.OffscreenCommit." | 341 ("Blink.Canvas.OffscreenCommit." |
| 342 "SoftwareCanvasSoftwareCompositingMain", | 342 "SoftwareCanvasSoftwareCompositingMain", |
| 343 0, 10000000, 50)); | 343 0, 10000000, 50)); |
| 344 commitSoftwareCanvasSoftwareCompositingMainTimer.count(elapsedTime * | 344 commitSoftwareCanvasSoftwareCompositingMainTimer.count(elapsedTime * |
| 345 1000000.0); | 345 1000000.0); |
| 346 } /* else { | 346 } else { |
| 347 DEFINE_STATIC_LOCAL(CustomCountHistogram, | 347 DEFINE_THREAD_SAFE_STATIC_LOCAL( |
| 348 commitSoftwareCanvasSoftwareCompositingWorkerTimer, | 348 CustomCountHistogram, |
| 349 ("Blink.Canvas.OffscreenCommit." | 349 commitSoftwareCanvasSoftwareCompositingWorkerTimer, |
| 350 "SoftwareCanvasSoftwareCompositingWorker", | 350 new CustomCountHistogram("Blink.Canvas.OffscreenCommit." |
| 351 0, 10000000, 50)); | 351 "SoftwareCanvasSoftwareCompositingWorker", |
| 352 0, 10000000, 50)); |
| 352 commitSoftwareCanvasSoftwareCompositingWorkerTimer.count(elapsedTime * | 353 commitSoftwareCanvasSoftwareCompositingWorkerTimer.count(elapsedTime * |
| 353 1000000.0); | 354 1000000.0); |
| 354 } */ | 355 } |
| 355 break; | 356 break; |
| 356 case OffscreenCanvasCommitTypeCount: | 357 case OffscreenCanvasCommitTypeCount: |
| 357 NOTREACHED(); | 358 NOTREACHED(); |
| 358 } | 359 } |
| 359 | 360 |
| 360 m_sink->SubmitCompositorFrame(std::move(frame)); | 361 m_sink->SubmitCompositorFrame(std::move(frame)); |
| 361 } | 362 } |
| 362 | 363 |
| 363 void OffscreenCanvasFrameDispatcherImpl::DidReceiveCompositorFrameAck() { | 364 void OffscreenCanvasFrameDispatcherImpl::DidReceiveCompositorFrameAck() { |
| 364 // TODO(fsamuel): Implement this. | 365 // TODO(fsamuel): Implement this. |
| (...skipping 29 matching lines...) Expand all Loading... |
| 394 } | 395 } |
| 395 | 396 |
| 396 bool OffscreenCanvasFrameDispatcherImpl::verifyImageSize( | 397 bool OffscreenCanvasFrameDispatcherImpl::verifyImageSize( |
| 397 const IntSize imageSize) { | 398 const IntSize imageSize) { |
| 398 if (imageSize.width() == m_width && imageSize.height() == m_height) | 399 if (imageSize.width() == m_width && imageSize.height() == m_height) |
| 399 return true; | 400 return true; |
| 400 return false; | 401 return false; |
| 401 } | 402 } |
| 402 | 403 |
| 403 } // namespace blink | 404 } // namespace blink |
| OLD | NEW |