Title: [246304] trunk/Tools
Revision
246304
Author
[email protected]
Date
2019-06-11 00:43:06 -0700 (Tue, 11 Jun 2019)

Log Message

[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:

Modified Paths

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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to