DRM solution for Accelerated Compositing 51/12351/4
authorKondapally Kalyan <kalyan.kondapally@intel.com>
Mon, 14 Oct 2013 21:49:43 +0000 (14:49 -0700)
committerJoone Hur <joone.hur@intel.com>
Thu, 21 Nov 2013 06:50:07 +0000 (22:50 -0800)
commit5c40c144a6418cb4ba56f22ab5d3c05558360763
tree8e35a1d183978d3e3326a96812b57a730fbc407f
parent953d9de5c22c7de73583f1ea1c0fe20429cdb648
DRM solution for Accelerated Compositing

This solution allows to use GPU memory directly in order to share a platform surface
through Intel DRM APIs. All the authentications are done through Wayland and the WebProcess
renders content to the DRM buffer. With the Wayland nested Compositor, we are able to create
an EGL image and a texture for the DRM handle on the UIProcess.

We are going to use single buffered surface (i.e similar to Pixmap surface), which allows to
render WebGL and Canvas static content.
Regarding Accelerated Compositing, the UIProcess does not need to upload textures in the
UIProcess.

This patch includes a fix(Call SharedPlatformSurfaceTizen::querySurface instead of
EGLHelper::querySurface) written by Joone Hur.

Change-Id: I5b83f3d74bc7a00f7455605359aef74ef8521131
19 files changed:
Source/WebCore/PlatformTizen.cmake
Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp
Source/WebCore/platform/graphics/efl/tizen/SharedPlatformSurfaceTizen.cpp
Source/WebCore/platform/graphics/opengl/GLPlatformSurface.cpp
Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h
Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.cpp
Source/WebCore/platform/graphics/surfaces/wayland/Wayland-drm-protocol.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/wayland/Wayland-drm-protocol.h [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/wayland/WaylandBufferManager.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/wayland/WaylandBufferManager.h [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/wayland/WaylandDisplay.cpp
Source/WebCore/platform/graphics/surfaces/wayland/WaylandDisplay.h
Source/WebCore/platform/graphics/surfaces/wayland/WaylandHelper.h
Source/WebCore/platform/graphics/surfaces/wayland/WaylandLockSurface.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/wayland/WaylandLockSurface.h [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/wayland/WaylandMesaBufferManager.cpp [new file with mode: 0644]
Source/WebCore/platform/graphics/surfaces/wayland/WaylandMesaBufferManager.h [new file with mode: 0644]
Source/cmake/FindWayland.cmake
Source/cmake/OptionsTizen.cmake