| 
              
a9f89313
               | 
              
2019-02-25T16:31:57
               | 
              
               | 
              
Reland "Add system util to execute app and retrieve its output"
This reverts commit fe14b2e503a5991aeb033836bb4d525508475b52.
Reason for revert: failing test is reworked not to run angle_unittests
itself, but another binary.
Previously, this test was calling angle_unittests itself, but with a
different target.  On the bots, that was in turn calling angle_unittests
with even more arguments, including the addition of a log file location.
Under some configurations, this separate process was thus trying to
access files that were already opened by the parent process, leading to
a test failure.
In this CL, a new helper executable is created for the sake of this
unittest.
> Revert "Add system util to execute app and retrieve its output"
>
> This reverts commit c63d95525cde8d28963148bb5894456c1d39018d.
>
> Reason for revert: Test fails on Win7
>
> Original change's description:
> > Add system util to execute app and retrieve its output
> >
> > This will be useful to run external applications, such as benchmarks,
> > and process their output.
> >
> > Bug: angleproject:3125
> > Change-Id: Ic13c69f2e034f4b47498fb2f299c62423c355c4a
> > Reviewed-on: https://chromium-review.googlesource.com/c/1452534
> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@google.com>
Bug: angleproject:3125, angleproject:3168
Change-Id: I74815750484a79f33c36e0b4f941d4dd98f99aa5
Reviewed-on: https://chromium-review.googlesource.com/c/1487631
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
               | 
            
            
              
   
               | 
              
fe14b2e5
               | 
              
2019-02-25T19:22:28
               | 
              
               | 
              
Revert "Add system util to execute app and retrieve its output"
This reverts commit c63d95525cde8d28963148bb5894456c1d39018d.
Reason for revert: Test fails on Win7
Original change's description:
> Add system util to execute app and retrieve its output
> 
> This will be useful to run external applications, such as benchmarks,
> and process their output.
> 
> Bug: angleproject:3125
> Change-Id: Ic13c69f2e034f4b47498fb2f299c62423c355c4a
> Reviewed-on: https://chromium-review.googlesource.com/c/1452534
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@google.com>
TBR=jmadill@google.com,syoussefi@chromium.org,jmadill@chromium.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:3125, angleproject:3168
Change-Id: I389c0ee639c7c0176c87abe92fc88f99d1b20cc4
Reviewed-on: https://chromium-review.googlesource.com/c/1487104
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
               | 
            
            
              
   
               | 
              
c63d9552
               | 
              
2019-02-04T13:41:51
               | 
              
               | 
              
Add system util to execute app and retrieve its output
This will be useful to run external applications, such as benchmarks,
and process their output.
Bug: angleproject:3125
Change-Id: Ic13c69f2e034f4b47498fb2f299c62423c355c4a
Reviewed-on: https://chromium-review.googlesource.com/c/1452534
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
               | 
            
            
              
   
               | 
              
bab0302b
               | 
              
2019-01-16T14:12:28
               | 
              
               | 
              
Make path utils return std::string.
This avoids potential issues with returning local variables. It
also solves potential threading conflicts by returning the string
value instead of a pointer. The code should be optimized with RVO
with a modern c++ compiler.
Bug: angleproject:2601
Change-Id: I8a01702d2675a17dd060f27920105efab0c49454
Reviewed-on: https://chromium-review.googlesource.com/c/1415910
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
1f56ed2a
               | 
              
2019-01-03T15:24:22
               | 
              
               | 
              
Add WGLWindow and WGL test configs.
WGLWindow lets us use a Windows driver's bindings instead of ANGLE.
This only works if the underlying driver supports OpenGL ES
compatibility.
Also adds the WGL headers, WGL XML, and a specialized WGL loader.
Because of a small driver issue with NVIDIA I added a retry for the WGL
Window initialization.
Bug: angleproject:2995
Change-Id: Ie5148ece470dd03df33015f4919ad1fa79a859ec
Reviewed-on: https://chromium-review.googlesource.com/c/1366021
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
               | 
            
            
              
   
               | 
              
ba319ba3
               | 
              
2018-12-29T10:29:33
               | 
              
               | 
              
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>
               | 
            
            
              
   
               | 
              
9f088621
               | 
              
2018-12-29T20:46:15
               | 
              
               | 
              
Revert "Load entry points dynamically in tests and samples."
This reverts commit 03923558a7103827ffec6a4d2a1453ed91f01c6f.
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>
               | 
            
            
              
   
               | 
              
03923558
               | 
              
2018-12-29T10:29:33
               | 
              
               | 
              
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>
               | 
            
            
              
   
               | 
              
4638dc9d
               | 
              
2018-12-17T13:13:49
               | 
              
               | 
              
Re-land "Load correct libGLESv2 on Linux and Mac."
Re-land fixes build to ensure commit_id is built before libEGL.
libEGL was implicitly loading libGLESv2 on startup. This is bad
because on platforms like Linux and Mac we could sometimes use the
incorrect rpath. This in turn meant we needed workarounds like using
"_angle" extensions to our shared objects to get the correct loading
behaviour.
Fix this by loading libGLESv2 dynamically in libEGL. We build the
loader automatically from egl.xml. The loader itself is lazily
initialized on every EGL entry point call. This is necessary because
on Linux, etc, there is no equivalent to Windows' DLLMain.
We also use an EGL.h with different generation options so we have the
proper function pointer types. A README is included for instructions
on how to regenerate EGL.h.
The entry point generation script is refactored into a helper class
that is used in the loader generator. Also adds the libGLESv2 versions
of the EGL entry points in the DEF file on Windows. This allows them to
be imported properly in 32-bit configurations.
Also fixes up some errors in ANGLE's entry point definitions. Also
includes a clang-format disable rule for the Khronos headers.
This CL will help us to run ANGLE tests against native drivers.
Bug: angleproject:2871
Bug: chromium:915731
Change-Id: I4192a938d1f4117cea1bf1399c98bda7ac25ddab
Reviewed-on: https://chromium-review.googlesource.com/c/1380511
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
175d918a
               | 
              
2018-12-16T19:53:23
               | 
              
               | 
              
Revert "Load correct libGLESv2 on Linux and Mac."
This reverts commit dd815b623e60a1e1550f328104ffcd7caf20fde1.
Reason for revert: Broke https://luci-milo.appspot.com/p/chromium/builders/luci.chromium.ci/win-rel/8006
Original change's description:
> Load correct libGLESv2 on Linux and Mac.
> 
> libEGL was implicitly loading libGLESv2 on startup. This is bad
> because on platforms like Linux and Mac we could sometimes use the
> incorrect rpath. This in turn meant we needed workarounds like using
> "_angle" extensions to our shared objects to get the correct loading
> behaviour.
> 
> Fix this by loading libGLESv2 dynamically in libEGL. We build the
> loader automatically from egl.xml. The loader itself is lazily
> initialized on every EGL entry point call. This is necessary because
> on Linux, etc, there is no equivalent to Windows' DLLMain.
> 
> We also use an EGL.h with different generation options so we have the
> proper function pointer types. A README is included for instructions
> on how to regenerate EGL.h.
> 
> The entry point generation script is refactored into a helper class
> that is used in the loader generator. Also adds the libGLESv2 versions
> of the EGL entry points in the DEF file on Windows. This allows them to
> be imported properly in 32-bit configurations.
> 
> Also fixes up some errors in ANGLE's entry point definitions. Also
> includes a clang-format disable rule for the Khronos headers.
> 
> This CL will help us to run ANGLE tests against native drivers.
> 
> Bug: angleproject:2871
> Change-Id: Id6ecf969308f17b1be4083538428c9c1a1836572
> Reviewed-on: https://chromium-review.googlesource.com/c/1370725
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
TBR=ynovikov@chromium.org,geofflang@chromium.org,jmadill@chromium.org
Change-Id: I921b3c45435ab4f05cbc2d1c1172b4185d6257b0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2871
Reviewed-on: https://chromium-review.googlesource.com/c/1378887
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
               | 
            
            
              
   
               | 
              
dd815b62
               | 
              
2018-12-15T10:39:00
               | 
              
               | 
              
Load correct libGLESv2 on Linux and Mac.
libEGL was implicitly loading libGLESv2 on startup. This is bad
because on platforms like Linux and Mac we could sometimes use the
incorrect rpath. This in turn meant we needed workarounds like using
"_angle" extensions to our shared objects to get the correct loading
behaviour.
Fix this by loading libGLESv2 dynamically in libEGL. We build the
loader automatically from egl.xml. The loader itself is lazily
initialized on every EGL entry point call. This is necessary because
on Linux, etc, there is no equivalent to Windows' DLLMain.
We also use an EGL.h with different generation options so we have the
proper function pointer types. A README is included for instructions
on how to regenerate EGL.h.
The entry point generation script is refactored into a helper class
that is used in the loader generator. Also adds the libGLESv2 versions
of the EGL entry points in the DEF file on Windows. This allows them to
be imported properly in 32-bit configurations.
Also fixes up some errors in ANGLE's entry point definitions. Also
includes a clang-format disable rule for the Khronos headers.
This CL will help us to run ANGLE tests against native drivers.
Bug: angleproject:2871
Change-Id: Id6ecf969308f17b1be4083538428c9c1a1836572
Reviewed-on: https://chromium-review.googlesource.com/c/1370725
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
               | 
            
            
              
   
               | 
              
b980c563
               | 
              
2018-11-27T11:34:27
               | 
              
               | 
              
Reformat all cpp and h files.
This applies git cl format --full to all ANGLE sources.
Bug: angleproject:2986
Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f
Reviewed-on: https://chromium-review.googlesource.com/c/1351367
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
               | 
            
            
              
   
               | 
              
80d4ef10
               | 
              
2018-07-13T17:08:19
               | 
              
               | 
              
Vulkan: Fixed improperly set env variable
After the first test using the Mock ICD runs, an environment
variable VK_ICD_FILENAMES is set when previously it did not
exists. The cleanup of that test, rather than deleting the
environment variable, set it to an empty string, which the
Vulkan loader would use for subsequent Vulkan tests, causing
issues with Vulkan not finding the correct extensions.
Had to disable two more tests since they started failing once
those backends were enabled.
Bug: angleproject:2604
Change-Id: Ie103756eed60d255d1dd92d7ef3b726183feeb1e
Reviewed-on: https://chromium-review.googlesource.com/1137342
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Omar El Sheikh <theoking@google.com>
               | 
            
            
              
   
               | 
              
046fa0ef
               | 
              
2018-02-02T14:51:36
               | 
              
               | 
              
Vulkan: Prepend layer path to VK_LAYER_PATH
Directly setting this variable overwrites old value, as might be
unexpected. Instead the path can be prepended to it, so that old
value can still work.
This is needed in order to use additional debugging layers, like
the "api_dump" layer. See https://github.com/LunarG/VulkanTools
for more.
BUG=angleproject:2333
Change-Id: I5338a5b928ffa792cc9b6db5b69713320b5b0842
Reviewed-on: https://chromium-review.googlesource.com/898591
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
b8bbbf9e
               | 
              
2017-09-19T00:24:59
               | 
              
               | 
              
Vulkan: Use environment override to load layers.
Instead of using a compile-time define, use an OS call to override
the environment variable the loader uses to look for layers. This
should allow us to have a run-time override mechanism, so we can
more easily use ANGLE with RenderDoc and other tools that hook
into the layers for debugging and profiling purposes.
This should also allow the developer to install and use their own
layers with ANGLE if desired.
This patch removes the angle_loader.h generation since it is no
longer necessary.
It also fixes an unrelated loader warning that occured when releasing
the current pipeline object.
BUG=angleproject:1898
Change-Id: Ic4a5120a6b73745397451ef9e3897e157da1feda
Reviewed-on: https://chromium-review.googlesource.com/671490
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
               | 
            
            
              
   
               | 
              
a66779fc
               | 
              
2017-01-06T10:43:44
               | 
              
               | 
              
Vulkan: Load layers relative to executable dir.
Instead of baking in a relative path and expecting the app to run from
a fixed directory, we can change the CWD at runtime so the layers can
load relative to the current executable directory.
Future alternatives could include modifying the layers SDK to provide
a path dynamically, but for now the relative paths must be baked in
at compile-time.
BUG=angleproject:1319
BUG=chromium:677841
Change-Id: I443b6b35d38276ea667cdf08ec2204ea280b6cec
Reviewed-on: https://chromium-review.googlesource.com/425441
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
               | 
            
            
              
   
               | 
              
dcab56a1
               | 
              
2017-01-05T14:47:34
               | 
              
               | 
              
Move some file utils to common.
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>
               |