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

376 Коммитов

Автор SHA1 Сообщение Дата
Sam Clegg 31aabdfbc0 gyp: Always use pkg-config wrapper
Calling pkg-config directly doesn't work when building
with a sysroot image as it will looks for host libraries
rather than those within the sysroot.

BUG=chromium:569947

Change-Id: I6f3e63c1816cd9393110cb3060744a69a93c9a2e
Reviewed-on: https://chromium-review.googlesource.com/318771
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Sam Clegg <sbc@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-12-18 14:49:29 +00:00
Jamie Madill 90c253a616 Add an instancing perf test.
BUG=526217
BUG=angleproject:1164

Change-Id: Ia353a3b2fa0ab0e8b7fd15d72bb63e5ecb7833b1
Reviewed-on: https://chromium-review.googlesource.com/301469
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-12-16 14:04:14 +00:00
Corentin Wallez f33b58d0b7 Win32Window: Implement Event::EVENT_MOUSE_ENTERED
BUG=angleproject:1000

Change-Id: I9b61564fa086318c3ffa9a6b85bb100c52cfad54
Reviewed-on: https://chromium-review.googlesource.com/316590
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-12-14 19:47:23 +00:00
Jamie Madill 508a5b7d7d Windows: Write test name in debug log.
This helps isolate particular debug log messages to specific tests.

BUG=angleproject:667

Change-Id: I6be37d50cc41a13abbceb395e6e9b603bd44c7bd
Reviewed-on: https://chromium-review.googlesource.com/316611
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-12-09 19:16:58 +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
Jamie Madill 9fc3682c57 D3D: Rework varying packing code.
In D3D we pack varyings by making a register map, and using the
recommended GLSL ES algorithm to reserve register space. We use
this map to assign row and column slots to each varying and then
produce a semantic index value.

The existing scheme had a number of bugs, and was failing several
angle_end2end_tests. The new design cleans up the code somewhat
and uses a different counting scheme for the semantic indexes:
just sort the varyings in packing order and use a simple
incrementing semantic index per varying. In SM4+, the HLSL compiler
sorts and packs the varyings correctly itself, and in SM3, handle
the cases we don't support by returning an error instead of a D3D
compiler link error.

Also refactor how we store varying information for TF Feedback/
StreamOut. Only store the necessary D3D information, instead of
extra information like the name and type.

This fixes several tests in GLSLTest/*. This also will allow us to
fix interpolation qualifier packing and the structure packing in
HLSL, which seems to work differently than the rest of the varying
types.

BUG=angleproject:1202
TEST=bots,dEQP-GLES3.functional.transform_feedback.*

Change-Id: Ie5bfbb4f71d8bf97f39115fc46d2e61b131df639
Reviewed-on: https://chromium-review.googlesource.com/311241
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-11-18 19:23:25 +00:00
Corentin Wallez b0228e1812 OSXWindow fix a use after free of the WindowDelegate
This use after free was triggered when a window was made key and
destroyed, then another window was made key. dedResignKey was called on
the former's WindowDelegate which had already been freed, causing a
crash.

BUG=angleproject:891

Change-Id: If47e88419f9a407a6a77c5cd9853b7b4860dc698
Reviewed-on: https://chromium-review.googlesource.com/305817
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-10-29 14:16:47 +00:00
Corentin Wallez 8fc63104cf OSXWindow release the tracking area instead of deallocing it
The Mac AMD GPU FYI bots were crashing on end2end tests exit because the
NSView was trying to deallocated an NSTrackingArea that had been
previously deallocated.

BUG=angleproject:891

Change-Id: I933e437254cad65f18cb0518a401b8b8e9dc59a0
Reviewed-on: https://chromium-review.googlesource.com/303302
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-09-30 20:46:04 +00:00
Jamie Madill ad60e8ee26 Move more sample_util sources to util.
These sample utils can also be useful for writing perf tests.

BUG=angleproject:1164

Change-Id: I44b5d63b57bfce7a541442fd02cd729a1bab17f0
Reviewed-on: https://chromium-review.googlesource.com/301468
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-09-28 19:00:21 +00:00
Austin Kinross 9f2fd2b40d Add WinrtWindow.cpp and WinRT version of angle_util
Change-Id: If4ff4b966f5bd388d32c72a2d1bcf9cf29e6032d
Reviewed-on: https://chromium-review.googlesource.com/297308
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
2015-09-21 17:15:02 +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
Geoff Lang ee48376c1f Update to the latest versions of the GL and EGL headers.
Add GLES 3.1 and 3.2 headers.

Remove GLES 3.0 extension headers and entry point files.

Re-land fixes double define from different style defines in libGLESv2.gypi
and other projects.

Re-land fixes missing defines in angle_util project in gn.

Change-Id: I1952413cd4390e6f5450df809f8f5867bf6f49e2
Reviewed-on: https://chromium-review.googlesource.com/299771
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-09-15 20:13:55 +00:00
Geoff Lang 0393310feb Revert "Update to the latest versions of the GL and EGL headers."
Issues with GN build.

This reverts commit 8284436798.

Change-Id: I99d186019135bbbe250e95c9567854108d31c556
Reviewed-on: https://chromium-review.googlesource.com/299870
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-09-15 17:07:24 +00:00
Corentin Wallez 2f29d78b53 Use SDKROOT in the paths to OSX framework to match Chromium
BUG=angleproject:891

Change-Id: I458a12bd6b4be3b262d76184c51bde1f2b803c67
Reviewed-on: https://chromium-review.googlesource.com/299730
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-09-14 23:44:02 +00:00
Corentin Wallez f0ca9a0c58 Remove the usage of some c++11 library features
That were causing compilation error in Chromium Mac builds

BUG=angleproject:891

Change-Id: I45777451b300928e8c8d232a5b7ecffa7f1c3cbe
Reviewed-on: https://chromium-review.googlesource.com/299721
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-09-14 21:56:01 +00:00
Corentin Wallez 178e59741b In Chromium Mac builds do not find cstdint, use stdint.h instead
BUG=angleproject:891

Change-Id: Idf2a89ad26955df3579bb2c1883137589f68f573
Reviewed-on: https://chromium-review.googlesource.com/299720
Tryjob-Request: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-09-14 20:43:53 +00:00
Corentin Wallez b3c6a992ed OSXWindow::setMousePosition add a workaround for OSX 10.6 SDK
-[NSWindow convertRectToScreen] was introduced in OSX 10.7, use
convertBaseToScreen instead for OSX 10.6

BUG=angleproject:891

Change-Id: I255a71d98bc9bf22735a7cb8b9ce1ea24061742f
Reviewed-on: https://chromium-review.googlesource.com/299722
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-09-14 20:08:47 +00:00
Geoff Lang 8284436798 Update to the latest versions of the GL and EGL headers.
Add GLES 3.1 and 3.2 headers.

Remove GLES 3.0 extension headers and entry point files.

Re-land fixes double define from different style defines in libGLESv2.gypi and
other projects.

Change-Id: I6204dc767bd83b7aa7e4d6e2fa338b2ce7f304d8
Reviewed-on: https://chromium-review.googlesource.com/299401
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2015-09-11 20:25:50 +00:00
Geoff Lang e12150fe9c Revert "Update to the latest versions of the GL and EGL headers."
Linux compile failures to do gyp defines.

This reverts commit 8bbeabc179.

Change-Id: Icb31dd817414b3a9ab36e88cedab9c725af26b6b
Reviewed-on: https://chromium-review.googlesource.com/299173
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-09-11 20:06:38 +00:00
Geoff Lang 8bbeabc179 Update to the latest versions of the GL and EGL headers.
Add GLES 3.1 and 3.2 headers.

Remove GLES 3.0 extension headers and entry point files.

Change-Id: Icaa444efa52f3b9d1497189da92bc364545a6e3a
Reviewed-on: https://chromium-review.googlesource.com/299172
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-09-11 19:33:49 +00:00
Jamie Madill 7aef6020a0 Revert "Update to the latest versions of the GL and EGL headers."
Broke the Clang compile.

In file included from ../../third_party/angle/include/GLSLANG/ShaderLang.h:28:
../../third_party/angle/include/KHR/khrplatform.h:282:30: error: no newline at end of file [-Werror,-Wnewline-eof]
#endif /* __khrplatform_h_ */

Several other similar errors.

BUG=None

This reverts commit aac2035d85.

Change-Id: I407e7e65bb6a46d1d941c54cdf14a14758e22d96
Reviewed-on: https://chromium-review.googlesource.com/298834
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-09-11 19:06:12 +00:00
Geoff Lang aac2035d85 Update to the latest versions of the GL and EGL headers.
Add GLES 3.1 and 3.2 headers.

Remove GLES 3.0 extension headers and entry point files.

Change-Id: I8e9df6262dc1b2536a409c5791734e4a4d63b115
Reviewed-on: https://chromium-review.googlesource.com/299341
Tryjob-Request: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-09-11 18:35:35 +00:00
Corentin Wallez 86f8dd7c36 Implement a minimal EGL -> CGL backend
This succesfully renders HelloTriangle and some samples but fails on a
lot of tests. In particular it doesn't handle resizing the window and
doesn't have depth or stencil buffers.

BUG=angleproject:891

Change-Id: I16356471b470f764acb38e8dd3589e9c0129829d
Reviewed-on: https://chromium-review.googlesource.com/290770
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2015-09-10 14:41:21 +00:00
Geoff Lang 5ade8459ad Properly check for EGL_KHR_create_context before creating ES3 context.
Mark EGL_KHR_create_context as supported in the DisplayGLs.

BUG=angleproject:1149

Change-Id: I20671535680eb2c3b9c08205cee243b3aa5c5821
Reviewed-on: https://chromium-review.googlesource.com/297080
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-09-03 15:10:22 +00:00
Corentin Wallez beb81589d0 Make the end2end tests compile in the GN build.
BUG=angleproject:929

Change-Id: Ifc5ad03579c3e187721842f7585f3f06b69cbf45
Reviewed-on: https://chromium-review.googlesource.com/296682
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-09-02 20:46:28 +00:00
Jamie Madill ca03b35c19 Re-land "Compute packed varyings in ProgramD3D only."
Instead of storing varying information in the shader, use a temporary
set when linking a D3D program. This also means we won't have to
modify information in the Shader object when linking a D3D program.

This completes the refactoring for PackedVaryings.

Re-land with fix for missing init of PackedVarying::vertexOnly.

BUG=angleproject:1123

Change-Id: If110809c3817d88b0370ac575d739d7385b067d9
Reviewed-on: https://chromium-review.googlesource.com/296731
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-09-02 17:59:51 +00:00
Jamie Madill c437046ffc Revert "Compute packed varyings in ProgramD3D only."
Likely the cause of Windows bot failures.

BUG=angleproject:1123

This reverts commit 532061bbfb.

Change-Id: Ia4f0161b97bfbf2adb4cafaa5fa5484f04fad245
Reviewed-on: https://chromium-review.googlesource.com/296710
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-09-01 17:27:57 +00:00
Jamie Madill 532061bbfb Compute packed varyings in ProgramD3D only.
Instead of storing varying information in the shader, use a temporary
set when linking a D3D program. This also means we won't have to
modify information in the Shader object when linking a D3D program.

This completes the refactoring for PackedVaryings.

BUG=angleproject:1123

Change-Id: I241610e87f7d14f3e18b0d8bd84f1a3509c05dfd
Reviewed-on: https://chromium-review.googlesource.com/295193
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2015-09-01 12:39:01 +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
Cooper Partin 4d61f7edad Reland Fixed compiler warning C4267 'conversion from 'size_t' to 'type', possible loss of data'
Additional warnings found with more testing and added C4267 warning disable only for angle_libpng

BUG=angleproject:1120

Change-Id: Ic403dcff5a8018056fa51a8c408e64207f3362eb
Reviewed-on: https://chromium-review.googlesource.com/293028
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-08-13 13:28:42 +00:00
Cooper Partin 8168b4bd53 Fixed compiler warning C4838 'conversion from size_t to LONG requires a narrowing conversion'.
BUG=angleproject:1119

Change-Id: I2c879193dc122e6c45d0462abc91f39f5d332506
Reviewed-on: https://chromium-review.googlesource.com/292156
Tested-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2015-08-11 14:56:14 +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
Daniel Cheng 5bb9af2aab Fix a -Wswitch warning in ANGLE.
BUG=505308

Change-Id: I34ae3aa65ce55c4e04eecfef3c9cde9841e47140
Reviewed-on: https://chromium-review.googlesource.com/288245
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Daniel Cheng <dcheng@chromium.org>
2015-07-24 18:59:37 +00:00
Corentin Wallez f3357ee2ba EGLWindow: remove the unused width and height
EGLWindow does nothing with it per se, but some code was relying on it
to store it. Add width and height to ANGLETest and SampleApplication
instead. Also fix a typo in PerfTestParams, widowWidth -> windowWidth.

BUG=angleproject:1105

Change-Id: I26da607a2e6342864b508a50ee3cf8944608f868
Reviewed-on: https://chromium-review.googlesource.com/287379
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-07-23 15:25:26 +00:00
Geoff Lang 63046e2ba2 Add helpers for checking EGL extension availablity in tests.
Also make sure that EGL_EGLEXT_PROTOTYPES is always defined so that
extension functions can be used without loading them.

BUG=angleproject:970

Change-Id: I33fa3e8ed68aeda55ad69e1bc7826646f5e3ce29
Reviewed-on: https://chromium-review.googlesource.com/287161
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-07-21 20:05:15 +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 40888aab89 EGLWindow: correctly retrieve mAlphaBits
BUG=angleproject:1065

Change-Id: I1e396d1bd4d1c65edc3ad07bb32f895135d59474
Reviewed-on: https://chromium-review.googlesource.com/285180
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-07-15 21:58:31 +00:00
Corentin Wallez 31658f9206 Implement OSXWindow.
BUG=angleproject:891

Change-Id: If8aefa4a37ba7d1b6b08921bee61463bb20550af
Reviewed-on: https://chromium-review.googlesource.com/285834
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-07-15 21:18:48 +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 b29690a62a OSWindow: small fix to the formatting of key event debugging
BUG=

Change-Id: I09ab785311ec0fa7f3eecb6484a965378a1fef0d
Reviewed-on: https://chromium-review.googlesource.com/285835
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-07-15 20:29:46 +00:00
Corentin Wallez 3ebfcd62fd OSWindow: add KeyEvent debugging
BUG=angleproject:892

Change-Id: I35288ff43fb7a50a327047eacb8f41ca91e2b441
Reviewed-on: https://chromium-review.googlesource.com/283471
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-07-08 17:59:00 +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
Cooper Partin 1bd7dd45f9 Added 16-bit formats to GLConfigs to reduce offscreen texture memory usage.
BUG=angleproject:1042

Change-Id: I7024bd47601a21b08cafbf6460d512151b53d035
Reviewed-on: https://chromium-review.googlesource.com/277002
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-07-03 13:16:26 +00:00
Sam McNally fa2f73fd68 Fix a tautological comparison.
BUG=505309

Change-Id: I0e93139693206e766b91a5998d6e284c7a29fd14
Reviewed-on: https://chromium-review.googlesource.com/282450
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-06-29 14:01:18 +00:00
Corentin Wallez 87bef77c16 Compile end2end tests on MacOS
This includes an implementation of OSX timer and path_utils.

BUG=angleproject:891

Change-Id: Id5440a8321bcfd4a61f3fe35b4a3fc0c651f564f
Reviewed-on: https://chromium-review.googlesource.com/278211
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-06-26 17:51:51 +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 ce991cf67f Add OSWindow::takeScreenshot to be used by some dEQP egl tests
This helps make dEQP support platform agnostic

BUG=angleproject:892

Change-Id: Ifd9436caa8c79018a053c27e32b514ef9ebee707
Reviewed-on: https://chromium-review.googlesource.com/273596
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-06-19 18:27:50 +00:00
Corentin Wallez 3c85635de1 Add SetLowPriorityProcess to utils and use it in dEQP support
This provides a cross-platform way to make sure dEQP runs in a low
priority process.

BUG=angleproject:892

Change-Id: I0d12f1eacb78be43edcdb6622f945734c0b377ff
Reviewed-on: https://chromium-review.googlesource.com/273595
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-06-19 18:09:49 +00:00
Jamie Madill 8e695edb8b Fix support for GL_MAX_ATTRIBS attributes.
*re-land with fix for AMD/ES2/OpenGL.*

An off-by-one bug slipped in that broke support for these edge case
shaders.

Bug introduced in https://chromium-review.googlesource.com/#/c/266928/

BUG=angleproject:1045
BUG=500116

Change-Id: If44f809d432221d1e17afc407d49e87e0cb7504c
Reviewed-on: https://chromium-review.googlesource.com/277664
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-06-15 21:42:44 +00:00
Geoff Lang dd323e9568 Only run tests that the current hardware can support.
For each config, determine if a context can be created at test
instantiation time.  This allows skipping of ES3 tests when the hardware
does not support ES3.

Updated the perf_tests to use the EGLPlatformParameters struct so that
they can be filtered in the same way.

Change-Id: If664604b057cec4005eb4b63bebd83cd4964b7b2
Reviewed-on: https://chromium-review.googlesource.com/276460
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-06-10 21:12:57 +00:00
Jamie Madill 39fcf2636a Use both null and real renders for draw call perf.
Introduce a "null" GL renderer for this specific benchmark, which
does not do any work on drawArrays and drawElements. We could use
the same kind of trick for buffer and texture updates, if we need
it. This gives us a good baseline for comparing GL and D3D perf.

BUG=angleproject:1040

Change-Id: I4bf7c75df01932de45ddd0a4e42e8fc82f15e37e
Reviewed-on: https://chromium-review.googlesource.com/276192
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-06-09 15:30:55 +00:00
Jamie Madill ce232678da Add a perf test for eglInitialize.
Also shutdown performance, since it's not easy to only test one.

BUG=angleproject:1014

Change-Id: I9d06426788ed336031271f8876589b111f1294b7
Reviewed-on: https://chromium-review.googlesource.com/273974
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
2015-05-29 17:54:00 +00:00
Geoff Lang 4031b99416 Don't enable opengl on linux unless x11 is also available.
BUG=493682

Change-Id: I10d5b710fcc9b51160c3aff169d1af839212003c
Reviewed-on: https://chromium-review.googlesource.com/273976
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-05-29 15:37:32 +00:00
Corentin Wallez 51e2ad1457 Do not always use X11 for Linux builds, inherit Chromium's settings
This fixes project generation for Chromium for non-X11 builds

BUG=angleproject:1011

Change-Id: If528f63fb186d834d56a43ca379497d99e74777e
Reviewed-on: https://chromium-review.googlesource.com/273163
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2015-05-27 17:13:29 +00:00
Corentin Wallez 5c798fe97d Enable OcclusionQueriesTest on Linux
This includes an implementation of a cross platform Sleep function

BUG=angleproject:892

Change-Id: I1087a00ab204b37bafc5e95a9766962b194d97ef
Reviewed-on: https://chromium-review.googlesource.com/273133
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-27 14:29:34 +00:00
Corentin Wallez db39e7f5dd Rename path_utils to system_utils
For inclusion of Sleep

BUG=angleproject:892

Change-Id: I1a9491102e9943d945eef0ba372a6779c30cd311
Reviewed-on: https://chromium-review.googlesource.com/273131
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-25 15:07:05 +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 5b2545bf24 Correct LinuxTimer time calculations
Changes to CLOCK_MONOTONIC as CLOCK_PROCESS_CPUTIME counts only
user time and not kernel time.

BUG=angleproject:892

Change-Id: I3d5aee26ee2bacd7449fdd7795ad8c2b289d7324
Reviewed-on: https://chromium-review.googlesource.com/272652
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-22 17:03:01 +00:00
Corentin Wallez 91c2fadfe6 Fix more warnings in samples and tests
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>
2015-05-19 14:38:33 +00:00
Corentin Wallez 4b6945a434 Add -lrt and -ldl to link flags on Linux builds
BUG=angleproject:892

Change-Id: Ic06b493cbfdc061565d94d98aabfc3b1f2d882c6
Reviewed-on: https://chromium-review.googlesource.com/271275
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-15 14:41:13 +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 1f67547bb3 EGLWindow: remove redundant EGL_NONE to finish attrib list.
Only one EGL_NONE is needed to signal the end of the list.

BUG=angleproject:892

Change-Id: I7de349bef9d674344ccd1b2c4801d8b42c801299
Reviewed-on: https://chromium-review.googlesource.com/271157
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-14 17:05:16 +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 938f1ca341 OSWindow: add optional debugging of events received
BUG=angleproject:830

Change-Id: Icd854ee152f15ec1de4293b5ed2ed49cb1a5fc2b
Reviewed-on: https://chromium-review.googlesource.com/270451
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-12 15:20:48 +00:00
Corentin Wallez 12fe4dc8ce Fix pointer to int conversion warning in EGLWindow.cpp
BUG=angleproject:892

Change-Id: Ic40f29c811d18efea0e081c269ca43d0170488a4
Reviewed-on: https://chromium-review.googlesource.com/269122
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/270125
2015-05-11 14:59:38 +00:00
Jamie Madill fa05f6076e Use value-paramaterized tests instead of by type.
This should fix our non-standard template use, which causes compile
errors for the tests on GCC/Clang.

BUG=angleproject:997

Change-Id: Id1bb15231eda445f37e53a5b33d4684ec6618d8e
Reviewed-on: https://chromium-review.googlesource.com/269858
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-05-08 19:12:52 +00:00
Corentin Wallez 2cf30bd09c Fix GetExecutablePath on Linux
It was using lstat to get the size of /proc/self/exe but
it always returns 0, so we just use a big buffer on the
stack instead.

BUG=angleproject:892

Change-Id: I6d88efeb4ec5de7a78cb3668e3d78520203ad1d5
Reviewed-on: https://chromium-review.googlesource.com/269990
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-08 17:14:02 +00:00
Corentin Wallez bf9e40509a EGLWindow: specify the device type only on d3d platform
BUG=angleproject:892

Change-Id: I0406e26910f5a012ccb9e533af18e831522161b1
Reviewed-on: https://chromium-review.googlesource.com/269666
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/269827
2015-05-07 17:49:55 +00:00
Corentin Wallez ec0b13622a Make util/win32 follow ANGLE conventions better
BUG=angleproject:892

Change-Id: I1ad366e16b135649fe1b0351081f9971db84df50
Reviewed-on: https://chromium-review.googlesource.com/269665
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-07 17:21:40 +00:00
Jamie Madill 4ea209f129 Revert "EGLWindow: specify the device type only on d3d platform"
Causing failures in EGLSurfaceTest.MakeCurrentTwice on Windows

BUG=angleproject:892

This reverts commit 118e7195fd.

Change-Id: Ifbb17d1c9bc0390abadbfb8f78cf14dbf1bb8e83
Reviewed-on: https://chromium-review.googlesource.com/269950
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-05-07 15:32:38 +00:00
Corentin Wallez 118e7195fd EGLWindow: specify the device type only on d3d platform
BUG=angleproject:892

Change-Id: I2dda3a8d15e58d15a401258a5a64c5783ea1a132
Reviewed-on: https://chromium-review.googlesource.com/269666
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-07 15:01:35 +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
Jamie Madill c07c43e43f Revert "Fix pointer to int conversion warning in EGLWindow.cpp"
Causes a compile error.

BUG=angleproject:892

This reverts commit d424da4a4c.

Change-Id: Ieb8bb99d02f7050306974db5dab72d26474891ac
Reviewed-on: https://chromium-review.googlesource.com/268996
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-05-04 18:20:48 +00:00
Corentin Wallez 72196b74f0 Add missing trailing newline before EGLWindow.cpp EOF
BUG=angleproject:892

Change-Id: Iaf175a310ce2acb5a8715902b3d367aa3dae8e2c
Reviewed-on: https://chromium-review.googlesource.com/269124
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-04 18:09:53 +00:00
Corentin Wallez 75af569cc1 Add missing include in EGLWindow.cpp
BUG=angleproject:892

Change-Id: I23cfbd9cfbe7d41e048a2b2a4eea048f5de72d12
Reviewed-on: https://chromium-review.googlesource.com/269123
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-04 18:09:42 +00:00
Corentin Wallez d424da4a4c Fix pointer to int conversion warning in EGLWindow.cpp
BUG=angleproject:892

Change-Id: If6f0eb13bca10f9328faeaab35665a67e7ef6e44
Reviewed-on: https://chromium-review.googlesource.com/269122
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-04 18:09:16 +00:00
Corentin Wallez fc69293423 Fix signed to unsigned integer conversion warning in EGLWindow.h
Change-Id: I7b4249e04c8fb76b60b4c837266b144fbd64cbf6
Reviewed-on: https://chromium-review.googlesource.com/269128
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-04 17:25:16 +00:00
Corentin Wallez 9946a61e3c Fix text trailing after preprocessor macro warning in util/Event.h
Change-Id: Ie977e6fce0e5e0efeb16f0387bf653bbd2d1cd93
Reviewed-on: https://chromium-review.googlesource.com/269127
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-04 17:23:58 +00:00
Corentin Wallez 8eb2d14cda Fix 'not all switch case are handled' warning in OSWindow.cpp
Change-Id: Ib4d1e4b04c73e5eb5e0e4f6c56212e99723d2ce0
Reviewed-on: https://chromium-review.googlesource.com/269126
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-04 17:23:34 +00:00
Corentin Wallez 6ba699a2b0 Add missing include in OSWindow.h
Change-Id: Ie1fd40c308ed9d0d90756e31dfe153f44510defa
Reviewed-on: https://chromium-review.googlesource.com/269125
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-04 17:23:00 +00:00
Corentin Wallez 96de96b7cd Initialize Win32Timer::mRunning as a bool
Change-Id: I1770684217239bcbdf2bb07f4867e1427577a01f
Reviewed-on: https://chromium-review.googlesource.com/269121
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Corentin Wallez <cwallez@chromium.org>
2015-05-04 17:19:21 +00:00
Geoff Lang 681ad9d1bb Add a sample that uses multiple windows.
BUG=angleproject:521

Change-Id: I50858193518b4d07edcb2073caaa99ce37fcc4c3
Reviewed-on: https://chromium-review.googlesource.com/267000
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-27 14:00:48 +00:00
Jamie Madill 77a72f6ecf Release Surface when calling makeCurrent with null.
Refactorings to egl::Surface to enable ref-counting were causing
a situation where we could have two Window surfaces alive at the
same time. This would confuse the window procedure logic in
SurfaceD3D. Releasing the surface fixes this issue and conforms
closely to the wording on the spec on when Surfaces should be
deleted. Also add a test for message loops and surfaces.

BUG=475085
BUG=angleproject:963

Change-Id: Icdee3a7db97c9b54d779dabf1e1f82a89fefc546
Reviewed-on: https://chromium-review.googlesource.com/265064
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-14 20:45:57 +00:00
Cooper Partin 97d61eb51c Add extension EGL_ANGLE_device_d3d
Access to the D3D device is needed for some advanced scenarios.
New entry points eglQueryDisplayAttribANGLE and
eglQueryDeviceAttribANGLE have been added in this change
to implement this extension.

BUG=angleproject:935

Change-Id: Ie39e86a2b6c6d8d05a08964b2907fb9fba5dec13
Reviewed-on: https://chromium-review.googlesource.com/265591
Tested-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-14 17:37:48 +00:00
Geoff Lang 1ea8284d03 Revert "Add extension EGL_ANGLE_device_d3d"
Compile error on clang:
src/libANGLE/Display.cpp:259:23: error: allocation of incomplete type 'egl::Device'
        mDevice = new Device(this, impl);
                      ^~~~~~
src/libANGLE/Display.h:36:7: note: forward declaration of 'egl::Device'
class Device;
      ^
In file included from src/libANGLE/Display.cpp:11:
In file included from src/libANGLE/Display.h:17:
In file included from src/libANGLE/Error.h:80:
In file included from src/libANGLE/Error.inl:9:
src/common/angleutils.h:66:5: error: deleting pointer to incomplete type 'egl::Device' may cause undefined behavior [-Werror,-Wdelete-incomplete]
    delete resource;
    ^      ~~~~~~~~
src/libANGLE/Display.cpp:209:5: note: in instantiation of function template specialization 'SafeDelete<egl::Device>' requested here
    SafeDelete(mDevice);
    ^
src/libANGLE/Display.h:36:7: note: forward declaration of 'egl::Device'
class Device;
      ^
2 errors generated.

This reverts commit 6dacaff4e0.

Change-Id: Ide348e156324a5af668604362c0b249ea73b6083
Reviewed-on: https://chromium-review.googlesource.com/265626
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-14 15:29:23 +00:00
Cooper Partin 6dacaff4e0 Add extension EGL_ANGLE_device_d3d
Access to the D3D device is needed for some advanced scenarios.
New entry points eglQueryDisplayAttribANGLE and
eglQueryDeviceAttribANGLE have been added in this change
to implement this extension.

BUG=angleproject:935

Change-Id: Id1560b0887fa5882b9858af7bad9043ada67038d
Reviewed-on: https://chromium-review.googlesource.com/251610
Tested-by: Cooper Partin <coopp@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-14 14:30:39 +00:00
Minmin Gong 794e0009ef Fix and enable warning C4244 (Conversion from 'type1' to 'type2', possible loss of data)
Change-Id: Id0e06d7d6600344d858f00dabc219d79289bbc82
Reviewed-on: https://chromium-review.googlesource.com/265020
Tested-by: Minmin Gong <mgong@microsoft.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-09 20:13:48 +00:00
Jamie Madill b3584fb490 Revert "Fix and enable warning C4244 (Conversion from 'type1' to 'type2', possible loss of data)"
Causing a build failure on Mac/Clang:

./Tokenizer.cpp:551:7: error: extra tokens at end of #else directive [-Werror,-Wextra-tokens]
#else if defined(_MSC_VER)

http://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Mac%20Builder/builds/29136

This reverts commit 3b26e231d9.

Change-Id: I2d11ddcc18130d908fd2ec3d6f5ab890cfccd5e7
Reviewed-on: https://chromium-review.googlesource.com/264983
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-09 17:35:08 +00:00
Minmin Gong 3b26e231d9 Fix and enable warning C4244 (Conversion from 'type1' to 'type2', possible loss of data)
Change-Id: I73d9a2b9ad16f032be974b9c819de0dc1247c2ea
Reviewed-on: https://chromium-review.googlesource.com/264533
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-09 14:05:37 +00:00
Nico Weber 51a1db16d7 Give Timer a virtual destructor as it's deleted polymorphically.
Found by clang:

..\..\third_party\angle\src\common/angleutils.h(66,5) :  error: delete called on 'Timer' that is abstract but has non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
    delete resource;
    ^
..\..\third_party\angle\src\tests\perf_tests\ANGLEPerfTest.cpp(26,5) :  note: in instantiation of function template specialization 'SafeDelete<Timer>' requested here
    SafeDelete(mTimer);
    ^

BUG=chromium:82385

Change-Id: I69033b1802b5dffbdf2d80889aca7019d710d481
Reviewed-on: https://chromium-review.googlesource.com/264061
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-06 17:35:28 +00:00
Gregoire Payen de La Garanderie 68694e9941 Add UBO offset support for D3D11.1.
Also fixes the uniform count upper limit in glGetActiveUniformsiv,
as well as an assert hit with used but unbound uniform buffer.

BUG=angleproject:507
BUG=angleproject:962

Change-Id: I096fe1c9b4f0f398f3a638cd8311278987dfb7dc
Reviewed-on: https://chromium-review.googlesource.com/263404
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
2015-04-01 18:52:18 +00:00
Geoff Lang 90a09b56ce Revert "Add UBO offset support for D3D11.1."
Failed on 32-bit builds.  See: https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Win%20Builder/builds/24828/steps/compile/logs/stdio

angle\src\libangle\validationes.cpp(1461) : error C2220: warning treated as error - no 'object' file generated
angle\src\libangle\validationes.cpp(1461) : warning C4018: '<' : signed/unsigned mismatch

This reverts commit 381f969315.

Change-Id: I05f09f19e40046994d34809c5b79095458f56148
Reviewed-on: https://chromium-review.googlesource.com/263474
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-04-01 18:21:45 +00:00
Gregoire Payen de La Garanderie 381f969315 Add UBO offset support for D3D11.1.
Also fixes the uniform count upper limit in glGetActiveUniformsiv,
as well as an assert hit with used but unbound uniform buffer.

BUG=angleproject:507
BUG=angleproject:962

Change-Id: I263b14df41d4e45a67304c1d145646398721cf0a
Reviewed-on: https://chromium-review.googlesource.com/263412
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Gregoire Payen de La Garanderie <Gregory.Payen@imgtec.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2015-04-01 17:33:49 +00:00
Gregoire Payen de La Garanderie 3917f578c7 Revert "Add UBO offset support for D3D11.1."
Was ignoring the uniform block bindings.

This reverts commit 7159ea6778.

Change-Id: Ie7d2b40d3fb2adedd309f1162fb6fd33ab0b4c3c
Reviewed-on: https://chromium-review.googlesource.com/263420
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-04-01 14:20:22 +00:00
Jamie Madill 2d1eea098f Remove shared_utils.h, use angle_common instead.
*re-land with fix for Chromium compile*

This saves us from needing to replicate the same code in two places.

BUG=angleproject:956

Change-Id: I68dffee715df03bd25685e3ed5c0506ffc41c3b9
Reviewed-on: https://chromium-review.googlesource.com/263258
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
2015-04-01 13:38:15 +00:00
Jamie Madill 61a5b33878 Revert "Remove shared_utils.h, use angle_common instead."
Causing a build conflig with Chromium's DISALLOW_COPY_AND_ASSIGN.

http://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Win%20Builder/builds/24738

This reverts commit 3ad467df28.

Change-Id: I0cf13e3bc3af90303a123813052cced0ba086515
Reviewed-on: https://chromium-review.googlesource.com/263159
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-03-31 15:35:21 +00:00
Jamie Madill 3ad467df28 Remove shared_utils.h, use angle_common instead.
This saves us from needing to replicate the same code in two places.

BUG=angleproject:956

Change-Id: Ibc80997eec184d0d5aa9c6c076c9d4507fbf8caa
Reviewed-on: https://chromium-review.googlesource.com/262776
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-03-31 15:16:26 +00:00
Gregoire Payen de La Garanderie 7159ea6778 Add UBO offset support for D3D11.1.
Also fixes the uniform count upper limit in glGetActiveUniformsiv.

BUG=angleproject:507

Change-Id: Icfc90ed64cf94b1bab2d4cc93a8fb5e11b28d666
Reviewed-on: https://chromium-review.googlesource.com/261874
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-03-30 19:49:13 +00:00
Jamie Madill 19a43dbe65 Add a perf test for draw call overhead.
These perf tests use the D3D NULL renderers to measure pure CPU
time, with no GPU limitations. Also fix our D3D9 SwapChain code
to skip creating a SwapChain for NULLREF D3D9 devices, and the
vertex decl code to reinitialize the formats when finding a
mismatch with the previous value.

BUG=angleproject:955

Change-Id: I449e63177b48afd1559c36244de0bc252814e813
Reviewed-on: https://chromium-review.googlesource.com/262208
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2015-03-25 14:46:25 +00:00
Geoff Lang f1e85927f1 Add test for very basic operations to enable as GL functionality is added.
Add OpenGL and OpenGLES platform types for the ANGLE tests.

Comment out some UNIMPLEMENTEDs that tests using OpenGL trigger.

BUG=angle:882

Change-Id: I7f85eed184f7cebd25e2521d793fc9c394b704ce
Reviewed-on: https://chromium-review.googlesource.com/252252
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-02-25 21:22:14 +00:00
Geoff Lang 7825f6199c Update ANGLE_platform_angle_d3d to use a device type enum instead of WARP bool.
BUG=angle:490

Change-Id: I1555e7f09b23138753e52ddf720d088587f7cadb
Reviewed-on: https://chromium-review.googlesource.com/232104
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-02-23 18:10:47 +00:00
Geoff Lang 15dc05fc49 Only request PostSubBuffer support when the extension is available.
BUG=angle:658

Change-Id: I6828290ef89c57e8c794f0fca6e5991c492b67aa
Reviewed-on: https://chromium-review.googlesource.com/242572
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-02-09 15:05:29 +00:00
Austin Kinross fcbf345b00 Add testfixturetypes.h to util.gyp
Change-Id: I562bdca2c5c693155333a0ce168310be05b37531
Reviewed-on: https://chromium-review.googlesource.com/245741
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
2015-02-03 18:08:28 +00:00
Nico Weber ce8bb2fa58 Improve standards conformance of ANGLE's testing code.
ANGLE's testing code recently got enabled in Chromium's builds. While it
builds fine with cl.exe, it isn't quite standards-conformant and doesn't
build with clang. Fix this.

There were three issues:

1. ANGLE_TYPED_TEST_CASE() is a variadic macro that tries to use
   __VA_ARGS__ as argument to a variadic template and then pass
   that template to another macro. However, [cpp.replace] describes
   that ANGLE_TYPED_TEST_CASE(Test, int, float) should be expanded
   to TYPED_TEST_CASE(Test, ::testing::Types<int, float>) which
   should be interpreted as a "call" of TYPED_TEST_CASE with the
   3 macro arguments `Test`, `::testing::Types<int`, and `float>`.
   As a fix, use a typedef for the variadic template and refer to
   it through the typedef in the macro call.

2. `#version` was used on its own line in a substitution of the
   SHADER_SOURCE macro. [cpp]p1 says that every line starting with
   a `#` is a preprocessing directive, and [cpp.replace]p11 says
   "If there are sequences of preprocessing tokens within the list
   of arguments that would otherwise act as preprocessing directives,
   the behavior is undefined" (with a footnote that this includes
   non-directives -- # followed by unknown text). As a fix, merge the
   `#version` line with the previous line. Now the line doesn't start
   with `#` and things are fine.

3. Unqualified lookup usually doesn't look into dependent bases. If
   this is desired, one usually has to make the call qualified, a
   good explanation for this is at
   http://eli.thegreenplace.net/2012/02/06/dependent-name-lookup-for-c-templates
   cl.exe doesn't implement this rule, and clang tries to emulate
   cl.exe's behavior to a certain extend when in Microsoft mode.
   However, that seems to not work for member templates with explicit
   types (filed http://llvm.org/PR22066 for this, but since it's not
   needed to parse Microsoft headers and not standards-conformant,
   I'm not sure if we'll fix that). As a fix, don't provide an explicit
   type, the inferred type is the same. This is also consistent with
   all the other tests in this file. (We might clean up -Wmicrosoft
   warnings in the future; if so I'll add the explicit this->s that
   are missing in this file when we do.)

BUG=chromium:445406

Change-Id: I77a2f3ab9601a1f0f39b56ed3d05217f123155b8
Reviewed-on: https://chromium-review.googlesource.com/238090
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2015-01-05 16:11:43 +00:00
Austin Kinross 0dbda057ed Add basic D3D11 Feature Level 9.3 support
Change-Id: I660c74791ddb9917bd4796bb652eefab2a3e4863
Reviewed-on: https://chromium-review.googlesource.com/233660
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
2014-12-09 22:01:05 +00:00
Geoff Lang 0d3683c425 Update ANGLE_platform_angle to allow requesting of Renderer versions.
Added enums to allow users to request major and minor versions of the
underlying API and if a WARP device is used.

BUG=angle:490

Change-Id: I0bfb2ac8d327da28a47cc8e6346300e47ab9538c
Reviewed-on: https://chromium-review.googlesource.com/225081
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-11-03 17:56:14 +00:00
Geoff Lang 7fa245c053 Use a new class name for each window.
If a previous window was not cleaned up properly due to a crash in a
test, the subsequent windows can fail to be created because the class is
not destroyed.  Work around this by always creating a unique class before
creating the window.

Change-Id: Ied6b2818ef03fa12b07111d8204c3c1a6a5bd5ac
Reviewed-on: https://chromium-review.googlesource.com/225080
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
2014-10-23 13:58:27 +00:00
Jamie Madill 4119ed3da1 Make OSWindow a non-static member of ANGLETest.
BUG=angle:611

Change-Id: I455e1dd0ad5582191621e316c4808a2d753e9aaa
Reviewed-on: https://chromium-review.googlesource.com/219867
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-10-09 20:32:31 +00:00
Jamie Madill 91f2911f70 Add workaround for Unicode compile error.
Chromium builds define UNICODE, while we don't, which confuses
the built-in IDC_ARROW macro.

With this fix, and http://crbug.com/415983, we can build
angle_perf_tests in Chromium.

BUG=angle:744

Change-Id: I268a7c11a5b5355cb2485bf10faf750972cf4e30
Reviewed-on: https://chromium-review.googlesource.com/220363
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2014-10-09 18:13:07 +00:00
Jamie Madill fc63152a3b Use Chromium perf bot output style for perf test.
The Chromium style output will allow the perf bots to collect data
from our performance tests.

BUG=angle:744

Change-Id: I2ffdace688004edf2918ead2a3e2aa2a6c4daf95
Reviewed-on: https://chromium-review.googlesource.com/220361
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2014-10-09 18:08:22 +00:00
Jamie Madill b4fd0c96d2 Replace usages of std::vector::data in most cases.
In some parts of ANGLE code, we were using std::vector::data to get
a pointer to the first element. Sadly, this is c++11 only, which
isn't currently supported on Chromium. This was causing a breakage
on Android. We should probably refrain from using data except on
D3D-only code, which we know will be Visual Studio.

BUG=angle:767

Change-Id: Ibc10577368435a13f62d74d77c95076482cd8f82
Reviewed-on: https://chromium-review.googlesource.com/220920
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-10-01 21:43:30 +00:00
Austin Kinross 18b931d5e0 Configure Google Tests to run against multiple renderers/GLES versions
BUG=angle:611

Change-Id: I7d43612171c439045038db9ae82fd8716c0b31c6
Reviewed-on: https://chromium-review.googlesource.com/220400
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Austin Kinross <aukinros@microsoft.com>
2014-09-30 21:51:38 +00:00
Jamie Madill ea0e873313 Add a point sprite benchmark.
This benchmark will attempt to reproduce the slowdown we see
in D3D11 on the turbulenz GPU particles demo.

BUG=angle:705

Change-Id: I9c4c2f09d4282feae30f448fd374cdbb6bceae9b
Reviewed-on: https://chromium-review.googlesource.com/216467
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-09-25 18:40:48 +00:00
Jamie Madill 9e16d40de3 Fix Win32Window::resize breaking angle_tests.
We were messing up the client rect on resize, which caused the
ReadPixels checks to mess up around the window edges. Disabling
the window styles on the test windows masked this bug. Fix this
by using a style-less child window inside the parent window.
This gives us access to window styles for the samples project,
along with the ability to use tiny 1x1 windows for testing.

BUG=angle:730

Change-Id: Ic6dd931df7b4e32fbbcacbb004d3bbc49917f658
Reviewed-on: https://chromium-review.googlesource.com/217024
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-09-10 14:06:51 +00:00
Jamie Madill 33ea2f9776 Added BufferSubData benchmark.
BUG=angle:705

Change-Id: I65d557f35e4c9f1d94853a775330a92b7d428847
Reviewed-on: https://chromium-review.googlesource.com/213810
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-09-02 14:47:00 +00:00
Jamie Madill 0bab342bb6 Fix 64-bit use of Win32Window.
An incorrect call to SetWindowLongPtr was crashing the 64-bit test.

BUG=angle:705

Change-Id: I3815bb0a1308f5e66e74faead37c0ae09f975a10
Reviewed-on: https://chromium-review.googlesource.com/214883
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2014-08-29 19:13:25 +00:00
Jamie Madill 4477109981 Make OSWindow destructor virtual.
BUG=angle:734

Change-Id: I6deb639abc26a314dd890189613e0a3a2e1be1d2
Reviewed-on: https://chromium-review.googlesource.com/214714
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
2014-08-28 18:23:22 +00:00
Jamie Madill 5704d6e886 Add some shared utility methods to the utils project.
BUG=angle:730

Change-Id: I268c7f76ee9a14ab82f646ae8ebf4eed100bf86d
Reviewed-on: https://chromium-review.googlesource.com/213509
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-08-27 17:36:58 +00:00
Jamie Madill 62af54670d Use EGLWindow in ANGLETests.
This completes the refactor to use the same code for EGL and OS
Window creation for samples and tests.

BUG=angle:730
TEST=angle_tests

Change-Id: Ib6de89f5bf83c0730a66f662cd1f87351f36a5f7
Reviewed-on: https://chromium-review.googlesource.com/213297
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-08-27 17:36:49 +00:00
Jamie Madill 3757a5ae00 Allow app to specify EGL Window extra parameters.
Extra parameters include pixel bit sizes, swap interval
and if we want multisampling. This gives parity between
the tests and samples EGL creation options.

BUG=angle:730

Change-Id: I68d619c2ea141794f0089456bb6bba3d3b1c2a07
Reviewed-on: https://chromium-review.googlesource.com/213296
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2014-08-26 20:41:02 +00:00
Jamie Madill 83da0ec52f Add OSWindow::setVisible.
BUG=angle:730

Change-Id: I9c9e2f3b694ba57df359906cd8517ede60af632d
Reviewed-on: https://chromium-review.googlesource.com/213294
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
2014-08-26 15:50:22 +00:00
Jamie Madill 25f0e5e389 Add a Resize method to OSWindow.
BUG=angle:730

Change-Id: I64106f05eb4188305eb34bbabe7d1cde037e1948
Reviewed-on: https://chromium-review.googlesource.com/213293
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-08-26 15:50:15 +00:00
Jamie Madill 586666ceaa Make the sample app own the OS Window object.
This allows us to use OS Windows and EGL contexts differently
for different implementations - eg, tests and samples.

BUG=angle:730

Change-Id: I65e69fd829c3dbf2f1b406d90045bc296798ebb6
Reviewed-on: https://chromium-review.googlesource.com/213290
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-08-21 20:41:49 +00:00
Jamie Madill 1cfaaf8a3b Add a util project to share between samples and tests.
This code shares the Window and EGL logic between the two
projects.

BUG=angle:730

Change-Id: I8940371226a8f7b02579c332f51679c4a5d0e2a5
Reviewed-on: https://chromium-review.googlesource.com/212799
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2014-08-21 20:41:09 +00:00