Граф коммитов

43 Коммитов

Автор SHA1 Сообщение Дата
Lingfeng Yang e9f9fa17da Add cpu time measurement to perf tests
Bug: angleproject:6667
Change-Id: I16570a7b51d363dd1c0f35789b985520cb76d488
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270601
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
2021-11-17 17:13:00 +00:00
Shahbaz Youssefi b0db7cca32 Vulkan: Initial emulated prerotation support
This is currently only supported for end2end tests (those which use
ANGLETestBase, excluding those that use WithNoFixture) and Vulkan.  Use
WithEmulatedPreoration(*_VULKAN(), degree) where degree is either 90,
180 or 270.

With emulated prerotation, the window dimensions are physically swapped
if 90 and 270 degrees, while the width and height is still reported as
requested by the test.  In the Vulkan backend, the width and height are
swapped after getting queried from the surface, and prerotation is
assumed.

Bug: angleproject:4901
Change-Id: I294436be4c7015d2a63463c4d61de7b67f38c95d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495544
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-10-27 09:23:14 +00:00
Trevor David Black e815afbf88 First pass at increasing inclusivity
Link to the inclusivity rules
https://source.android.com/setup/contribute/respectful-code

Bug: b/162834212
Bug: chromium:1097198
Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Trevor Black <vantablack@google.com>
2020-10-02 19:49:38 +00:00
Shahbaz Youssefi fdb7874db4 Gracefully fail end2end tests if no window support
EGL_WINDOW_BIT is now specifically requested for tests that open a
window (those that aren't WithNoFixture).  This makes sure pbuffer-only
configs are not selected for the window.

Additionally, a few WithNoFixture tests are made more robust in the
presence of no-window configs.

In the context of crbug.com/1034840, this means that a subset of end2end
tests would be able to run in a remote desktop environment.  Tested on
Linux/X11 by turning a subset of configs PBUFFER-only.

Bug: chromium:1034840
Change-Id: I09fd149d43d3b865856fe6b9491c5f333f4a2efc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2378922
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: back sept 10 - Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-02 15:33:45 +00:00
Maksim Sisov 0a3233fa3b X11 and Ozone: fix compilation of tests.
For use_x11 && use_ozone build, use X11 backend by default.

For ozone only, continue using Ozone impl, which is basically
gbm.

Bug: chromium:1085700
Change-Id: Iac104e983135e566b0d42a58e00d3c83b430d6dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2346276
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2020-08-14 14:48:48 +00:00
Maksim Sisov 62b11a476e X11: cast native display type to XDisplay.
This is required to have use_x11 && use_ozone builds at the same time.

Bug: chromium:1085700
Change-Id: I3d4cdf590e1ecf79af9e2d4bd585955c3f1b7af6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2315031
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-07-27 15:23:42 +00:00
Cody Northrop 6fe87f4a22 Tests: Change screen orientation for traces on Android
This CL adds a reverse JNI call to our Android Native Activity that
sets the orientation of the screen based on width and height.

To achieve this we:
* Attach to the java thread once at the beginning to grab JNI env.
* Detach from the thread once when platform sends APP_CMD_DESTROY
* Set the orientation during test init

Bug: angleproject:4327
Change-Id: Ifbe31a6a84dd60a0dfe7d7032962c99b290d8b81
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2289054
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2020-07-15 23:41:16 +00:00
Manh Nguyen e5c1847511 Multi-frames serialization + comparision for capture replay test
Changes how context states are serialized during capture run. Now,
context states are serialized after each frame until the end frame
is reached, or context is destroyed.

Adds an api to the trace files to query serialization results of
multiple frames. Makes change to CaptureReplayTest to serialize
multiple frames then compares the serialization results with the ones
retrieved from said api.

Adds to capture replay the ability to produce working, compilable trace
files even when end frame is not reached.

Adds to the generated trace files config information and makes
CaptureReplayTest utilize said config information to reproduce the exact
environment of the captured application.

Bug: angleproject:4817
Change-Id: Ie3d487af2bacf349dc3ff6f6b1b5f89e1169dc84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2282885
Commit-Queue: Manh Nguyen <nguyenmh@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-07-13 20:28:44 +00:00
Geoff Lang 4e6f65459b GLX: Support X11 pixmaps
Add support for creating EGL pixmaps from X11 pixmaps using GLX.
Pixmaps are needed for various external APIs such as VAAPI.

Add support for EGL_NOK_texture_from_pixmap to allow binding
pixmaps to textures.

BUG=angleproject:4560

Change-Id: I4a6d3ad7e87151ff5317bbdaaf093ac1b46daf5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2153805
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-06-12 21:41:11 +00:00
Jamie Madill 16370a65a4 Enable "-Winconsistent-missing-destructor-override".
This is purely a code style and consistency warning. Enabled to
support building in Skia.

Bug: angleproject:4046
Change-Id: Ibdcd06ded0195123e52c693851c43d0864e54ad1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1877480
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-10-25 11:40:36 +00:00
Jamie Madill 57b37b6b79 Rename util/system_utils to util/test_utils.
This removes a GN naming conflict between util/system_utils and
common/system_utils. This conflict was preventing us from adding
unit tests to utils' version of system_utils. Since these functions are
only useful to tests and samples rename them test_utils for simplicity.

Will enable further development of ANGLE's standalone testing harness.

Bug: angleproject:3162
Change-Id: I9e34fb69f96c5de6dc2453fce4148a0f285e15ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1825268
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-09-27 21:47:21 +00:00
Shahbaz Youssefi f0dd087edf Move timer functionality from util/ to common/
The main timer functionality (get absolute time) is moved to common/ for
use in ANGLE itself (in upcoming overlay change).  util/Timer.h is no
longer an abstract class and uses this functionality to implement the
timer.

Bug: angleproject:3757
Change-Id: I3fe418778d80d1089c9bfe43a9e8098e43236f18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769061
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-08-30 17:05:57 +00:00
Stuart Morgan 9d737966ac Standardize copyright notices to project style
For all "ANGLE Project" copyrights, standardize to the format specified
by the style guide. Changes:
- "Copyright (c)" and "Copyright(c)" changed to just "Copyright".
- Removed the second half of date ranges ("Y1Y1-Y2Y2"->"Y1Y1").
- Fixed a small number of files that had no copyright date using the
  initial commit year from the version control history.
- Fixed one instance of copyright being "The ANGLE Project" rather than
  "The ANGLE Project Authors"

These changes are applied both to the copyright of source file, and
where applicable to copyright statements that are generated by
templates.

BUG=angleproject:3811

Change-Id: I973dd65e4ef9deeba232d5be74c768256a0eb2e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754397
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-14 23:05:33 +00:00
James Darpinian 7e48c9eb99 Add explicit integer casts
WebKit uses the -Wshorten-64-to-32 flag which warns on these cases.

Bug: 3439
Change-Id: I8c1de60da0f173ca2036e2120e79b857f5f2775f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1740866
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2019-08-14 00:52:47 +00:00
Michael Spang 229fc83d68 Vulkan: Port renderer to Fuchsia (reland)
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>
2019-02-13 00:37:39 +00:00
Jamie Madill 3f0ff409c7 Revert "Vulkan: Port renderer to Fuchsia"
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>
2019-02-12 03:09:10 +00:00
Michael Spang 991d1cfb5e 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>
2019-02-11 22:51:25 +00:00
Shahbaz Youssefi ab5acbd513 Vulkan: implement swapchain resizing
Vulkan allows a swapchain to be created based off of an older swapchain
that's still presenting, to support seamless window resizing.  The old
swapchain will remain alive (though no image can be acquired from it)
and automatically cleaned once no image is being presented from it.

The retired swapchain can be destroyed once all operations on its images
are completed.  We store the old swapchain next to the serial of
submission that's used for CPU throttling and defer the destroy call
until after `finishToSerial` for that serial is called.

Bug: angleproject:2942
Change-Id: Ic62a5a57b712ffa2b087f5fecde0dc8942194075
Reviewed-on: https://chromium-review.googlesource.com/c/1435634
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2019-02-07 19:28:08 +00:00
Jamie Madill ad398ee839 Free OSWindow and EGLWindow through helpers.
This cleans up any potential problems with allocating and freeing
resources in different shared objects or DLLs. Previously we were
using a dynamically linked allocation function and then calling
the standard delete function.

Also adds a base class helper for EGLWindow. Will base the WGL
Window class on this.

Needed for running ANGLE tests against native drivers.

Bug: angleproject:2995
Change-Id: Ic92b447649ebb32c547605c20086c07a601842f0
Reviewed-on: https://chromium-review.googlesource.com/c/1393443
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2019-01-03 18:42:50 +00:00
Jamie Madill ba319ba31c Re-land "Load entry points dynamically in tests and samples."
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>
2019-01-01 18:56:45 +00:00
Yuly Novikov 9f088621eb Revert "Load entry points dynamically in tests and samples."
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>
2018-12-29 20:46:23 +00:00
Jamie Madill 03923558a7 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>
2018-12-29 16:24:36 +00:00
Yunchao He f81ce4a374 Refactoring: replace NULL by nullptr for pointers (3rd CL).
This CL mainly handles passing/returning NULL to/from a function.

BUG=angleproject:2001

Change-Id: I34802f792e710e3d7ff697cbe4701dc1bf5ab009
Reviewed-on: https://chromium-review.googlesource.com/485060
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2017-04-25 14:32:47 +00:00
Tom Anderson 61f0db8e3e Fix GCC build
Change-Id: I30e6e8d82821ed86cc7f53a48b1b23fc0cbf060c
Reviewed-on: https://chromium-review.googlesource.com/446866
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2017-02-27 19:58:02 +00:00
Yuly Novikov e3352f94a1 Change angle_util to be a shared library
So that there will be one instance of static thread synchronization variables
in AndroidWindow.
Previously there was one instance in lib_angle_deqp_gles2_tests__library
and one in libangle_deqp_libgles2, resulting in AndroidWindow::initialize
waiting forever.

Also make the change in GYP build to fix standalone build,
and fix rpath issues on Mac.

BUG=angleproject:1471
TEST=end2end and deqp tests on standalone Win10 and end2end on GN Mac 10.11

Change-Id: I731578459400bb47d269df129aabed9b67b555e6
Reviewed-on: https://chromium-review.googlesource.com/376202
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2016-08-30 20:50:59 +00:00
Yuly Novikov 55033e583b Revert "Change angle_util to be a shared library"
This reverts commit 2f9b5e6f79.

Change-Id: I90a7ba0596e79795c9549bc268eabff69c96d572
Reviewed-on: https://chromium-review.googlesource.com/376079
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2016-08-25 18:12:11 +00:00
Yuly Novikov 2f9b5e6f79 Change angle_util to be a shared library
So that there will be one instance of static thread synchronization variables
in AndroidWindow.
Previously there was one instance in lib_angle_deqp_gles2_tests__library
and one in libangle_deqp_libgles2, resulting in AndroidWindow::initialize
waiting forever.

BUG=angleproject:1471

Change-Id: Ia529c91e34960eb352730c1bb89a91ce6336c8a0
Reviewed-on: https://chromium-review.googlesource.com/368983
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2016-08-24 21:01:16 +00:00
Corentin Wallez 5c8966911d X11Window: fix the behavior of setVisible
An obvious bug crept in setVisible where setVisible(true) twice would
end up hiding the window.

BUG=angleproject:1145

Change-Id: Iea8ca3de4ab8c05e6da66fb04c8d377824547b41
Reviewed-on: https://chromium-review.googlesource.com/324090
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2016-01-28 15:18:01 +00:00
Geoff Lang 732703e6bf Don't duplicate calls to X11Window's setVisible.
Calling setVisible multiple times in a row can cause a hang while
X11Window waits for events that will never be generted.

Change-Id: I43af8d4c79c7010dae78aa38c9716ed5b7b02865
Reviewed-on: https://chromium-review.googlesource.com/322380
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2016-01-15 19:06:21 +00:00
Corentin Wallez 3d677ea685 Implement EGL_ANGLE_x11_visual
Reland with a fixed tests on AMD.

This extension will be used by Chrome to advertise the visual it will
use for its windows. Having ANGLE use the same visual will bring
several benefits:
 - A blit will be avoided, and the content of the window might be
   rendered on the system framebuffer directly.
 - There will be less latency when resizing windows which will make it
   much less likely to see a black border when resizing.

BUG=522149

Change-Id: I66004b6ac45453330af7c4c810ddf2c26941be42
Reviewed-on: https://chromium-review.googlesource.com/314661
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-12-01 18:50:33 +00:00
Corentin Wallez 27593e05e3 Implement missing util/ functions on Mac
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>
2015-09-16 20:22:46 +00:00
Corentin Wallez 83634d6b61 Revert "Implement missing util/ functions on Mac"
This reverts commit 959e197c84.

BUG=

Change-Id: I71ea2894c74be8fda80a59c99bc53f4fcb7e9115
Reviewed-on: https://chromium-review.googlesource.com/299873
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-09-16 20:13:19 +00:00
Corentin Wallez 959e197c84 Implement missing util/ functions on Mac
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>
2015-09-16 17:48:07 +00:00
Corentin Wallez 254fceac12 Fix two leaks and a delete vs delete[] reported by ASAN
BUG=angleproject:1137

Change-Id: Ic654b79aa56ae0c0a24097b85ab48f5af53ca1f7
Reviewed-on: https://chromium-review.googlesource.com/295154
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-08-25 21:20:24 +00:00
Corentin Wallez b2e33b9026 X11Window::initialize remove a small code redundancy
BUG=

Change-Id: Id5f98332129b3cc854254187b494bf6a97921dbd
Reviewed-on: https://chromium-review.googlesource.com/289272
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-07-28 21:14:11 +00:00
Corentin Wallez a6d4e601a8 X11Window::resize wait for the window to be resized before returning
This will help address a bug in glReadPixels performed after a resize.

BUG=angleproject:1050

Change-Id: Ie204dec229582ec0e990c6f7fa22cfd44048d46e
Reviewed-on: https://chromium-review.googlesource.com/286250
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-07-17 14:59:53 +00:00
Corentin Wallez 0dce07bc7d X11Window: Add missing handling of Keypad's '5' key.
BUG=angleproject:891

Change-Id: Icb0dc3449db6982979a93a394fb9e0c58413a256
Reviewed-on: https://chromium-review.googlesource.com/285836
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-07-15 20:33:11 +00:00
Corentin Wallez 2be6405d51 X11Window: handle key presses and releases
BUG=angleproject:892

Change-Id: I66690ba49789faa672f6ed58e9eb8a2482eb4f6d
Reviewed-on: https://chromium-review.googlesource.com/283472
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-07-07 15:57:45 +00:00
Corentin Wallez 524452868f Add a OSPixmap class to have cross platform pixmaps
This will help make the deqp support code platform agnostic.

BUG=angleproject:892

Change-Id: I6f8c738ed8125057db87afea2079583f8feac977
Reviewed-on: https://chromium-review.googlesource.com/276201
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-06-19 18:29:12 +00:00
Corentin Wallez fb28d3c5bd X11Window: handling of ConfigureNotify, work when reparented
BUG=angleproject:892

Change-Id: Ib201a5fbf4fca39c90464ed76434dac5e5ded381
Reviewed-on: https://chromium-review.googlesource.com/272683
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-22 17:16:22 +00:00
Corentin Wallez 3730f644b2 Make X11Window::setVisible block until the window is mapped.
That way the code calling setVisible knows it can safely create a
framebuffer for this window without having its content be undefined.

BUG=angleproject:830

Change-Id: Ia694f50ac20e1d510d0c0f899226ed241d9a5a3a
Reviewed-on: https://chromium-review.googlesource.com/271156
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-14 20:29:54 +00:00
Corentin Wallez 43b0c221cc X11Window: implement event handling and modifiers
BUG=angleproject:892

Change-Id: I65f251abdd28b273e2d3d574825f20bba8bb2532
Reviewed-on: https://chromium-review.googlesource.com/270452
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-12 17:43:05 +00:00
Corentin Wallez fe2f3d634d Add a basic support for Linux for utils/
* Timer and path utils are done.
* Window only implements initialize and setVisible

BUG=angleproject:892

Change-Id: I3f49b68ef9ec5be324b25e211199bac2953ae11e
Reviewed-on: https://chromium-review.googlesource.com/269520
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-07 15:01:04 +00:00