Diff
Modified: trunk/Tools/ChangeLog (246303 => 246304)
--- trunk/Tools/ChangeLog 2019-06-11 05:05:19 UTC (rev 246303)
+++ trunk/Tools/ChangeLog 2019-06-11 07:43:06 UTC (rev 246304)
@@ -1,3 +1,26 @@
+2019-06-11 Carlos Garcia Campos <[email protected]>
+
+ [WPE] Use new exported image API from fdo backend
+ https://bugs.webkit.org/show_bug.cgi?id=198558
+
+ Reviewed by Philippe Normand.
+
+ * WebKitTestRunner/PlatformWPE.cmake: Do not find fdo backend and libxkb again here, since WKTR depends on
+ WPEToolingBackends that already depends on fdo backend and libxkb
+ * wpe/backends/CMakeLists.txt: Bump fdo requirements to 1.3.0 version.
+ * wpe/backends/HeadlessViewBackend.cpp:
+ (WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
+ (WPEToolingBackends::HeadlessViewBackend::createSnapshot):
+ (WPEToolingBackends::HeadlessViewBackend::performUpdate):
+ (WPEToolingBackends::HeadlessViewBackend::displayBuffer):
+ * wpe/backends/HeadlessViewBackend.h:
+ * wpe/backends/ViewBackend.cpp:
+ (WPEToolingBackends::ViewBackend::initialize):
+ * wpe/backends/ViewBackend.h:
+ * wpe/backends/WindowViewBackend.cpp:
+ (WPEToolingBackends::WindowViewBackend::displayBuffer):
+ * wpe/backends/WindowViewBackend.h:
+
2019-06-10 Dewei Zhu <[email protected]>
Extend run-benchmark to allow diagnosing before closing browser on test failure.
Modified: trunk/Tools/WebKitTestRunner/PlatformWPE.cmake (246303 => 246304)
--- trunk/Tools/WebKitTestRunner/PlatformWPE.cmake 2019-06-11 05:05:19 UTC (rev 246303)
+++ trunk/Tools/WebKitTestRunner/PlatformWPE.cmake 2019-06-11 07:43:06 UTC (rev 246304)
@@ -1,6 +1,3 @@
-find_package(Libxkbcommon 0.4.0 REQUIRED)
-find_package(WPEBackend-fdo REQUIRED)
-
add_custom_target(WebKitTestRunner-forwarding-headers
COMMAND ${PERL_EXECUTABLE} ${WEBKIT_DIR}/Scripts/generate-forwarding-headers.pl --include-path ${WEBKIT_TESTRUNNER_DIR} --output ${FORWARDING_HEADERS_DIR} --platform wpe
)
Modified: trunk/Tools/wpe/backends/CMakeLists.txt (246303 => 246304)
--- trunk/Tools/wpe/backends/CMakeLists.txt 2019-06-11 05:05:19 UTC (rev 246303)
+++ trunk/Tools/wpe/backends/CMakeLists.txt 2019-06-11 07:43:06 UTC (rev 246304)
@@ -1,7 +1,7 @@
find_package(Libxkbcommon 0.4.0 REQUIRED)
find_package(Wayland REQUIRED)
find_package(WaylandProtocols 1.12 REQUIRED)
-find_package(WPEBackend-fdo REQUIRED)
+find_package(WPEBackend-fdo 1.3.0 REQUIRED)
set(DERIVED_SOURCES_WPETOOLINGBACKENDS_DIR "${CMAKE_BINARY_DIR}/DerivedSources/WPEToolingBackends")
Modified: trunk/Tools/wpe/backends/HeadlessViewBackend.cpp (246303 => 246304)
--- trunk/Tools/wpe/backends/HeadlessViewBackend.cpp 2019-06-11 05:05:19 UTC (rev 246303)
+++ trunk/Tools/wpe/backends/HeadlessViewBackend.cpp 2019-06-11 07:43:06 UTC (rev 246304)
@@ -65,8 +65,6 @@
HeadlessViewBackend::HeadlessViewBackend(uint32_t width, uint32_t height)
: ViewBackend(width, height)
- , m_pendingImage(EGL_NO_IMAGE_KHR)
- , m_lockedImage(EGL_NO_IMAGE_KHR)
{
m_eglDisplay = getEGLDisplay();
if (!initialize())
@@ -121,7 +119,7 @@
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA_EXT, m_width, m_height, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, nullptr);
- imageTargetTexture2DOES(GL_TEXTURE_2D, m_lockedImage);
+ imageTargetTexture2DOES(GL_TEXTURE_2D, wpe_fdo_egl_exported_image_get_egl_image(m_lockedImage));
glBindTexture(GL_TEXTURE_2D, 0);
GLuint imageFramebuffer;
@@ -165,13 +163,13 @@
wpe_view_backend_exportable_fdo_dispatch_frame_complete(m_exportable);
if (m_lockedImage)
- wpe_view_backend_exportable_fdo_egl_dispatch_release_image(m_exportable, m_lockedImage);
+ wpe_view_backend_exportable_fdo_egl_dispatch_release_exported_image(m_exportable, m_lockedImage);
m_lockedImage = m_pendingImage;
- m_pendingImage = EGL_NO_IMAGE_KHR;
+ m_pendingImage = nullptr;
}
-void HeadlessViewBackend::displayBuffer(EGLImageKHR image)
+void HeadlessViewBackend::displayBuffer(struct wpe_fdo_egl_exported_image* image)
{
if (m_pendingImage)
std::abort();
Modified: trunk/Tools/wpe/backends/HeadlessViewBackend.h (246303 => 246304)
--- trunk/Tools/wpe/backends/HeadlessViewBackend.h 2019-06-11 05:05:19 UTC (rev 246303)
+++ trunk/Tools/wpe/backends/HeadlessViewBackend.h 2019-06-11 07:43:06 UTC (rev 246304)
@@ -30,8 +30,6 @@
#include <glib.h>
#include <unordered_map>
-typedef void* EGLImageKHR;
-
namespace WPEToolingBackends {
class HeadlessViewBackend final : public ViewBackend {
@@ -42,12 +40,12 @@
cairo_surface_t* createSnapshot();
private:
- void displayBuffer(EGLImageKHR) override;
+ void displayBuffer(struct wpe_fdo_egl_exported_image*) override;
void performUpdate();
- EGLImageKHR m_pendingImage;
- EGLImageKHR m_lockedImage;
+ struct wpe_fdo_egl_exported_image* m_pendingImage { nullptr };
+ struct wpe_fdo_egl_exported_image* m_lockedImage { nullptr };
GSource* m_updateSource { nullptr };
gint64 m_frameRate { G_USEC_PER_SEC / 60 };
Modified: trunk/Tools/wpe/backends/ViewBackend.cpp (246303 => 246304)
--- trunk/Tools/wpe/backends/ViewBackend.cpp 2019-06-11 05:05:19 UTC (rev 246303)
+++ trunk/Tools/wpe/backends/ViewBackend.cpp 2019-06-11 07:43:06 UTC (rev 246304)
@@ -189,13 +189,15 @@
return false;
static struct wpe_view_backend_exportable_fdo_egl_client exportableClient = {
- // export_buffer_resource
- [](void* data, EGLImageKHR image)
+ // export_egl_image
+ nullptr,
+ // export_fdo_egl_image
+ [](void* data, struct wpe_fdo_egl_exported_image* image)
{
static_cast<ViewBackend*>(data)->displayBuffer(image);
},
// padding
- nullptr, nullptr, nullptr, nullptr
+ nullptr, nullptr, nullptr
};
m_exportable = wpe_view_backend_exportable_fdo_egl_create(&exportableClient, this, m_width, m_height);
Modified: trunk/Tools/wpe/backends/ViewBackend.h (246303 => 246304)
--- trunk/Tools/wpe/backends/ViewBackend.h 2019-06-11 05:05:19 UTC (rev 246303)
+++ trunk/Tools/wpe/backends/ViewBackend.h 2019-06-11 07:43:06 UTC (rev 246304)
@@ -31,8 +31,8 @@
typedef void* EGLConfig;
typedef void* EGLContext;
typedef void* EGLDisplay;
-typedef void* EGLImageKHR;
typedef struct _AtkObject AtkObject;
+struct wpe_fdo_egl_exported_image;
// Manually provide the EGL_CAST C++ definition in case eglplatform.h doesn't provide it.
#ifndef EGL_CAST
@@ -76,7 +76,7 @@
void dispatchInputKeyboardEvent(struct wpe_input_keyboard_event*);
void dispatchInputTouchEvent(struct wpe_input_touch_event*);
- virtual void displayBuffer(EGLImageKHR) = 0;
+ virtual void displayBuffer(struct wpe_fdo_egl_exported_image*) = 0;
uint32_t m_width { 0 };
uint32_t m_height { 0 };
Modified: trunk/Tools/wpe/backends/WindowViewBackend.cpp (246303 => 246304)
--- trunk/Tools/wpe/backends/WindowViewBackend.cpp 2019-06-11 05:05:19 UTC (rev 246303)
+++ trunk/Tools/wpe/backends/WindowViewBackend.cpp 2019-06-11 07:43:06 UTC (rev 246304)
@@ -631,12 +631,12 @@
wpe_view_backend_exportable_fdo_dispatch_frame_complete(window.m_exportable);
if (window.m_committedImage)
- wpe_view_backend_exportable_fdo_egl_dispatch_release_image(window.m_exportable, window.m_committedImage);
- window.m_committedImage = EGL_NO_IMAGE_KHR;
+ wpe_view_backend_exportable_fdo_egl_dispatch_release_exported_image(window.m_exportable, window.m_committedImage);
+ window.m_committedImage = nullptr;
}
};
-void WindowViewBackend::displayBuffer(EGLImageKHR image)
+void WindowViewBackend::displayBuffer(struct wpe_fdo_egl_exported_image* image)
{
if (!m_eglContext)
return;
@@ -650,7 +650,7 @@
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, m_viewTexture);
- imageTargetTexture2DOES(GL_TEXTURE_2D, image);
+ imageTargetTexture2DOES(GL_TEXTURE_2D, wpe_fdo_egl_exported_image_get_egl_image(image));
glUniform1i(m_textureUniform, 0);
m_committedImage = image;
Modified: trunk/Tools/wpe/backends/WindowViewBackend.h (246303 => 246304)
--- trunk/Tools/wpe/backends/WindowViewBackend.h 2019-06-11 05:05:19 UTC (rev 246303)
+++ trunk/Tools/wpe/backends/WindowViewBackend.h 2019-06-11 07:43:06 UTC (rev 246304)
@@ -30,7 +30,6 @@
#include <glib.h>
#include <unordered_map>
-typedef void* EGLImageKHR;
typedef void* EGLSurface;
typedef struct wl_egl_window *EGLNativeWindowType;
@@ -42,7 +41,7 @@
virtual ~WindowViewBackend();
private:
- void displayBuffer(EGLImageKHR) override;
+ void displayBuffer(struct wpe_fdo_egl_exported_image*) override;
static const struct wl_registry_listener s_registryListener;
static const struct zxdg_shell_v6_listener s_xdgWmBaseListener;
@@ -106,7 +105,7 @@
unsigned m_program { 0 };
unsigned m_textureUniform { 0 };
unsigned m_viewTexture { 0 };
- EGLImageKHR m_committedImage;
+ struct wpe_fdo_egl_exported_image* m_committedImage { nullptr };
};
} // WPEToolingBackends