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

Issue 828393 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Feature



Sign in to add a comment

Pass overlay plane gpu fence from GL renderer to Ozone-DRM

Reported by alexandr...@collabora.com, Apr 3 2018

Issue description

Ozone-DRM now supports overlay plane in-fences, which signal when an image is ready to be displayed as an overlay (i.e., all rendering to it has been executed by the GPU). Using fences increases the efficiency of the rendering and display code paths and provides more opportunities for asynchronous operations.

In order to take advantage of the Ozone-DRM fence support, we need to pass "rendering done" fences from the GLRenderer to the Ozone-DRM backend when scheduling overlays. This involves producing fences on the GLRenderer/client side, updating the CHROMIUM_schedule_overlay_plane extension to support fences, and handling the passed fences on the service and Ozone-DRM side.
 
Components: Internals>Compositing
Cc: rjkroege@chromium.org reve...@chromium.org dcasta...@chromium.org
Components: -Internals>Compositing Internals>GPU
Labels: -Type-Bug Proj-Ozone-DRM Type-Feature
Status: Available (was: Unconfirmed)
Project Member

Comment 3 by bugdroid1@chromium.org, May 12 2018

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

commit 37751842e56471939e6a4f0171cd19b2e4d64025
Author: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Sat May 12 16:31:36 2018

gfx: Prepare NativePixmap to use overlay plane fences

Add a parameter for an unowned GpuFence to the
NativePixmap::ScheduleOverlayPlane() method. The parameter is unused at
the moment, but will be used in upcoming commits to wire the overlay
plane GpuFences in Ozone-DRM.

Bug: 828393
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
Change-Id: I4697764c88a307b307af0ca5c1305e2d83cceec4
Reviewed-on: https://chromium-review.googlesource.com/1021737
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558136}
[modify] https://crrev.com/37751842e56471939e6a4f0171cd19b2e4d64025/ui/gfx/linux/native_pixmap_dmabuf.cc
[modify] https://crrev.com/37751842e56471939e6a4f0171cd19b2e4d64025/ui/gfx/linux/native_pixmap_dmabuf.h
[modify] https://crrev.com/37751842e56471939e6a4f0171cd19b2e4d64025/ui/gfx/native_pixmap.h
[modify] https://crrev.com/37751842e56471939e6a4f0171cd19b2e4d64025/ui/gl/gl_image_native_pixmap.cc
[modify] https://crrev.com/37751842e56471939e6a4f0171cd19b2e4d64025/ui/ozone/platform/cast/surface_factory_cast.cc
[modify] https://crrev.com/37751842e56471939e6a4f0171cd19b2e4d64025/ui/ozone/platform/drm/gpu/gbm_buffer.cc
[modify] https://crrev.com/37751842e56471939e6a4f0171cd19b2e4d64025/ui/ozone/platform/drm/gpu/gbm_buffer.h
[modify] https://crrev.com/37751842e56471939e6a4f0171cd19b2e4d64025/ui/ozone/platform/headless/headless_surface_factory.cc

Project Member

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

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

commit 80aa7d643bc17e126806ecc0ad05bac33de7850a
Author: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Mon May 14 16:03:02 2018

gl: Prepare GLImage to use overlay plane fences

Add an unowned GpuFence parameter to the GLImage::ScheduleOverlayPlane
method and forward it to internal consumers (e.g., NativePixmap) where
needed.

Bug: 828393
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
Change-Id: I195f4ee9d0a9af886cb12ce27d2ce26ebd47684a
Reviewed-on: https://chromium-review.googlesource.com/1021511
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558331}
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/gpu/command_buffer/service/texture_definition.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/gpu/command_buffer/service/texture_manager_unittest.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/gpu/command_buffer/tests/texture_image_factory.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/gpu/ipc/service/stream_texture_android.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/gpu/ipc/service/stream_texture_android.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/media/gpu/android/avda_codec_image.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/media/gpu/android/avda_codec_image.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/media/gpu/android/codec_image.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/media/gpu/android/codec_image.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/media/gpu/android/codec_image_unittest.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/media/gpu/windows/dxva_picture_buffer_win.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_ahardwarebuffer.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_ahardwarebuffer.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_dxgi.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_dxgi.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_glx.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_glx.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_io_surface.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_io_surface.mm
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_memory.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_memory.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_native_pixmap.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_native_pixmap.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_stub.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_stub.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_surface_texture.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_image_surface_texture.h
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/gl/gl_surface_overlay.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/ozone/platform/cast/gl_surface_cast.cc
[modify] https://crrev.com/80aa7d643bc17e126806ecc0ad05bac33de7850a/ui/ozone/platform/drm/gpu/gbm_surface.cc

Project Member

Comment 5 by bugdroid1@chromium.org, May 15 2018

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

commit fa98bfefd285d0f15cf7efa39dbb98a920d70d48
Author: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Tue May 15 17:30:15 2018

gl: Prepare GLSurface to use overlay plane fences

Add a parameter for an owned GpuFence to the GLSurface and
GLSurfaceOverlay ScheduleOverlayPlane() methods. The
GLSurface/GLSurfaceOverlay objects own the provided GpuFences, and
forward them to internal consumers (e.g., GLImage) using unowned handles
where needed.

Also add the GLSurface::SetUsePlaneGpuFences() method to control whether
GLSurface objects actually use the overlay plane GpuFences for overlay
display synchronization.

Bug: 828393
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
Change-Id: I192bd91eabd6167943e03fe31177d128f7060d63
Reviewed-on: https://chromium-review.googlesource.com/1021512
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558763}
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/gpu/ipc/service/image_transport_surface_overlay_mac.h
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/gpu/ipc/service/image_transport_surface_overlay_mac.mm
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/gl/gl_surface.cc
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/gl/gl_surface.h
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/gl/gl_surface_egl.cc
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/gl/gl_surface_egl.h
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/gl/gl_surface_overlay.cc
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/gl/gl_surface_overlay.h
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/ozone/demo/skia/skia_surfaceless_gl_renderer.cc
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/ozone/demo/surfaceless_gl_renderer.cc
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/ozone/platform/cast/gl_surface_cast.cc
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/ozone/platform/cast/gl_surface_cast.h
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc
[modify] https://crrev.com/fa98bfefd285d0f15cf7efa39dbb98a920d70d48/ui/ozone/platform/drm/gpu/gbm_surfaceless.h

Project Member

Comment 6 by bugdroid1@chromium.org, May 16 2018

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

commit 922160eddcb34ca26c834c2a0b0e65269358f0bf
Author: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Wed May 16 21:19:10 2018

gfx: Add GpuFence::Wait() method

Provide a GpuFence::Wait() method to hide the implementation details of
waiting for a GpuFence object.

Bug: 828393
Change-Id: I2153ebcb4b8cca6bb43c827fb0a9740f6a6cc221
Reviewed-on: https://chromium-review.googlesource.com/1021513
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559292}
[modify] https://crrev.com/922160eddcb34ca26c834c2a0b0e65269358f0bf/ui/gfx/BUILD.gn
[modify] https://crrev.com/922160eddcb34ca26c834c2a0b0e65269358f0bf/ui/gfx/gpu_fence.cc
[modify] https://crrev.com/922160eddcb34ca26c834c2a0b0e65269358f0bf/ui/gfx/gpu_fence.h

Project Member

Comment 7 by bugdroid1@chromium.org, May 17 2018

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

commit ddd5a9147eedd129722a3758def38db8a0d2b26d
Author: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Thu May 17 03:24:22 2018

ozone: Add support for using overlay plane fences in ozone_demo

This commit prepares ozone_demo to use GpuFences for overlay planes,
when support for them lands in any of the Ozone backends. The
--use-gpu-fences ozone_demo flag controls whether to enable the use of
fences or use the existing glFinish mechanism.

Bug: 828393
Test: Run ozone_demo on Ozone-DRM
Change-Id: I797e9445479ff4a9768cb89033d1dd6fd826b5ae
Reviewed-on: https://chromium-review.googlesource.com/1021693
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Michael Spang <spang@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559412}
[modify] https://crrev.com/ddd5a9147eedd129722a3758def38db8a0d2b26d/ui/ozone/demo/ozone_demo.cc
[modify] https://crrev.com/ddd5a9147eedd129722a3758def38db8a0d2b26d/ui/ozone/demo/surfaceless_gl_renderer.cc
[modify] https://crrev.com/ddd5a9147eedd129722a3758def38db8a0d2b26d/ui/ozone/demo/surfaceless_gl_renderer.h

Project Member

Comment 8 by bugdroid1@chromium.org, May 17 2018

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

commit 6b82d425cb76d3d12d7f4690ab7b865659079f62
Author: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Thu May 17 13:53:50 2018

ozone/drm: Implement support for plane overlay fences

Add support for using the plane overlay fences provided by the
GbmSurfaceless::ScheduleOverlayPlane() method to synchronize display of
overlays in Ozone-DRM. This also involves implementing the
GbmSurfaceless::SetUsePlaneGpuFences() method to control whether the
provided fences are used instead of the internally constructed
EGLSyncKHR object.

Since the PendingFrame in GbmSurfaceless owns (through GLSurfaceOverlay)
the fences used for that frame, some refactorings where required in the
frame submission code to keep the PendingFrame alive until the frame is
complete.

Bug: 828393
Test: ozone_demo --use-gpu-fences on Ozone-DRM
Change-Id: Id48485c55d7a31b01858ed5dbbf45815ac54c621
Reviewed-on: https://chromium-review.googlesource.com/1021514
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559515}
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/drm_overlay_validator.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/drm_window_unittest.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/gbm_buffer.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/gbm_surfaceless.h
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/hardware_display_controller_unittest.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/hardware_display_plane_manager_atomic.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/hardware_display_plane_manager_legacy.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/hardware_display_plane_manager_unittest.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/overlay_plane.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/overlay_plane.h
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/screen_manager.cc
[modify] https://crrev.com/6b82d425cb76d3d12d7f4690ab7b865659079f62/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, May 17 2018

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

commit cf2f1a8f66d2a108bfb27e1686307889aba825b9
Author: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Thu May 17 15:48:20 2018

gpu: Wire overlay plane fences through the command buffer

Implement support for passing overlay plane fences from the client side
to the service side through the command buffer. This involves updates to
the CHROMIUM_schedule_overlay_plane extension and its handling on the
service side.

Also add the --use-gpu-fences-for-overlay-planes command-line flag to
control whether to enable the use of the overlay plane fences by the
target GLSurface on the service side.

Bug: 828393
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
Change-Id: I4e85940261172e457841fe3e7c8b7364c58387a5
Reviewed-on: https://chromium-review.googlesource.com/1021515
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559550}
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/components/viz/service/display/gl_renderer.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/components/viz/service/display/gl_renderer_unittest.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/components/viz/service/display/overlay_unittest.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/components/viz/test/test_context_support.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/components/viz/test/test_context_support.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_schedule_overlay_plane.txt
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/GLES2/gl2extchromium.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/context_support.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_implementation.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/raster_implementation.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/gles2_cmd_buffer_functions.txt
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/service/gpu_preferences.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/command_buffer/service/service_utils.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/config/gpu_switches.cc
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/config/gpu_switches.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/ipc/common/gpu_preferences.mojom
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/ipc/common/gpu_preferences_struct_traits.h
[modify] https://crrev.com/cf2f1a8f66d2a108bfb27e1686307889aba825b9/gpu/ipc/common/gpu_preferences_util_unittest.cc

Project Member

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

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

commit f51ce08314c75a60f99eea9af9b76254606616c3
Author: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Fri May 18 16:53:37 2018

viz: Use overlay plane fences in GLRenderer

Create GpuFences for surfaces used as overlays, and pass them to the
ScheduleOverlayPlane call in GLRenderer.

The command-line flag --use-gpu-fences-for-overlay-planes, which
controls the use of plane fences on the service side, is also consulted
before creating the client-side fences in this patch to avoid creating
fences when not needed.

Bug: 828393
Test: Chrome on Ozone-DRM with the --use-gpu-fences-for-overlay-planes flag
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ibee2b4272a0db19722664947d93eb4d193900ea4
Reviewed-on: https://chromium-review.googlesource.com/1021694
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559926}
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/android_webview/browser/parent_output_surface.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/android_webview/browser/parent_output_surface.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/cc/output/overlay_candidate.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/cc/output/overlay_candidate.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/cc/test/pixel_test_output_surface.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/cc/test/pixel_test_output_surface.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display/direct_renderer.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display/gl_renderer.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display/gl_renderer_unittest.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display/output_surface.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display/overlay_unittest.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display_embedder/gl_output_surface.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display_embedder/gl_output_surface.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display_embedder/skia_output_surface_impl.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display_embedder/skia_output_surface_impl.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display_embedder/software_output_surface.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/service/display_embedder/software_output_surface.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/test/fake_output_surface.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/components/viz/test/fake_output_surface.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/browser/compositor/gpu_browser_compositor_output_surface.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/browser/compositor/gpu_browser_compositor_output_surface.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/browser/compositor/gpu_surfaceless_browser_compositor_output_surface.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/browser/compositor/gpu_surfaceless_browser_compositor_output_surface.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/browser/compositor/offscreen_browser_compositor_output_surface.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/browser/compositor/offscreen_browser_compositor_output_surface.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/browser/compositor/reflector_impl_unittest.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/browser/compositor/software_browser_compositor_output_surface.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/browser/compositor/software_browser_compositor_output_surface.h
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/content/renderer/android/synchronous_layer_tree_frame_sink.cc
[modify] https://crrev.com/f51ce08314c75a60f99eea9af9b76254606616c3/ui/compositor/test/in_process_context_factory.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Aug 7

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

commit 542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Tue Aug 07 00:47:50 2018

cros: Enable in-fences on all KMS atomic devices

Currently, to enable in-fences, it's possible to specificy CLI flag
"use-gpu-fences-for-overlay-planes".
The flag sets a gpu preference that propagates to gpu capabilities
|use_gpu_fences_for_overlay_planes|.

This patch removes the CLI flag and the gpu preference, and it instead
sets |use_gpu_fences_for_overlay_planes| asking the output surface.
If the output surface supports in fences, they'll be used by the
direct renderer.

output surfaces will claim to supports per plane gpu fences when
the underlying system supports KMS atomic.

Bug: 828393
Test: 'start ui' on a chromebook with kernel version >= 4.4
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
Change-Id: I1359aad2680aac840ba43b436df6d00347b5fe0b
Reviewed-on: https://chromium-review.googlesource.com/1160773
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581071}
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/gpu/command_buffer/service/service_utils.cc
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/gpu/config/gpu_preferences.h
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/gpu/config/gpu_preferences_unittest.cc
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/gpu/config/gpu_switches.cc
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/gpu/config/gpu_switches.h
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/gpu/ipc/common/gpu_preferences.mojom
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/gpu/ipc/common/gpu_preferences_struct_traits.h
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/gl/gl_surface.cc
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/gl/gl_surface.h
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/ozone/demo/surfaceless_gl_renderer.cc
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/ozone/platform/drm/gpu/drm_device.cc
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/ozone/platform/drm/gpu/drm_device.h
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/ozone/platform/drm/gpu/drm_thread.cc
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/ozone/platform/drm/gpu/drm_thread.h
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/ozone/platform/drm/gpu/drm_window_proxy.cc
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/ozone/platform/drm/gpu/drm_window_proxy.h
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc
[modify] https://crrev.com/542cab3c0d82a89a71c4f3b22e7ebe4762e7f8cb/ui/ozone/platform/drm/gpu/gbm_surfaceless.h

Sign in to add a comment