[linux] Ubuntu 20 + latest Mesa

126 views
Skip to first unread message

Joel Winarske

unread,
Jan 2, 2025, 10:14:54 PMJan 2
to angleproject
Working with Angle (commit from Chromium main) over the holiday break on Ubuntu 20 with latest latest Mesa (i915) I hit a few road bumps.

With Wayland enabled regardless of the config `--use-gl=angle`, `--use-angle=...` would fail to get surface, crash, or fail.

There is no `WindowsOS::new()` implementation for DRM/GBM, so not able to run examples here.  What the reasoning to skip this?

Are all Linux variants (DRM/GBM, X11, Wayland, Vulkan) currently built and tested in CI?  If not what is the golden combo that is?

I'm trying to understand the current state of things, and what the gaps are.  I would like to evaluate the overhead of using Angle on embedded caliber SoC devices.


Thanks,
Joel

Shahbaz Youssefi

unread,
Jan 2, 2025, 10:17:52 PMJan 2
to angleproject
Hi,

Unfortunately, we don't directly test / run on Wayland right now, though some code for it exists. The _tests_ in particular create an X11 window, so they'd be running on XWayland. That does work though.

What command are you running exactly? What is the content of your args.gn?

Joel Winarske

unread,
Jan 3, 2025, 1:32:44 PMJan 3
to angleproject
```
angle_enable_gl = true
angle_enable_vulkan = false
angle_enable_cl = false

angle_use_x11 = false
angle_use_wayland = true
angle_use_gbm = true
angle_enable_overlay = true

use_ozone = false

use_sysroot = false

angle_enable_trace_events = false
angle_enable_trace = false
angle_always_log_info = false

angle_build_tests = true
build_angle_end2end_tests_aosp = true
build_angle_deqp_tests = false

angle_debug_layers_enabled = true

angle_use_vulkan_display = true
angle_enable_vulkan_api_dump_layer = false
```

cl tests work when `angle_enable_cl = true`

To get the SampleApplication apps to run with `--use-gl=native` the following changes are required for Wayland:
```
diff --git a/samples/sample_util/SampleApplication.cpp b/samples/sample_util/SampleApplication.cpp
index 9be29db961..f883fb4186 100644
--- a/samples/sample_util/SampleApplication.cpp
+++ b/samples/sample_util/SampleApplication.cpp
@@ -101,7 +101,7 @@ SampleApplication::SampleApplication(std::string name,
         mEntryPointsLib.reset(angle::OpenSharedLibrary("opengl32", angle::SearchType::SystemDir));
         mDriverType = angle::GLESDriverType::SystemWGL;
 #else
-        mGLWindow = EGLWindow::New(glMajorVersion, glMinorVersion);
+        mGLWindow = mEGLWindow = EGLWindow::New(glMajorVersion, glMinorVersion);
         mEntryPointsLib.reset(angle::OpenSharedLibraryWithExtension(
             angle::GetNativeEGLLibraryNameWithExtension(), angle::SearchType::SystemDir));
         mDriverType = angle::GLESDriverType::SystemEGL;
diff --git a/samples/simple_instancing/SimpleInstancing.cpp b/samples/simple_instancing/SimpleInstancing.cpp
index 4179440d7c..0c90ebc662 100644
--- a/samples/simple_instancing/SimpleInstancing.cpp
+++ b/samples/simple_instancing/SimpleInstancing.cpp
@@ -185,9 +185,9 @@ void main()
     GLint mInstancePosLoc;
 
     // Loaded entry points
-    PFNGLVERTEXATTRIBDIVISORANGLEPROC mVertexAttribDivisorANGLE;
-    PFNGLDRAWARRAYSINSTANCEDANGLEPROC mDrawArraysInstancedANGLE;
-    PFNGLDRAWELEMENTSINSTANCEDANGLEPROC mDrawElementsInstancedANGLE;
+    PFNGLVERTEXATTRIBDIVISORANGLEPROC mVertexAttribDivisorANGLE{};
+    PFNGLDRAWARRAYSINSTANCEDANGLEPROC mDrawArraysInstancedANGLE{};
+    PFNGLDRAWELEMENTSINSTANCEDANGLEPROC mDrawElementsInstancedANGLE{};
 
     // Vertex data
     std::vector<Vector3> mVertices;
diff --git a/util/EGLWindow.cpp b/util/EGLWindow.cpp
index c84e1f27e9..fd6d29f7b0 100644
--- a/util/EGLWindow.cpp
+++ b/util/EGLWindow.cpp
@@ -280,7 +280,7 @@ bool EGLWindow::initializeDisplay(OSWindow *osWindow,
     }
     else
     {
-        mDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+        mDisplay = eglGetDisplay(reinterpret_cast<void *>(osWindow->getNativeDisplay()));
     }
 
     if (mDisplay == EGL_NO_DISPLAY)
diff --git a/util/display/DisplayPixmap.cpp b/util/display/DisplayPixmap.cpp
index 67c087455c..546460b749 100644
--- a/util/display/DisplayPixmap.cpp
+++ b/util/display/DisplayPixmap.cpp
@@ -8,9 +8,9 @@
 
 #include "util/OSPixmap.h"
 
-#if defined(ANGLE_USE_VULKAN_DISPLAY) && defined(EGL_NO_X11)
+//TODO #if defined(ANGLE_USE_VULKAN_DISPLAY) && defined(EGL_NO_X11)
 OSPixmap *CreateOSPixmap()
 {
     return nullptr;
 }
-#endif
+//TODO #endif
diff --git a/util/linux/LinuxWindow.cpp b/util/linux/LinuxWindow.cpp
index 34aa645bf3..6412820458 100644
--- a/util/linux/LinuxWindow.cpp
+++ b/util/linux/LinuxWindow.cpp
@@ -8,16 +8,16 @@
 
 #include "util/OSWindow.h"
 
-#if defined(ANGLE_USE_WAYLAND)
+//#if defined(ANGLE_USE_WAYLAND)
 #    include "wayland/WaylandWindow.h"
-#endif
+//#endif
 
 #if defined(ANGLE_USE_X11)
 #    include "x11/X11Window.h"
 #endif
 
 // static
-#if defined(ANGLE_USE_X11) || defined(ANGLE_USE_WAYLAND)
+//#if defined(ANGLE_USE_X11) || defined(ANGLE_USE_WAYLAND)
 OSWindow *OSWindow::New()
 {
 #    if defined(ANGLE_USE_X11)
@@ -28,13 +28,13 @@ OSWindow *OSWindow::New()
     }
 #    endif
 
-#    if defined(ANGLE_USE_WAYLAND)
+//#    if defined(ANGLE_USE_WAYLAND)
     if (IsWaylandWindowAvailable())
     {
         return new WaylandWindow();
     }
-#    endif
+//#    endif
 
     return nullptr;
 }
-#endif
+//#endif
```

* SimpleInstancing will segfault using `--use-gl=native` without this change (non-initialized variables are being checked for false; they are never false)
* samples/sample_util/SampleApplication.cpp - asserts in case of --use-gl=native as mEGLWindow == nullptr otherwise.
* util/EGLWindow.cpp - eglGetDisplay(EGL_DEFAULT_DISPLAY) fails for Wayland.  Requires Wayland native display type.
* util/display/DisplayPixmap.cpp - requires implementation to link for wayland.
* `ANGLE_USE_WAYLAND` is not being set in util/linux/LinuxWindow.cpp.

`build_angle_deqp_tests = true` fails due to missing X11 deps.

Only one not working with above is `multi_window --use-gl=native`, which fails with:
```
multi_window: ../src/wayland-client.c:2456: wl_proxy_set_queue: Assertion `proxy->display == queue->display' failed.
Aborted (core dumped)
```
implementation issue.

Adding xdg_shell support would enable seeing  the output; fairly simple change.

Not using `--use-gl=native` it will always fail with `Failed to get display: 0x3000`.  This behavior is identical on Ubuntu 20 and Fedora 41.

I started working with `ozone_demo` in Chromium `ui/ozone`, hit issues with Angle, then moved to Angle; hence this discussion.  I'm finding the only ozone_demo `--ozone-platform` that works is X11.  The goal is to enable all platform cases for `ozone_demo`.


Happy to submit PRs on the github mirror.

Shahbaz Youssefi

unread,
Jan 3, 2025, 1:44:05 PMJan 3
to angleproject
Hi,

Ok this is with the GL backend of ANGLE, see replies inline:

On Friday, January 3, 2025 at 1:32:44 PM UTC-5 joel.w...@gmail.com wrote:
```
angle_enable_gl = true
angle_enable_vulkan = false
angle_enable_cl = false

angle_use_x11 = false
angle_use_wayland = true
angle_use_gbm = true

If I'm not mistaken, angle_use_wayland and angle_use_gbm only affect the Vulkan backend of ANGLE, so this is basically disabling X11 with no substitute for the GL backend. That should be why surface creation fails.
 
angle_enable_overlay = true

The ANGLE overlay only works with the Vulkan backend, you can set this to false.
 

use_ozone = false

use_sysroot = false

angle_enable_trace_events = false
angle_enable_trace = false
angle_always_log_info = false

angle_build_tests = true
build_angle_end2end_tests_aosp = true

I don't believe you'd need the aosp flag.
 
build_angle_deqp_tests = false

angle_debug_layers_enabled = true

angle_use_vulkan_display = true

Kind of unnecessary given that angle_enable_vulkan is set to false.
So as I previously mentioned, we currently rely on XWayland, especially with the GL backend of ANGLE. If you try the Vulkan backend (angle_enable_vulkan = true, angle_enable_gl = false) + your changes to create a Wayland window, you might have some luck, but it's not a well tested path right now.
 

Happy to submit PRs on the github mirror.

We'd be happy to get contributions if you can get something working. But not on GitHub, please follow the instructions here: https://chromium.googlesource.com/angle/angle/+/HEAD/doc/ContributingCode.md

Joel Winarske

unread,
Jan 3, 2025, 3:26:03 PMJan 3
to angleproject
Your suggested changes have no impact on the error.

Stepping through the code in the debugger I see a missing case for `EGL_PLATFORM_WAYLAND_EXT`in `CreateDisplayFromAttribs`.  GetPlatformFromEnvironment() correctly returns EGL_PLATFORM_WAYLAND_EXT.

Joel Winarske

unread,
Jan 3, 2025, 10:31:02 PMJan 3
to angleproject
Added this for EGL_PLATFORM_WAYLAND_EXT for gl and gles
```
if (platformType == EGL_PLATFORM_WAYLAND_EXT)
{
    impl = new rx::DisplayEGL(state);
    break;
}
```
I get:
```
INFO: ANGLE DisplayEGL initialized: AMD Radeon Graphics (radeonsi, raphael_mendocino, LLVM 19.1.0, DRM 3.59, 6.12.4-200.fc41.x86_64)
Could not find a suitable EGL config!
```

I'll finish flushing it out and submit a couple of change sets; one for --use-gl=native, and one for wayland via angle.

Joel Winarske

unread,
Jan 3, 2025, 10:31:06 PMJan 3
to angleproject
Comparing between the native platform EGL configs and the Angle configs I'm seeing two differences:
1. Native configs report surface type as EGL_WINDOW_BIT, Angle reports surface type as EGL_PBUFFER_BIT.
2. Native reports EGL_MIN_SWAP_INTERVAL as 0, Angle reports EGL_MIN_SWAP_INTERVAL as 1.

Otherwise the configs are the same.

Any idea why this transposition is happening?

Joel Winarske

unread,
Jan 4, 2025, 10:17:04 PMJan 4
to angleproject
I figured it out, and have Wayland working with `--use-gl=angle --use-angle=gl` and `--use-gl=angle --use-angle=gles`.  Clean up an change sets next.

Joel Winarske

unread,
Jan 6, 2025, 1:22:44 PMJan 6
to angleproject
glmark2_glx (X11) vs glmark2_angle (Wayland) on the same machine.  Not the same profile however.

I have xdg_shell running (everything is visible) as well.  Last item is build support to generate the protocol files.

$ ./glmark2_glx
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     AMD
    GL_RENDERER:   AMD Radeon Graphics (radeonsi, raphael_mendocino, LLVM 19.1.0, DRM 3.59, 6.12.4-200.fc41.x86_64)
    GL_VERSION:    4.6 (Compatibility Profile) Mesa 24.2.8
=======================================================
[build] use-vbo=false: FPS: 10148 FrameTime: 0.099 ms
[build] use-vbo=true: FPS: 10488 FrameTime: 0.095 ms
[texture] texture-filter=nearest: FPS: 8394 FrameTime: 0.119 ms
[texture] texture-filter=linear: FPS: 1140 FrameTime: 0.877 ms
[texture] texture-filter=mipmap: FPS: 196 FrameTime: 5.102 ms
[shading] shading=gouraud: FPS: 199 FrameTime: 5.025 ms
[shading] shading=blinn-phong-inf: FPS: 921 FrameTime: 1.086 ms
[shading] shading=phong: FPS: 945 FrameTime: 1.058 ms
[shading] shading=cel: FPS: 943 FrameTime: 1.060 ms
[bump] bump-render=high-poly: FPS: 5670 FrameTime: 0.176 ms
[bump] bump-render=normals: FPS: 9902 FrameTime: 0.101 ms
[bump] bump-render=height: FPS: 8854 FrameTime: 0.113 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 3996 FrameTime: 0.250 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 1908 FrameTime: 0.524 ms
[pulsar] light=false:quads=5:texture=false: FPS: 6198 FrameTime: 0.161 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 1010 FrameTime: 0.990 ms
[desktop] effect=shadow:windows=4: FPS: 1334 FrameTime: 0.750 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 788 FrameTime: 1.269 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 1342 FrameTime: 0.745 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 810 FrameTime: 1.235 ms
[ideas] speed=duration: FPS: 1503 FrameTime: 0.665 ms
[jellyfish] <default>: FPS: 4316 FrameTime: 0.232 ms
[terrain] <default>: FPS: 398 FrameTime: 2.513 ms
[shadow] <default>: FPS: 5558 FrameTime: 0.180 ms
[refract] <default>: FPS: 591 FrameTime: 1.692 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 5720 FrameTime: 0.175 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 5120 FrameTime: 0.195 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 5326 FrameTime: 0.188 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 5702 FrameTime: 0.175 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 5289 FrameTime: 0.189 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 7812 FrameTime: 0.128 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 8077 FrameTime: 0.124 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 7997 FrameTime: 0.125 ms
=======================================================
                                  glmark2 Score: 4199
=======================================================


$ ./glmark2_angle
=======================================================
    glmark2 2017.07
=======================================================
    OpenGL Information
    GL_VENDOR:     Google Inc. (AMD)
    GL_RENDERER:   ANGLE (AMD, AMD Radeon Graphics (radeonsi raphael_mendocino LLVM 19.1.0), OpenGL ES 3.2 Mesa 24.2.8)
    GL_VERSION:    OpenGL ES 3.0.0 (ANGLE 2.1.24586 git hash: b225419fd227)
=======================================================
[build] use-vbo=false: FPS: 21179 FrameTime: 0.047 ms
[build] use-vbo=true: FPS: 33397 FrameTime: 0.030 ms
[texture] texture-filter=nearest: FPS: 23742 FrameTime: 0.042 ms
[texture] texture-filter=linear: FPS: 22740 FrameTime: 0.044 ms
[texture] texture-filter=mipmap: FPS: 21907 FrameTime: 0.046 ms
[shading] shading=gouraud: FPS: 21238 FrameTime: 0.047 ms
[shading] shading=blinn-phong-inf: FPS: 19913 FrameTime: 0.050 ms
[shading] shading=phong: FPS: 16077 FrameTime: 0.062 ms
[shading] shading=cel: FPS: 15307 FrameTime: 0.065 ms
[bump] bump-render=high-poly: FPS: 11924 FrameTime: 0.084 ms
[bump] bump-render=normals: FPS: 27912 FrameTime: 0.036 ms
[bump] bump-render=height: FPS: 22667 FrameTime: 0.044 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 6817 FrameTime: 0.147 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 2373 FrameTime: 0.421 ms
[pulsar] light=false:quads=5:texture=false: FPS: 18755 FrameTime: 0.053 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 2845 FrameTime: 0.351 ms
[desktop] effect=shadow:windows=4: FPS: 8995 FrameTime: 0.111 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 3961 FrameTime: 0.252 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 5211 FrameTime: 0.192 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 5092 FrameTime: 0.196 ms
[ideas] speed=duration: FPS: 14125 FrameTime: 0.071 ms
[jellyfish] <default>: FPS: 9417 FrameTime: 0.106 ms
[terrain] <default>: FPS: 415 FrameTime: 2.410 ms
Error: We do not have the depth texture extension!!!
[shadow] <default>: Unsupported
[refract] <default>: Unsupported
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 25799 FrameTime: 0.039 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 19976 FrameTime: 0.050 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 26443 FrameTime: 0.038 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 25952 FrameTime: 0.039 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 20784 FrameTime: 0.048 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 25877 FrameTime: 0.039 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 26490 FrameTime: 0.038 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 25871 FrameTime: 0.039 ms
=======================================================
                                  glmark2 Score: 17200
=======================================================

Shahbaz Youssefi

unread,
Jan 6, 2025, 1:23:59 PMJan 6
to angleproject
Great, thanks! Looking forwards to the patches.

Joel Winarske

unread,
Jan 7, 2025, 9:31:45 PMJan 7
to angleproject
Trying to upload my change list and hitting ownership error.  I have pulled in a few third_party items from Chromium source tree for the wayland protocol generation.

```
$ git cl upload
Processing 1 commit...
Running presubmit upload checks ...
Presubmit checks took 3.2s to calculate.
presubmit checks passed.

 .gitmodules                                                                                  |   24 +++++-
 BUILD.gn                                                                                     |   33 ++++----
 DEPS                                                                                         |   35 +++++++-
 build_overrides/wayland.gni                                                                  |    2 +
 gni/angle.gni                                                                                |    1 +
 samples/multi_window/MultiWindow.cpp                                                         |    7 +-
 samples/sample_util/SampleApplication.cpp                                                    |    6 +-
 samples/simple_instancing/SimpleInstancing.cpp                                               |    6 +-
 src/libANGLE/Display.cpp                                                                     |   14 ++++
 src/libANGLE/renderer/gl/egl/FunctionsEGL.cpp                                                |   14 +++-
 src/tests/BUILD.gn                                                                           |   45 +++++++++--
 src/tests/util_tests/PrintSystemInfoTest.cpp                                                 |   18 +++++
 third_party/expat/0001-Do-not-claim-getrandom.patch                                          |   31 +++++++
 third_party/expat/BUILD.gn                                                                   |   66 +++++++++++++++
 third_party/expat/DIR_METADATA                                                               |    7 ++
 third_party/expat/OWNERS                                                                     |    2 +
 third_party/expat/README.chromium                                                            |   37 +++++++++
 third_party/expat/fuzz/OWNERS                                                                |    1 +
 third_party/expat/fuzz/expat_xml_parse_fuzzer.cc                                             |   31 +++++++
 third_party/expat/include/expat_config/expat_config.h                                        |  143 ++++++++++++++++++++++++++++++++
 third_party/expat/roll-expat.sh                                                              |   60 ++++++++++++++
 third_party/expat/src                                                                        |    1 +
 third_party/glmark2/BUILD.gn                                                                 |   38 +++++++--
 third_party/wayland                                                                          |    1 -
 third_party/wayland-protocols/BUILD.gn                                                       |  217 +++++++++++++++++++++++++++++++++++++++++++++++++
 third_party/wayland-protocols/DIR_METADATA                                                   |    6 ++
 third_party/wayland-protocols/LICENSE                                                        |   33 ++++++++
 third_party/wayland-protocols/OWNERS                                                         |    2 +
 third_party/wayland-protocols/README.chromium                                                |   73 +++++++++++++++++
 third_party/wayland-protocols/gtk                                                            |    1 +
 third_party/wayland-protocols/kde                                                            |    1 +
 third_party/wayland-protocols/mesa/wayland-drm/README                                        |    4 +
 third_party/wayland-protocols/mesa/wayland-drm/wayland-drm.xml                               |  189 +++++++++++++++++++++++++++++++++++++++++++
 third_party/wayland-protocols/src                                                            |    1 +
 third_party/wayland-protocols/unstable/alpha-compositing/README                              |    4 +
 third_party/wayland-protocols/unstable/alpha-compositing/alpha-compositing-unstable-v1.xml   |  130 +++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/content-type/README                                   |    5 ++
 third_party/wayland-protocols/unstable/content-type/content-type-v1.xml                      |  129 +++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/cursor-shapes/README                                  |    4 +
 third_party/wayland-protocols/unstable/cursor-shapes/cursor-shapes-unstable-v1.xml           |  120 +++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/extended-drag/README                                  |    4 +
 third_party/wayland-protocols/unstable/extended-drag/extended-drag-unstable-v1.xml           |  201 +++++++++++++++++++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/gaming-input/README                                   |    4 +
 third_party/wayland-protocols/unstable/gaming-input/gaming-input-unstable-v2.xml             |  252 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/gtk-primary-selection/README                          |    4 +
 third_party/wayland-protocols/unstable/gtk-primary-selection/gtk-primary-selection.xml       |  225 +++++++++++++++++++++++++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/keyboard/README                                       |    4 +
 third_party/wayland-protocols/unstable/keyboard/keyboard-configuration-unstable-v1.xml       |  124 ++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/keyboard/keyboard-extension-unstable-v1.xml           |  100 +++++++++++++++++++++++
 third_party/wayland-protocols/unstable/notification-shell/README                             |    4 +
 third_party/wayland-protocols/unstable/notification-shell/notification-shell-unstable-v1.xml |  124 ++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/remote-shell/README                                   |    4 +
 third_party/wayland-protocols/unstable/remote-shell/remote-shell-unstable-v1.xml             | 1458 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/remote-shell/remote-shell-unstable-v2.xml             | 1077 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/secure-output/README                                  |    4 +
 third_party/wayland-protocols/unstable/secure-output/secure-output-unstable-v1.xml           |  118 +++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/stylus-tools/README                                   |    4 +
 third_party/wayland-protocols/unstable/stylus-tools/stylus-tools-unstable-v1.xml             |  105 ++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/stylus/README                                         |    4 +
 third_party/wayland-protocols/unstable/stylus/stylus-unstable-v2.xml                         |  200 +++++++++++++++++++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/test-controller/OWNERS                                |    1 +
 third_party/wayland-protocols/unstable/test-controller/README                                |    4 +
 third_party/wayland-protocols/unstable/test-controller/test-controller-unstable-v1.xml       |   45 +++++++++++
 third_party/wayland-protocols/unstable/text-input/README                                     |    4 +
 third_party/wayland-protocols/unstable/text-input/text-input-extension-unstable-v1.xml       |  458 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/touchpad-haptics/README.md                            |    5 ++
 third_party/wayland-protocols/unstable/touchpad-haptics/touchpad-haptics-unstable-v1.xml     |   86 ++++++++++++++++++++
 third_party/wayland-protocols/unstable/ui-controls/OWNERS                                    |    1 +
 third_party/wayland-protocols/unstable/ui-controls/README                                    |    5 ++
 third_party/wayland-protocols/unstable/ui-controls/ui-controls-unstable-v1.xml               |  227 +++++++++++++++++++++++++++++++++++++++++++++++++++
 third_party/wayland-protocols/unstable/vsync-feedback/README                                 |    4 +
 third_party/wayland-protocols/unstable/vsync-feedback/vsync-feedback-unstable-v1.xml         |   99 +++++++++++++++++++++++
 third_party/wayland/src                                                                      |    1 +
 tools/generate_stubs/rules.gni                                                               |  119 +++++++++++++++++++++++++++
 util/BUILD.gn                                                                                |   17 +++-
 util/OSWindow.h                                                                              |    2 +-
 util/display/DisplayPixmap.cpp                                                               |    3 +-
 util/linux/LinuxWindow.cpp                                                                   |    4 +-
 util/linux/wayland/WaylandWindow.cpp                                                         |  247 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 util/linux/wayland/WaylandWindow.h                                                           |   59 ++++++++++++--
 80 files changed, 6872 insertions(+), 81 deletions(-)

saving CL description to /mnt/raid10/workspace-automation/app/depot_tools/.git_cl_description_backup

Enumerating objects: 163, done.
Counting objects: 100% (163/163), done.
Delta compression using up to 32 threads
Compressing objects: 100% (111/111), done.
Writing objects: 100% (123/123), 68.74 KiB | 13.75 MiB/s, done.
Total 123 (delta 42), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (42/42)
remote: Waiting for private key checker: 5/74 objects left
remote: Processing changes: refs: 1, done    
remote: WARNING: commit e878fca: [code-owners] code owner email 'bung...@chromium.org' in '/third_party/expat/OWNERS' cannot be resolved for joel.w...@gmail.com
remote: ERROR: commit e878fca: [code-owners] invalid global import in '/third_party/wayland-protocols/OWNERS': '/components/exo/OWNERS' does not exist (project = angle/angle, branch = main, revision = e878fcac80c4a96d15abe4927c9f382108f37bbc)
remote: ERROR: commit e878fca: [code-owners] invalid global import in '/third_party/wayland-protocols/OWNERS': '/ui/ozone/platform/wayland/OWNERS' does not exist (project = angle/angle, branch = main, revision = e878fcac80c4a96d15abe4927c9f382108f37bbc)
To https://chromium.googlesource.com/angle/angle.git
 ! [remote rejected]       HEAD -> refs/for/refs/heads/main (commit e878fca: [code-owners] invalid code owner config files (see https://chromium-review.googlesource.com/plugins/code-owners/Documentation/validation.html#validation-checks-for-code-owner-config-files for help))
error: failed to push some refs to 'https://chromium.googlesource.com/angle/angle.git'

saving CL description to /mnt/raid10/workspace-automation/app/depot_tools/.git_cl_description_backup


 ** Content of CL description **
========================================================================
Wayland support

-Enables
 Wayland libAngle
 samples (resize/close)
 wayland glmark2_angle
 renders to visible screen

-Samples resize and close accessed via Alt+Spacebar

-Dev config
 not build_with_chromium and host_os is linux

-Tested on Fedora 41
 glmark2_angle (wayland) - score 17200
 glmark2_x11 - score 4199
 angle_end2end_tests - multiple failures/WIP
 angle_perftests - last test fails
 angle_white_box_perftests - last test fails
 gles3_torus_bufferstorage - GL_EXT_buffer_storage not available.
 multiview  - GL_OVR_multiview(2) is not available.
 all other pass/work

-args.gn

 angle_enable_gl = true
 angle_enable_vulkan = false
 angle_enable_cl = false
 angle_use_x11 = false
 angle_use_wayland = true
 angle_use_gbm = false
 angle_enable_overlay = false
 use_ozone = false
 use_system_libffi = false

 angle_enable_trace_events = false
 angle_enable_trace = false
 angle_always_log_info = false
 angle_build_tests = true
 build_angle_end2end_tests_aosp = true
 build_angle_deqp_tests = false
 angle_debug_layers_enabled = false
 angle_use_vulkan_display = false
 angle_enable_vulkan_api_dump_layer = false
 is_debug = false
 strip_debug_info = true

Bug: angleproject:40096815
Change-Id: If15416a607c8b3143015ced33dcc8e433e5eb708
Signed-off-by: Joel Winarske <joel.w...@gmail.com>
========================================================================

Failed to create a change. Please examine output above for the reason of the failure.
For emergencies, Googlers can escalate to go/gob-support or go/notify#gob
Hint: run command below to diagnose common Git/Gerrit credential problems:
  git cl creds-check

If git-cl is not working correctly, file a bug under the Infra>SDK component including the files below.
Review the files before upload, since they might contain sensitive information.
Set the Restrict-View-Google label so that they are not publicly accessible.

The traces of this git-cl execution have been recorded at:
  /mnt/raid10/workspace-automation/app/depot_tools/traces/20250107T182139.065904-traces.zip
Copies of your gitcookies file and git config have been recorded at:
  /mnt/raid10/workspace-automation/app/depot_tools/traces/20250107T182139.065904-git-info.zip
```

Any ideas how to handle this?  I'm thinking someone with access would need to add these prior to this change set getting merged.

Shahbaz Youssefi

unread,
Jan 7, 2025, 9:37:08 PMJan 7
to angleproject
You should be able to just remove the OWNERS files from those imported third_party repos and the higher level owners will automatically own them.

Joel Winarske

unread,
Jan 9, 2025, 11:57:51 AMJan 9
to angleproject
remote: SUCCESS
remote:
remote:   https://chromium-review.googlesource.com/c/angle/angle/+/6164683 Wayland support [WIP] [NEW]
Reply all
Reply to author
Forward
0 new messages