New issue
Advanced search Search tips

Issue 838899 link

Starred by 4 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug

Blocking:
issue 898270



Sign in to add a comment

SkiaRenderer: play back Skia DDL on a vulkan backed GrContext

Project Member Reported by penghuang@chromium.org, May 2 2018

Issue description

To use vulkan graphics for Chrome, we need initialize an Vulkan backed GrContext, and play back Skia DDL generated by SkiaRenderer against the Vulkan GrContext.
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 4 2018

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

commit a476611b3fbcc9ff552a2d504d7c58b58b4ff259
Author: Peng Huang <penghuang@chromium.org>
Date: Fri May 04 17:33:40 2018

SkiaRenderer: Remove vulkan related code.

In future, SkiaRenderer will only use SkDDL to draw frame, and the
SkiaOutputSurfaceImpl will handle vulkan related stuff. So the
SkiaRenderer doesn't need to know vulkan anymore.

Bug: 838899
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: Id611e02b4e20c318e202927fa6de8f9e548f4b81
Reviewed-on: https://chromium-review.googlesource.com/1039685
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556102}
[modify] https://crrev.com/a476611b3fbcc9ff552a2d504d7c58b58b4ff259/components/viz/service/display/skia_renderer.cc
[modify] https://crrev.com/a476611b3fbcc9ff552a2d504d7c58b58b4ff259/components/viz/service/display/skia_renderer.h

Project Member

Comment 2 by bugdroid1@chromium.org, May 18 2018

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

commit 3e9da9ea0eb126f2e334850c925d2840d8fd8fa2
Author: Peng Huang <penghuang@chromium.org>
Date: Fri May 18 20:47:44 2018

Fix a crash in SkiaOutputSurfaceImplOnGpu's dtor

Bug: 838899
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: Ic3971e4b502b9cfaa4b18630efced78dec1aca72
Reviewed-on: https://chromium-review.googlesource.com/1066553
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560015}
[modify] https://crrev.com/3e9da9ea0eb126f2e334850c925d2840d8fd8fa2/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 9

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

commit 0aa4c57f051a2f7ec6f3600aa3dab78a6d9134f0
Author: Peng Huang <penghuang@chromium.org>
Date: Mon Jul 09 22:34:33 2018

Has multiple GrContexts based on GLSurface CompatibilityKey.

On Linux X11, the GLSurface may have different compatibility key. We
have to have to create different GLContext and GrContext based on the
compatibility key. Becasue GLContext::MakeCurrent(GLSurface*) will not
work if they are not compatiable. On other platforms, the compatibility
key is always 0.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: If36e218963f59c9dd7001c6fe7a7b133fd435434
Bug: 838899
Reviewed-on: https://chromium-review.googlesource.com/1125084
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573491}
[modify] https://crrev.com/0aa4c57f051a2f7ec6f3600aa3dab78a6d9134f0/components/viz/service/display_embedder/skia_output_surface_impl.cc
[modify] https://crrev.com/0aa4c57f051a2f7ec6f3600aa3dab78a6d9134f0/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
[modify] https://crrev.com/0aa4c57f051a2f7ec6f3600aa3dab78a6d9134f0/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h
[modify] https://crrev.com/0aa4c57f051a2f7ec6f3600aa3dab78a6d9134f0/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/0aa4c57f051a2f7ec6f3600aa3dab78a6d9134f0/components/viz/service/gl/gpu_service_impl.h

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 16

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

commit cfc3180d6d179d5782ad4e3a154857a751d18ad7
Author: Peng Huang <penghuang@chromium.org>
Date: Mon Jul 16 21:47:08 2018

viz: Create Vulkan instance and Vulkan GrContext with --enable-vulkan

This CL will create Vulkan instance and Vulkan GrContext when
--enable-vulkan is specified. And SkiaOutputSurfaceImpl and
SkiaOutputSurfaceImplOnGpu will use the Vulkan GrContext to
renderer to replay the SkDDL.

Known issues:
 * RasterDecoder still produces GL textures, it should use the GrContext
from GpuServiceImpl.
 * Media still produce GL textures.
 * WebGL still produce GL textures.
 * Browser UI doesn't use RasterDecoder.


Bug: 838899
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I1026c70e0916d25a9878767336b106299b9dbce7
Reviewed-on: https://chromium-review.googlesource.com/1126166
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575438}
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/cc/test/pixel_test.cc
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/components/viz/service/display_embedder/DEPS
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/components/viz/service/display_embedder/skia_output_surface_impl.cc
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/components/viz/service/gl/DEPS
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/components/viz/service/gl/gpu_service_impl.h
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/components/viz/service/gl/gpu_service_impl_unittest.cc
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/components/viz/service/main/viz_main_impl.cc
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/content/public/browser/gpu_utils.cc
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/gpu/config/gpu_preferences.h
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/gpu/config/gpu_preferences_unittest.cc
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/gpu/ipc/common/gpu_preferences.mojom
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/gpu/ipc/common/gpu_preferences_struct_traits.h
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/gpu/ipc/service/BUILD.gn
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/gpu/ipc/service/gpu_init.cc
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/gpu/ipc/service/gpu_init.h
[modify] https://crrev.com/cfc3180d6d179d5782ad4e3a154857a751d18ad7/services/ui/gpu_host/gpu_host_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 7

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

commit 67893ecf8141123287193438df5947b994bc1b28
Author: Peng Huang <penghuang@chromium.org>
Date: Tue Aug 07 13:14:20 2018

Support more formats for Vulkan

Bug: 838899
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: I5e8cfd0ad6fc86c6e4e1dcc5983f372a3a3142b3
Reviewed-on: https://chromium-review.googlesource.com/1160770
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581209}
[modify] https://crrev.com/67893ecf8141123287193438df5947b994bc1b28/components/viz/service/display_embedder/skia_output_surface_impl.cc
[modify] https://crrev.com/67893ecf8141123287193438df5947b994bc1b28/ui/gfx/BUILD.gn
[modify] https://crrev.com/67893ecf8141123287193438df5947b994bc1b28/ui/gfx/DEPS
[modify] https://crrev.com/67893ecf8141123287193438df5947b994bc1b28/ui/gfx/skia_util.cc
[modify] https://crrev.com/67893ecf8141123287193438df5947b994bc1b28/ui/gfx/skia_util.h

Blocking: 898270
Labels: vulkanize
Labels: -vulkanize Proj-Vulkanize
Can you expand the bug description to capture what this is?
Summary: SkiaRenderer: play back Skia DDL on a vulkan backed GrContext (was: Support vulkan backend with SkiaRenderer + SkDDL)
To use vulkan graphics for Chrome, we need initialize an Vulkan backed GrContext, and play back Skia DDL generated by SkiaRenderer against the Vulkan GrContext.
Description: Show this description
Project Member

Comment 11 by bugdroid1@chromium.org, Oct 30

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

commit 42c8a1ddda754e566139ab90c18ad2b2682f731d
Author: Peng Huang <penghuang@chromium.org>
Date: Tue Oct 30 18:28:14 2018

Share GrContext between display compositor and raster decorders.

Known issues:
 * Browser and renderer main threads are still using GLES2Interface instead
   of RasterInterface.
 * RasterDecoder still needs GLContext when --enable-vulkan flag is used.

Bug: 838899
Change-Id: Id70bb41995b357846c15bc106cd3addfe527ad53
Reviewed-on: https://chromium-review.googlesource.com/c/1298336
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: enne <enne@chromium.org>
Reviewed-by: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603968}
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/cc/test/DEPS
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/cc/test/pixel_test.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/cc/test/pixel_test.h
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/components/viz/service/display/display.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/components/viz/service/display/skia_output_surface.h
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/components/viz/service/display_embedder/skia_output_surface_impl.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/components/viz/service/display_embedder/skia_output_surface_impl.h
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/components/viz/service/gl/gpu_service_impl.h
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/command_buffer/service/gr_cache_controller_unittest.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/command_buffer/service/raster_decoder_context_state.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/command_buffer/service/shared_image_backing_factory_gl_texture_unittest.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/command_buffer/service/wrapped_sk_image.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/ipc/DEPS
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/ipc/service/gles2_command_buffer_stub.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/42c8a1ddda754e566139ab90c18ad2b2682f731d/gpu/ipc/service/gpu_channel_manager.h

Project Member

Comment 12 by bugdroid1@chromium.org, Nov 19

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

commit 24a93997917fc5f8db02d8559e2083156409f280
Author: Peng Huang <penghuang@chromium.org>
Date: Mon Nov 19 21:23:26 2018

Fix a crash with SkiaRenderer + DDL + Vulkan.

With vulkan, if a client (renderer, ui, etc) creates a texture with
wrong interface(GLES2Interface), the viz process will crash without
any useful information. This CL will fix the problem by logging a
error message instead of crashing.

Bug: 838899
Change-Id: I8e0c5ba162f8e4de3b0bd10899944c6b0ea89272
Reviewed-on: https://chromium-review.googlesource.com/c/1342802
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: weiliangc <weiliangc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609440}
[modify] https://crrev.com/24a93997917fc5f8db02d8559e2083156409f280/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 22

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

commit a50cd8b5cf39f35c0478aca0c9c2d19bebbb5fc5
Author: Peng Huang <penghuang@chromium.org>
Date: Thu Nov 22 21:22:31 2018

Fix a SkiaRenderer + DDL + Vulkan crash

Bug: 838899
Change-Id: I72edfff6f3d97731b3f09f0bcf39fafa68a4ec50
Reviewed-on: https://chromium-review.googlesource.com/c/1348830
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: weiliangc <weiliangc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610490}
[modify] https://crrev.com/a50cd8b5cf39f35c0478aca0c9c2d19bebbb5fc5/components/viz/service/display/skia_renderer.cc

Sign in to add a comment