A second gold test crashes in a flaky manner in some of the gold test
batches. Possibly another destroy/create race. This CL seems to fix
my repro (with gold patched out) and presubmit passed too (though
it's flaky)
Bug: angleproject:8060
Change-Id: I7641cea801cf0e0df48bf2aac8ef132f54e025b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4307695
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
This is a reland of commit a78eca2cab
Revert https://crrev.com/c/3661210 refers to cropping on SwS bots which might be due to another X11 related issue I recently fixed (https://crrev.com/c/3979168)
Lack of min width/height is triggering a swapchain recreation with smaller extents due to window being resized by the WM:
https://anglebug.com/7840#c2
Also, capturing screenshots past the first frame (--screenshot-frame=2) results in partial screenshots.
Original change's description:
> util/X11Window: Set PMinSize and PMaxSize hints.
>
> Before this patch replay windows were down-sized to match the default
> screen size in case their extent was greater than the screen size.
>
> Setting a PMinSize on XSizeHints resolves the issue on modern window
> managers. Tested with GNOME Shell 41.3 with both native X11 and Wayland
> (over XWayland) backends.
> Setting PMaxSize was also requried to pass the
> BlitFramebufferANGLETest tests.
>
> This fixes retracing with correct extents and resolves a VVL performance
> warning.
>
> Bug: angleproject:6808
> Bug: angleproject:7083
> Change-Id: I00ee149ec02efe08c5801e4231913049d31e262b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3507514
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Bug: angleproject:6808
Bug: angleproject:7083
Bug: angleproject:7840
Change-Id: Ide540ecf55c2c0f39635f2b6b0688d7c2ddffc0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4048025
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
* Added getBacktraceInfo(), which returns the backtrace information
from the ANGLE code, including the addresses and the symbols if
possible
* Returns the data in an instance of the new class BacktraceInfo.
* In order to access this function, backtrace_utils.h has been
included in vk_utils.h
* New GN flag to make use of this feature:
* angle_enable_unwind_backtrace_support
* Current only available on Android (debug mode)
* If the flag is disabled, getBacktraceInfo() returns an empty
object.
* Added functions in util/ (per platform) to print the BacktraceInfo
data.
* Example of usage:
angle::printBacktraceInfo(angle::getBacktraceInfo());
* Minor edit: Moved cstdint from android_util.cpp to its header.
Bug: b/258475923
Change-Id: I6115462a1a2845d40c7cafc14ce52df09ecdcf34
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3995843
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
There appears to be a race condition where
XDestroyWindow+XCreateWindow ignores the new size
(the same window normally gets reused but this only happens
sometimes on some X11 versions).
Wait until we get the destroy notification which should avoid races
between termination and initialization.
However, it turns out just doing that breaks things because tests get to
termination before even giving the window a chance to set up fully
(e.g. ConfigureNotify) which only happens after making the window
visible.. so additionally block in setVisible until we get
ConfigureNotify.
aaand turns out RobustBufferAccessBehaviorTest requires
setVisible(true) - tests fail when running on my local Linux and pass
now that I added setWindowVisible!
Bug: angleproject:7620
Change-Id: I93f2f05cb9d1c62776636bec976d94ead4cf0fd1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3979168
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
This reverts commit a78eca2cab.
Reason for revert: We suspect this CL is causing rendering issues on Linux swiftshader bots: https://bugs.chromium.org/p/angleproject/issues/detail?id=7336. Some trace test only has part of the screen rendered: https://angle-gold.skia.org/detail?test=raid_shadow_legends&digest=a4eb4b3f306f31798c5e86dcf34d0f35. Revert it to check if it helps the resolving the render issues on bots.
Original change's description:
> util/X11Window: Set PMinSize and PMaxSize hints.
>
> Before this patch replay windows were down-sized to match the default
> screen size in case their extent was greater than the screen size.
>
> Setting a PMinSize on XSizeHints resolves the issue on modern window
> managers. Tested with GNOME Shell 41.3 with both native X11 and Wayland
> (over XWayland) backends.
> Setting PMaxSize was also requried to pass the
> BlitFramebufferANGLETest tests.
>
> This fixes retracing with correct extents and resolves a VVL performance
> warning.
>
> Bug: angleproject:6808
> Bug: angleproject:7083
> Change-Id: I00ee149ec02efe08c5801e4231913049d31e262b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3507514
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Bug: angleproject:6808
Bug: angleproject:7083
Bug: angleproject:7336
Change-Id: Ibe15e549d1f1965f0c3832190f02144bb63da16a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3661210
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Before this patch replay windows were down-sized to match the default
screen size in case their extent was greater than the screen size.
Setting a PMinSize on XSizeHints resolves the issue on modern window
managers. Tested with GNOME Shell 41.3 with both native X11 and Wayland
(over XWayland) backends.
Setting PMaxSize was also requried to pass the
BlitFramebufferANGLETest tests.
This fixes retracing with correct extents and resolves a VVL performance
warning.
Bug: angleproject:6808
Bug: angleproject:7083
Change-Id: I00ee149ec02efe08c5801e4231913049d31e262b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3507514
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.
Re-land fixes:
- link failure in systems with no libwayland installed.
- XCB display availability check.
Bug: angleproject:6902
Change-Id: I5daecf3591493308ac71a7dd3bc0802f492e6fed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621059
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.
Re-land fixes link failure in systems with no libwayland installed.
Bug: angleproject:6902
Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.
Re-land fixes link failure in systems with no libwayland installed.
Bug: angleproject:6902
Change-Id: I706af14620d6298275009f5caf93b0e60339219b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578765
Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan
renderer, as well as an implementation of OSWindow that renders
fullscreen for the test suite.
Disallow use of the vulkan loader from third_party as Fuchsia uses a fork
of the loader and has not sent those changes upstream yet.
Add a small wayland-inspired library libfuchsia-egl to provide a type
"struct fuchsia_egl_window" to use as EGLNativeWindowType. This type
combines a zx_handle_t to an image pipe channel and a surface size.
Image pipes can only be used once to create a VkSurfaceKHR. This means we
have to recreate the pipe in tests that call eglCreateWindowSurface more
than once with a single OSWindow, or the second call will fail. Add a
resetNativeWindow() method to accomplish this.
Reland disabling -Wextra-semi.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: Ie91715bcd760c6c04d4b8a02a91daa71e32ee30c
Reviewed-on: https://chromium-review.googlesource.com/c/1467603
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This reverts commit 991d1cfb5e.
Reason for revert: Failing compile on the fuchsia bots on the ANGLE
auto-roller.
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/fuchsia_x64/209198
In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.cpp:10:
In file included from ../../third_party/angle/util/fuchsia/ScenicWindow.h:13:
In file included from gen/third_party/fuchsia-sdk/sdk/fidl/fuchsia/ui/policy/cpp/fidl.h:5:
In file included from ../../third_party/fuchsia-sdk/sdk/pkg/fidl_cpp/include/lib/fidl/cpp/internal/header.h:12:
../../third_party/fuchsia-sdk/sdk/pkg/fit/include/lib/fit/function.h:135:6: error: extra ';' after member function definition [-Werror,-Wextra-semi]
};
^
1 error generated.
Original change's description:
> Vulkan: Port renderer to Fuchsia
>
> Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan
> renderer, as well as an implementation of OSWindow that renders
> fullscreen for the test suite.
>
> Disallow use of the vulkan loader from third_party as Fuchsia uses a fork
> of the loader and has not sent those changes upstream yet.
>
> Add a small wayland-inspired library libfuchsia-egl to provide a type
> "struct fuchsia_egl_window" to use as EGLNativeWindowType. This type
> combines a zx_handle_t to an image pipe channel and a surface size.
>
> Image pipes can only be used once to create a VkSurfaceKHR. This means we
> have to recreate the pipe in tests that call eglCreateWindowSurface more
> than once with a single OSWindow, or the second call will fail. Add a
> resetNativeWindow() method to accomplish this.
>
> BUG=angleproject:2475
> TEST=angle_end2end_tests on Fuchsia
>
> Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf
> Reviewed-on: https://chromium-review.googlesource.com/c/1446496
> Commit-Queue: Michael Spang <spang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=spang@chromium.org,geofflang@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: I2d9abefa9db5363ba63a17c1773d0e147040d055
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2475
Reviewed-on: https://chromium-review.googlesource.com/c/1465761
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Add DisplayVk and WindowSurfaceVk subclasses for Fuchsia to the vulkan
renderer, as well as an implementation of OSWindow that renders
fullscreen for the test suite.
Disallow use of the vulkan loader from third_party as Fuchsia uses a fork
of the loader and has not sent those changes upstream yet.
Add a small wayland-inspired library libfuchsia-egl to provide a type
"struct fuchsia_egl_window" to use as EGLNativeWindowType. This type
combines a zx_handle_t to an image pipe channel and a surface size.
Image pipes can only be used once to create a VkSurfaceKHR. This means we
have to recreate the pipe in tests that call eglCreateWindowSurface more
than once with a single OSWindow, or the second call will fail. Add a
resetNativeWindow() method to accomplish this.
BUG=angleproject:2475
TEST=angle_end2end_tests on Fuchsia
Change-Id: I71a613a362dd1c8aada49a3c02ae461e064457bf
Reviewed-on: https://chromium-review.googlesource.com/c/1446496
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Fixes the Android/ChromeOS/Fuchsia builds by using consistent EGL
headers.
This CL adds a dynamic loader generator based on XML files. It also
refactors the entry point generation script to move the XML parsing
into a helper class.
Additionally this includes a new GLES 1.0 base header. The new
header allows for function pointer types and hiding prototypes.
All tests and samples now load ANGLE dynamically. In the future this
will be extended to load entry points from the driver directly when
possible. This will allow us to perform more accurate A/B testing.
The new build configuration leads to some tests having more warnings
applied. The CL includes fixes for the new warnings.
Bug: angleproject:2995
Change-Id: I5a8772f41a0f89570b3736b785f44b7de1539b57
Reviewed-on: https://chromium-review.googlesource.com/c/1392382
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This reverts commit 03923558a7.
Reason for revert: fails compilation on Android, ChromeOS and Fuchsia during roll https://chromium-review.googlesource.com/c/chromium/src/+/1392624
Original change's description:
> Load entry points dynamically in tests and samples.
>
> This CL adds a dynamic loader generator based on XML files. It also
> refactors the entry point generation script to move the XML parsing
> into a helper class.
>
> Additionally this includes a new GLES 1.0 base header. The new
> header allows for function pointer types and hiding prototypes.
>
> All tests and samples now load ANGLE dynamically. In the future this
> will be extended to load entry points from the driver directly when
> possible. This will allow us to perform more accurate A/B testing.
>
> The new build configuration leads to some tests having more warnings
> applied. The CL includes fixes for the new warnings.
>
> Bug: angleproject:2995
> Change-Id: I6726d4163f7a6e54d2482f094c0a952f59702a05
> Reviewed-on: https://chromium-review.googlesource.com/c/1359516
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
TBR=ynovikov@chromium.org,jmadill@chromium.org,syoussefi@chromium.org
Change-Id: I902bec2d733c2b879be29c02ab52a0b7d4eaa077
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2995
Reviewed-on: https://chromium-review.googlesource.com/c/1392381
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
This CL adds a dynamic loader generator based on XML files. It also
refactors the entry point generation script to move the XML parsing
into a helper class.
Additionally this includes a new GLES 1.0 base header. The new
header allows for function pointer types and hiding prototypes.
All tests and samples now load ANGLE dynamically. In the future this
will be extended to load entry points from the driver directly when
possible. This will allow us to perform more accurate A/B testing.
The new build configuration leads to some tests having more warnings
applied. The CL includes fixes for the new warnings.
Bug: angleproject:2995
Change-Id: I6726d4163f7a6e54d2482f094c0a952f59702a05
Reviewed-on: https://chromium-review.googlesource.com/c/1359516
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Independent of start()/stop()/getElapsedTime() functionality,
getAbsoluteTime() is added to return the time regardless of whether the
timer is running.
Bug: angleproject:2908
Change-Id: I056aeb6eddfba8757a139934c1cf68e00e860de6
Reviewed-on: https://chromium-review.googlesource.com/c/1296952
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Since common is shared through all ANGLE code (libANGLE/tests/samples)
this is the most general place for these utils, and will give libANGLE
access to them. We'll need them to get the current executable dir for
loading the Vulkan layers.
This also means we'll need to fix the global static variable use when
we have the ability.
BUG=angleproject:1319
BUG=chromium:677841
Change-Id: I7af61920635135b28a2f02f4a8d019ee88c9dd28
Reviewed-on: https://chromium-review.googlesource.com/425440
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
SetLowPriorityProcess's implementation can be shared between Mac and
Linux so even though it isn't using a Posix API, it lives in the posix
file.
CreateOSPixmap needed to be implemented but will never be used by dEQP
as our Mac EGL backend doesn't expose configs supporting pixmaps.
Reland with a Linux compilation fix (forgot to delete
SetLowPriorityProcess).
BUG=angleproject:891
Change-Id: If8145501e1787d08d82402a6baa60a5404cac6b1
Reviewed-on: https://chromium-review.googlesource.com/299773
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
SetLowPriorityProcess's implementation can be shared between Mac and
Linux so even though it isn't using a Posix API, it lives in the posix
file.
CreateOSPixmap needed to be implemented but will never be used by dEQP
as our Mac EGL backend doesn't expose configs supporting pixmaps.
BUG=angleproject:891
Change-Id: I7b53b44b3465045954ec8e5997f703525ece92d0
Reviewed-on: https://chromium-review.googlesource.com/299851
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
These warnings are currently disabled because these files are not with
angle_code set to 1 in the gyp files to avoid gtest's code warnings.
We hope to either fix warnings in gtest or change our build system to
not use warnings for gtest.
BUG=angleproject:1003
Change-Id: I281781b77f92ef8c394dd53fbbd50d525e4da5c9
Reviewed-on: https://chromium-review.googlesource.com/271412
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>