New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 902585 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 30
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android , Chrome
Pri: 2
Type: Bug

Blocking:
issue 839970



Sign in to add a comment

Remove one copy of WebGL LowLatency canvas context

Project Member Reported by mcasas@chromium.org, Nov 7

Issue description

Potential solution is to bypass the Skia management completely,
since when Drawingbuffer::CopyToPlatformTexture() is called, the
WebGL texture dance is resolved completely, and we don't need
Skia to hold anything for us, we can just CopySubTextureCHROMIUM
directly onto our front buffer (unless it breaks some read back path,
which might be the case). 
Cc: fs...@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Nov 8

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/72357faddf53b0f6b4b7a86e70ea1b4c784b5ed9

commit 72357faddf53b0f6b4b7a86e70ea1b4c784b5ed9
Author: Miguel Casas <mcasas@chromium.org>
Date: Thu Nov 08 00:01:45 2018

Canvas low latency: a few more cleanups

This CL has a few side cleanups to crrev.com/c/1321773, taken
out for clarity.
- Renames class
 CanvasResourceProviderRamGpuMemoryBuffer to
 CanvasResourceProviderBitmapGpuMemoryBuffer
- Moves calculation of |gl_format| to where it's used.

Bug:  902585 
Change-Id: Ia0f0393425afd60ad98dbdd38f3ef5bc0d5e9e2f
Reviewed-on: https://chromium-review.googlesource.com/c/1321749
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606229}
[modify] https://crrev.com/72357faddf53b0f6b4b7a86e70ea1b4c784b5ed9/third_party/blink/renderer/platform/graphics/canvas_resource.cc
[modify] https://crrev.com/72357faddf53b0f6b4b7a86e70ea1b4c784b5ed9/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc
[modify] https://crrev.com/72357faddf53b0f6b4b7a86e70ea1b4c784b5ed9/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Nov 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a94d04ab1ed23a4ad5a3727809c12ae4927327bd

commit a94d04ab1ed23a4ad5a3727809c12ae4927327bd
Author: Miguel Casas <mcasas@chromium.org>
Date: Wed Nov 28 00:28:45 2018

Canvas low latency: use the front buffer for Skia's SkSurface

This CL defines a new CanvasResourceProviderDirectGpuMemoryBuffer,
which uses the CanvasResource's GpuMeMoryBuffer's texture for
Skia's SkSurface::MakeFromBackendTextureAsRenderTarget.

This is used for both 2D and WebGL lowlatency:
- For 2D, we'll just use Skia to draw directly onto the front
 buffer, thus skipping copies, but possibly introducing more
tearing.
- 3D has a DrawingBuffer where it resolves all GL commands, in
this case we blit onto the CRP's SkSurface; using the new "Direct"
mode thus skips a copy.

Bug:  902585 
Change-Id: I6a8d88dd75812addd47abf21a3d74e6e5d2e42f4
Reviewed-on: https://chromium-review.googlesource.com/c/1321773
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611451}
[modify] https://crrev.com/a94d04ab1ed23a4ad5a3727809c12ae4927327bd/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.cc
[modify] https://crrev.com/a94d04ab1ed23a4ad5a3727809c12ae4927327bd/third_party/blink/renderer/platform/graphics/canvas_resource.cc
[modify] https://crrev.com/a94d04ab1ed23a4ad5a3727809c12ae4927327bd/third_party/blink/renderer/platform/graphics/canvas_resource.h
[modify] https://crrev.com/a94d04ab1ed23a4ad5a3727809c12ae4927327bd/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc
[modify] https://crrev.com/a94d04ab1ed23a4ad5a3727809c12ae4927327bd/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h

Project Member

Comment 6 by bugdroid1@chromium.org, Nov 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/51926240546811e39c229e53b0ed0d504330999d

commit 51926240546811e39c229e53b0ed0d504330999d
Author: Miguel Casas <mcasas@chromium.org>
Date: Wed Nov 28 01:09:35 2018

canvas: Update CanvasResourceProviderTest

This CL adds a CanvasResourceProviderDirectGpuMemoryBuffer test
case to the mentioned unit test file after crrev.com/c/1321773
lands this new provider.

The mentioned new provider needs to use GpuMemoryBuffers, so a
Fake GLES2 interface and a FakePlatformSupport are needed and
added.

Bug:  902585 
Change-Id: I2a1da94a2108bead8394e715b2a85fa57fac1c59
Reviewed-on: https://chromium-review.googlesource.com/c/1351746
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611481}
[modify] https://crrev.com/51926240546811e39c229e53b0ed0d504330999d/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/223ddbf6ddcdfb905b7d9b887af31112174c2cfa

commit 223ddbf6ddcdfb905b7d9b887af31112174c2cfa
Author: Miguel Casas <mcasas@chromium.org>
Date: Wed Nov 28 02:02:44 2018

canvas tests: extract Fake TestingPlatformSupport to a file

This CL extracts a Fake TestingPlatformSupport with the
GetGpuMemoryBufferManager implemented to a common location
under the test/ folder.

canvas_2d_layer_bridge_test.cc had two methods that were not
used, this CL removes those.

Bug:  902585 
Change-Id: Iea41033d59794a9f3fb550739d0736345318f291
Reviewed-on: https://chromium-review.googlesource.com/c/1352472
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611509}
[modify] https://crrev.com/223ddbf6ddcdfb905b7d9b887af31112174c2cfa/third_party/blink/renderer/platform/BUILD.gn
[modify] https://crrev.com/223ddbf6ddcdfb905b7d9b887af31112174c2cfa/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge_test.cc
[modify] https://crrev.com/223ddbf6ddcdfb905b7d9b887af31112174c2cfa/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc
[modify] https://crrev.com/223ddbf6ddcdfb905b7d9b887af31112174c2cfa/third_party/blink/renderer/platform/graphics/canvas_resource_test.cc
[modify] https://crrev.com/223ddbf6ddcdfb905b7d9b887af31112174c2cfa/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer_test.cc
[modify] https://crrev.com/223ddbf6ddcdfb905b7d9b887af31112174c2cfa/third_party/blink/renderer/platform/graphics/test/DEPS
[add] https://crrev.com/223ddbf6ddcdfb905b7d9b887af31112174c2cfa/third_party/blink/renderer/platform/graphics/test/gpu_memory_buffer_test_platform.h

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/442356f97b68f1d2e434c0a303783e572ffe37d3

commit 442356f97b68f1d2e434c0a303783e572ffe37d3
Author: Miguel Casas <mcasas@chromium.org>
Date: Wed Nov 28 16:38:24 2018

Cleanup CanvasColorParams

This CL makes a CanvasColorParams() ctor private since
it's not called from outside the method, and inlines
three mutators. Also turns an if(A) return B; return C;
into return ! ? B : C;

Bug:  902585 
Change-Id: I9582cce8cba5c546eef63096dab0ab476e84e9e9
Reviewed-on: https://chromium-review.googlesource.com/c/1330347
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611727}
[modify] https://crrev.com/442356f97b68f1d2e434c0a303783e572ffe37d3/third_party/blink/renderer/platform/graphics/canvas_color_params.cc
[modify] https://crrev.com/442356f97b68f1d2e434c0a303783e572ffe37d3/third_party/blink/renderer/platform/graphics/canvas_color_params.h

Project Member

Comment 9 by bugdroid1@chromium.org, Nov 29

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/49750f23fb512e8bff2498d969bcdc2b9d74532a

commit 49750f23fb512e8bff2498d969bcdc2b9d74532a
Author: Miguel Casas <mcasas@chromium.org>
Date: Thu Nov 29 03:12:44 2018

Canvas provider: Fix RamGpuMemoryBuffer enum naming

Fix RamGpuMemoryBuffer enum naming that was forgotten, and some
style nags.

Bug:  902585 
Change-Id: Ieede0b6b7164ed8a50c60d94a4449a91bf944eaf
Reviewed-on: https://chromium-review.googlesource.com/c/1354405
Reviewed-by: Emircan Uysaler <emircan@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612012}
[modify] https://crrev.com/49750f23fb512e8bff2498d969bcdc2b9d74532a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc

Status: Fixed (was: Assigned)
This should be fixed and available in 72.0.3625.0 +

Sign in to add a comment