|
f9f18ef0
|
2019-04-03T10:07:18
|
|
Vulkan: Allow vertex-only pipelines
This allows issuing draw calls which only manipulate depth/stencil.
Bug: angleproject:3241
Change-Id: I62ab18a185ea5b234d3559f30c5b2b8ecb317bbb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1550900
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
91524d8c
|
2019-04-02T15:31:30
|
|
Disable Clear and TextureUpload perf tests on D3D11
The tests crash on Nvidia in the driver.
Bug: 945415
Change-Id: I0f635eb5d99ecaeeaff055793b1b5fd3a314b055
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1548440
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
4864e0cd
|
2019-03-26T13:57:55
|
|
Fix OOM in TextureUpload perf test
The test texture size is reduced from 2k x 2k to 1k x 1k to avoid OOM on
lower-memory devices.
Bug: 945415
Change-Id: I66611417114212427f0a2cfc677450f5e705a7ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1537331
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
50fb5cc9
|
2019-03-25T15:10:34
|
|
Disable GPU perf tracking on D3D
Causes crashes.
Bug: angleproject:3310
Bug: 945415
Change-Id: I59c5fee0afaf74c99ac19168fbfd96de04796add
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1534946
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
232bfeae
|
2019-03-18T23:39:54
|
|
Add perf test for texture upload gpu time
This perf test measures the GPU time spent uploading texture data.
Bug: angleproject:2361
Change-Id: I62fcf0e893fdcc9826a083e23320051a69559fab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1529922
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
12a1fe4a
|
2019-03-19T10:48:37
|
|
Add perf test for fbo clear gpu time
This perf test measures the GPU time spent clearing framebuffers.
Bug: angleproject:2361
Change-Id: I5dc2e12c08543330f7e2565596b73e9c2f4e53ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1529864
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
0f566fc7
|
2019-03-20T11:36:29
|
|
Introduce ConfigParameters test helper struct.
This allows us to more easily compare sets of parameters used in our
tests. The config parameters are stuff like the red / gree / blue bits
used in an EGL config. Or particular sets of extensions or other
EGL options.
This will more easily allow us to determine when we need to use a new
EGL display instead of reusing a prior.
Bug: angleproject:3261
Change-Id: Ia1f0ede988e0b4084fbb4d55097e94fd89ee4899
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1531535
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
eb986426
|
2019-03-18T15:02:18
|
|
Prefix glmark2 perf results with glmark2_
Bug: angleproject:3125
Change-Id: Ifa45d489cb082355a23f33f05f805e5f6162ac0c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1529232
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d25be8a1
|
2019-03-14T22:17:37
|
|
Use valid glmark2 test result names
Additionally, only one result is output from the tests. If running
every scene, only the final result is output.
Bug: angleproject:3125
Change-Id: I9592a6e07757663bfdd6653f541fece95c4b295b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1524695
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f576a708
|
2019-02-04T16:52:12
|
|
Add glmark2 to angle_perftests
Bug: angleproject:3125
Change-Id: I9242743c6b5c6e18d0a23ff853ef6b9b370865a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1452956
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
5546fb4f
|
2019-01-17T12:25:54
|
|
Vulkan:Adding custom pool allocator
Migrated pool allocator used by compiler to common.
Planning to use this for ANGLE custom command buffers so this some
refactoring in preparation for that work.
Added a unit test to check PoolAllocator functionality.
Bug: angleproject:2951
Reviewed-on: https://chromium-review.googlesource.com/c/1476953
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
Change-Id: I0b4f3d55ea1799e35c9799c221f7129233f30b24
Reviewed-on: https://chromium-review.googlesource.com/c/1492972
|
|
9f20dd77
|
2019-01-20T14:31:59
|
|
Add draw call perf test using 5 vertex arrays.
This should highlight problems with array buffer state changes even
more than the single attribute test.
Bug: angleproject:3014
Change-Id: I7f42ddb48f0f794fa279b81c8378dab8dc9db489
Reviewed-on: https://chromium-review.googlesource.com/c/1413788
Commit-Queue: Jamie Madill <jmadill@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0546b538
|
2019-02-25T22:47:17
|
|
Revert "Vulkan:Adding custom pool allocator"
This reverts commit 941717496141b96f1d5817f31c2bb4a4e19847b9.
Reason for revert: crashes on Debug bots
Original change's description:
> Vulkan:Adding custom pool allocator
>
> Migrated pool allocator used by compiler to common.
>
> Planning to use this for ANGLE custom command buffers so this some
> refactoring in preparation for that work.
>
> Added a unit test to check PoolAllocator functionality.
>
> Bug: angleproject:2951
> Change-Id: I29618cfdb065b8a5fefd40719a35d27b1f6e99ef
> Reviewed-on: https://chromium-review.googlesource.com/c/1476953
> Reviewed-by: Jamie Madill <jmadill@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Tobin Ehlis <tobine@google.com>
TBR=ynovikov@chromium.org,jmadill@google.com,tobine@google.com,syoussefi@chromium.org
Change-Id: Id8c522bd1d94154e871211d975e801a55cc9c257
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2951, angleproject:3169
Reviewed-on: https://chromium-review.googlesource.com/c/1487977
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
94171749
|
2019-01-17T12:25:54
|
|
Vulkan:Adding custom pool allocator
Migrated pool allocator used by compiler to common.
Planning to use this for ANGLE custom command buffers so this some
refactoring in preparation for that work.
Added a unit test to check PoolAllocator functionality.
Bug: angleproject:2951
Change-Id: I29618cfdb065b8a5fefd40719a35d27b1f6e99ef
Reviewed-on: https://chromium-review.googlesource.com/c/1476953
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
ffd39978
|
2019-02-20T10:45:24
|
|
test: Replace _TEST_CASE_ with _TEST_SUITE_.
Googletest is (at last) converging with industry-standard terminology
[1]. We previously called test suites "test cases", which was rather
confusing for folks coming from any other testing framework.
Chrome now has a googletest version that supports _TEST_SUITE_ macros
instead of _TEST_CASE_, so this CL cleans up some of the outdated usage.
[1] https://github.com/google/googletest/blob/master/googletest/docs/primer.md#beware-of-the-nomenclature
Bug: chromium:925652
Change-Id: Ia0deec0bc4216ef1adabc33985a7cbda89682608
Reviewed-on: https://chromium-review.googlesource.com/c/1477418
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Victor Costan <pwnall@chromium.org>
|
|
77874e2c
|
2019-02-13T09:15:06
|
|
Vulkan: Reduce Default Descriptor Pool Max Sets
The current value of kDefaultDescriptorPoolMaxSets is 2048, which
allocates too much memory on a Pixel device, causing Android's low
memory killer to terminate dEQP (leading to a test failure). This change
reduces the value of kDefaultDescriptorPoolMaxSets to 128 to reduce the
memory usage during the test. We suspect a later change may be required
to dynamically grow the descriptor pools and update the recycling
behavior.
This change also exposed a bug in the ANGLERenderTest where the swap()
call was being skipped for null devices. This was causing code that
ANGLE requires to clean up and re-use resources to be skipped. Enabling
the swap() call fixes this issue as well as improves performance for
the test overall. This does make comparing old performance values to new
difficult (if not entirely incorrect), so take care when doing so.
dEQP-EGL.functional.multicontext.non_shared_clear
Bug: angleproject:3056
Bug: angleproject:3135
Change-Id: Ibdfd3a5eb436a7ba4e45002ebef5809afe777af1
Reviewed-on: https://chromium-review.googlesource.com/c/1470830
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3571ad49
|
2019-02-06T12:24:19
|
|
Vulkan:Adding Cmd Buffer Reset tests
Resetting cmd buffers in various ways to understand VK driver perf on
various devices.
Also includes some changes to get the chromium APK wrapper for
angle_white_box_perftests compiling.
Bug: angleproject:3137
Change-Id: I56bd163cdd6605ce09effe509a9c7ac5e0008e7a
Reviewed-on: https://chromium-review.googlesource.com/c/1456482
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e1a763d1
|
2019-01-25T15:43:33
|
|
Vulkan: Implement basic barrier perf test
There's a lot more that can go into this perf test, but it requires
further work on the Vulkan back end.
Bug: angleproject:2999
Change-Id: Iea62bfd09639af108674dcf0a9e7c9d36ccddcef
Reviewed-on: https://chromium-review.googlesource.com/c/1437734
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
c09ae15c
|
2019-02-01T14:16:32
|
|
Enable -Wextra-semi and -Wextra-semi-stmt.
This will prevent users from accidentally making semicolon errors in
the future.
Bug: chromium:926235
Change-Id: I79a6fa376fb1ad8f0fcf1b65b1f572a035d1f4e9
Reviewed-on: https://chromium-review.googlesource.com/c/1446493
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4704eb02
|
2019-01-25T13:25:52
|
|
Add possibility to track GPU time in perf tests
This paves the way for perf tests that measure GPU performance.
Bug: angleproject:2999
Change-Id: I9d49d3e1256d8d18514885ae63264a5fbc5c29d1
Reviewed-on: https://chromium-review.googlesource.com/c/1436839
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
47ca1b2f
|
2019-01-23T16:11:41
|
|
Revert "Vulkan: Adding custom pool allocator"
This reverts commit 05459e06fde5047ae8f5f90fe091c3255e6bc88e.
Reason for revert: Clusterfuzz bugs flagged this commit
Original change's description:
> Vulkan: Adding custom pool allocator
>
> Copied pool allocator used by compiler to common and hooking it up as
> custom allocator for CommandPools. Modified it to support reallocation.
>
> RendererVk now has a private poolAllocator and VkAllocationCallbacks
> struct. The allocation callbacks are initialized to static functions
> in RendererVk::initializeDevice() and then passed to CommandPool init()
> and destroy() functions.
>
> Using the pool allocator saves Command Pool/Buffer clean-up time which
> was showing us as a bottleneck is some cases.
>
> Bug: angleproject:2951
> Change-Id: I81aa8a7ec60397676fa722d6435029db27947ef4
> Reviewed-on: https://chromium-review.googlesource.com/c/1409867
> Commit-Queue: Tobin Ehlis <tobine@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
TBR=jmadill@chromium.org,tobine@google.com,ianelliott@google.com,syoussefi@chromium.org
Change-Id: I363a351667c4dddef79833061790da90de477e70
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2951
Reviewed-on: https://chromium-review.googlesource.com/c/1430679
Reviewed-by: Tobin Ehlis <tobine@google.com>
Commit-Queue: Tobin Ehlis <tobine@google.com>
|
|
05459e06
|
2019-01-17T12:25:54
|
|
Vulkan: Adding custom pool allocator
Copied pool allocator used by compiler to common and hooking it up as
custom allocator for CommandPools. Modified it to support reallocation.
RendererVk now has a private poolAllocator and VkAllocationCallbacks
struct. The allocation callbacks are initialized to static functions
in RendererVk::initializeDevice() and then passed to CommandPool init()
and destroy() functions.
Using the pool allocator saves Command Pool/Buffer clean-up time which
was showing us as a bottleneck is some cases.
Bug: angleproject:2951
Change-Id: I81aa8a7ec60397676fa722d6435029db27947ef4
Reviewed-on: https://chromium-review.googlesource.com/c/1409867
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
5fe7c5b9
|
2019-01-17T12:16:34
|
|
Include common/platform.h where used
Bug: 922443
Change-Id: I35b9e34266d4a15f8d0769c2770801b1b0511398
Reviewed-on: https://chromium-review.googlesource.com/c/1418091
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
a100d8f4
|
2018-12-29T16:39:55
|
|
ParallelCompile: add GL backend support
For GL backend, at first each worker thread must have a naitve context
for its own to work in. These worker contexts have to be shared from
the main context, so that all shader and program objects are seen in
any context. This extends backend displays to create and destroy the
worker contexts. RendererGL manages and allocates them to the worker
threads. ShaderImpl has a new compile method added to do the actual
glCompile work in worker thread. The ProgramGL's link method is broken
down by introducing the LinkEventGL class.
Bug: chromium:849576
Change-Id: Idc2c51b4b6c978781ae77810e62c480acc67ebb5
Reviewed-on: https://chromium-review.googlesource.com/c/1373015
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
a3b64e86
|
2019-01-11T14:07:21
|
|
Fix skip for InterleavedAttributeDataBenchmark on GL.
Should be setting mSkipTest instead of calling abortTest().
Bug: 921004
Change-Id: I7bead806eef0c7825348d509a9dce7ed1bf34825
Reviewed-on: https://chromium-review.googlesource.com/c/1407250
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
92ee1f9f
|
2019-01-11T08:02:07
|
|
Suppress InterleavedAttributeDataBenchmark on GL.
This is timing out on Intel. Would be nice to narrow the suppression
but we don't have that check yet in perf tests.
Bug: chromium:921004
Change-Id: Icb8bf2d1222b9ff9790877dc051797a1291ad02b
Reviewed-on: https://chromium-review.googlesource.com/c/1406892
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3f0c4a56
|
2019-01-10T10:20:35
|
|
Vulkan: Faster state transitions.
Implements a transition table from Pipeline Cache entry to
state change neighbouring Pipeline Cache entries. We use
a 64-bit mask to do a quick scan over the pipeline desc.
This ends up being a lot faster than doing a full hash
and memcmp over the pipeline description.
Note that there could be future optimizations to this design.
We might keep a hash map of the pipeline transitions instead
of a list. Or use a sorted list. This could speed up the search
when there are many transitions for cache entries. Also we could
skip the transition table and opt to do a full hash when there
are more than a configurable number of dirty states. This might
be a bit faster in some cases. Likely this will be something we
can add performance tests for in the future.
Documentation is also added in a README file for the Vulkan back
end. This will be extended over time.
Improves performance about 30-35% on the VBO state change test.
Bug: angleproject:3013
Change-Id: I793f9e3efd8887acf00ad60e4ac2502a54c95dee
Reviewed-on: https://chromium-review.googlesource.com/c/1369287
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
f75e654d
|
2019-01-05T16:28:34
|
|
Add DrawElements on WGL perf test.
Bug: angleproject:2995
Change-Id: I3ed814935ba587d260502b664976322a57f32d98
Reviewed-on: https://chromium-review.googlesource.com/c/1396502
Reviewed-by: Jamie Madill <jmadill@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>
|
|
ad398ee8
|
2019-01-03T13:01:08
|
|
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>
|
|
4627b370
|
2019-01-02T18:38:32
|
|
Add gl null driver tests to DrawElements.
Requires a couple tweaks to the back-end to be compatible with the
null driver.
Bug: angleproject:2966
Change-Id: Ia83651aabb0dd14b7d6f64152c276463a8fb28fc
Reviewed-on: https://chromium-review.googlesource.com/c/1392392
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@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>
|
|
720ca449
|
2018-12-17T14:04:10
|
|
Pass GN header visibility check.
This fixes a few things:
* removes includes that weren't supposed to be present
* scopes some compiler code into white_box_perftests
* makes version.h/commit and angle_common id more visible
* roll zlib to a version that passes check
This should help prevent build problems from popping up in the
downstream Chromium build. We could also potentially look at
including gn check in our CQ recipe.
Bug: chromium:915429
Change-Id: I350f543e16de13c84eb2c43260f4966d47185114
Reviewed-on: https://chromium-review.googlesource.com/c/1380771
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
828c5946
|
2018-12-13T23:09:05
|
|
Split angle_perftests into white and black box.
The black box version tests traditional GL API features. The white box
version is designed to test internal classes and uses a static link
against libANGLE and libGLESv2. The black box version will also be
extendable to test native drivers directly instead of going through
ANGLE.
Bug: angleproject:2995
Change-Id: I0b672db37ed38f82157c7a1db70080ff539337ce
Reviewed-on: https://chromium-review.googlesource.com/c/1359515
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
611bbaab
|
2018-12-06T01:59:53
|
|
Vulkan: Convert vertex attributes in compute
In this commit, VertexArrayVk::convertVertexBuffer() is renamed to
VertexArrayVk::convertVertexBufferCpu() to explicitly show it does a CPU
readback. A new VertexArrayVk::convertVertexBuffer() function is added
that has the same functionality in gpu (with some assumptions, where the
CPU fallback is used should those assumptions fail). Currently, the
only requirement is that buffer offset/stride are divided by the
component size.
ConvertVertex.comp is the shader responsible for this conversion, and it
implements the functionality in renderer/copyvertex.inc, minus a few
functions that are not used in the Vulkan backend.
Bug: angleproject:2958, angleproject:3009
Change-Id: I8ec9a5f4672509bcf7b9e352cd27663970ad4653
Reviewed-on: https://chromium-review.googlesource.com/c/1364451
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
7c985f5c
|
2018-11-29T18:16:17
|
|
Make angle::Result an enum.
This moves away from a class type to a value type. This should improve
performance when using angle::Result as a return value. Previously the
generated code would return a pointer instead of a value.
Improves performance in the most targeted microbenchmark by 10%. In
more realistic scanarios it will have a smaller improvement. Also
simplifies the class implementation and usage.
Includes some unrelated code generation changes.
Bug: angleproject:2491
Change-Id: Ifcf86870bf1c00a2f73c39ea6e4f05ca705050aa
Reviewed-on: https://chromium-review.googlesource.com/c/1356139
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
35cd7332
|
2018-12-02T12:03:33
|
|
Refactor test shader style.
This change enforces a lot more consistency. We pass const char * to
the Compile functions instead of std::string. Also fixes the
indentation of C++11 block comments to be more consistent.
Bug: angleproject:2995
Change-Id: Id6e5ea94055d8cbd420df4ea2e81b2d96cb5ce78
Reviewed-on: https://chromium-review.googlesource.com/c/1357103
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8dc27f99
|
2018-11-29T11:45:44
|
|
Use packed enum for DrawElementsType.
The packing and unpacking take a few extra instructions. But it
completely obviates the need for any switches in the validation code.
Speed is slightly faster or the similar depending on the back-end.
Also add gl_angle_ext.xml to GL entry point generator inputs. This was
missing and would cause the code generation to miss certain changes.
Bug: angleproject:2985
Change-Id: I1ea41a71db71135000166ead8305ec42d22ff7b3
Reviewed-on: https://chromium-review.googlesource.com/c/1351729
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4f6592fa
|
2018-11-27T16:37:45
|
|
Remove gl::Error.
Removes several TODOs. Only egl::Error remains.
Also slightly decreases binary size.
Bug: angleproject:2491
Change-Id: I3a9d1c22eb0884ca9e37362463fddd0083faf826
Reviewed-on: https://chromium-review.googlesource.com/c/1337462
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@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>
|
|
ab130438
|
2018-11-20T14:09:50
|
|
Skip SetUp and TearDown in VulkanCommandBufferPerfTest if its flaky.
BUG=angleproject:2923
Change-Id: Id201efa09bcc67d4e40154e2362bf4b78ffd5652
Reviewed-on: https://chromium-review.googlesource.com/c/1344591
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0e604f9f
|
2018-11-19T21:33:25
|
|
ANGLE Perf Test fixes.
Includes the following fixes:
* Removes obsolete global variable.
* Disables trace event collection when trace events disabled.
* Fixes calibrated steps getting stuck after first test.
* Scale calibrated steps with actual time after glFinish.
Should fix a few crashes and timeouts with the perf tests.
Bug: angleproject:2923
Change-Id: I9ba1c042dee31cf2400ccbeedca0d497ed52fb12
Reviewed-on: https://chromium-review.googlesource.com/c/1343677
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c30f45d3
|
2018-11-12T16:37:59
|
|
Vulkan: Rename PipelineDesc/Cache to Graphics&
PipelineDesc describes a Vertex-Fragment pipeline and PipelineCache (not
to be confused with vk::PipelineCache) implements a cache of such
pipeline objects.
In preparation for Compute support, these data structures are prefixed
with Graphics.
Bug: angleproject:2959
Change-Id: I9181586fb946b787216ca0b2ad6340f90c3ab55f
Reviewed-on: https://chromium-review.googlesource.com/c/1333971
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f3acb8c1
|
2018-11-14T16:24:25
|
|
Retool perf test running.
This change does a few things involving the way we run the perf tests:
- Perf test runner can capture different metrics
Useful for capturing the new "nanoSecPerIteration" metric.
- Removes the "score" metric
We'll move to the new time-based metrics. These new metrics are scaled
correctly with iteration counts.
- Runs three trials per perf test
This gives more measurements per test. Each trial is approximately one
second. First the perf tests set a fixed number of iterations after
calibrating the number of steps that we can run in one second. After
that the three trials are run. This should give more stable results.
- Apply more CPU stabilization on Windows
Use SetPriorityClass to apply more CPU priority. Also upgrade
SetThreadPriority to the highest level.
- Always build the Vulkan command buffer test
This catches build regressions more easily. We still skip the test on
non-Android platforms.
Bug: angleproject:2923
Change-Id: I7da234c5af07775ba4a232bb8d65e0138ee7073f
Reviewed-on: https://chromium-review.googlesource.com/c/1330262
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
caeb1e89
|
2018-11-01T18:13:22
|
|
Vulkan: Allow unlimited simultaneous descriptor sets.
This changes the fixed array into a STL vector. Instead of storing
Descriptor Pools by value we now store them by pointer. This allows the
vector to resize without changing the address of the Descriptor Pool.
Also enables some more Vulkan perf tests that were crashing before.
Bug: angleproject:2938
Change-Id: I8a88d5315b941c4f54205a9957e2834fe02ada84
Reviewed-on: https://chromium-review.googlesource.com/c/1311395
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6bf09284
|
2018-10-31T13:45:32
|
|
Scale down a slow index buffer perf test.
This test was slow enough that running 20k iterations might have been
causing a timeout on the Nexus 5.
Bug: angleproject:2923
Change-Id: I03f6e95135d8c521e6ef3e81bc9a4b0dfd7f19df
Reviewed-on: https://chromium-review.googlesource.com/c/1310693
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
557a1ee4
|
2018-10-30T17:26:24
|
|
Make perf tests faster in correctness-only mode.
When running with "--one-frame-only" we can also skip the test warmup.
Also we can reduce the internal iteration count to 1 to make the tests
as fast as possible.
Bug: angleproject:2923
Change-Id: I2f82ae0dd237767ea7b15074e459ed1094ba9943
Reviewed-on: https://chromium-review.googlesource.com/c/1308737
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
3402d523
|
2018-10-30T15:14:52
|
|
Try to reduce variance in angle_perftests.
This change does a few things:
- make perf test runner script print % variation instead of stddev
This makes it a bit more clear how much variance there is.
- stabilize CPU in the render perf tests
Setting a thread affinity and priority should stop from switching cores
during the run. Hopefully can prevent background noise from changing
the test results.
- warm up the benchmark with a few iterations
This should hopefully make the test results a bit more stable.
- output a new normalized perf result value
The new result is normalized against the number of iterations. So it
should hopefully be stable even if the number of iterations is changed.
- increases the iteration count in the draw call perf tests.
These tests were completely dominated by SwapBuffers time. Increasing
the iterations per step means we actually are bottlenecked on CPU time
instead.
Bug: angleproject:2923
Change-Id: I5ee347cf93df239ac33b83dc5effe4c21e066736
Reviewed-on: https://chromium-review.googlesource.com/c/1303679
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
0ea96210
|
2018-10-30T15:14:51
|
|
Vulkan: Enable more perf tests.
Also fixes the check for the correct UINT index extension that wasn't
available on Vulkan. Also includes a workaround for the mock ICD not
implementing buffer state for index ranges.
Bug: angleproject:2923
Change-Id: Iab35809d15f890525a9e658d4148272c46cf1320
Reviewed-on: https://chromium-review.googlesource.com/c/1308733
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
25224e78
|
2018-10-22T11:56:02
|
|
Vulkan: add GPU trace events
RendererVk now tries, as best as it can, to match the CPU and GPU timers
on init as well as every finish(). A clock-sync event is generated for
each such synchronization point.
RendererVk::traceGpuEvent() is a new function that, given a command
buffer, performs timestamp queries corresponding to GPU events. These
queries are read back when done, without incurring GPU bubbles, at which
point an event is generated with that timestamp.
Bug: angleproject:2908
Change-Id: I08d7d11ff9f8ad6c9f9a9899767c9cd746d0623e
Reviewed-on: https://chromium-review.googlesource.com/c/1296954
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
ae108bd1
|
2018-10-18T15:00:38
|
|
Use angle::Result in front-end (Part 5)
Refactors gl::Buffer and implementation.
Bug: angleproject:2491
Change-Id: Ic6860dac2faf33067965e7117ea8e98dc6a8dc7a
Reviewed-on: https://chromium-review.googlesource.com/c/1283310
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4024e217
|
2018-10-17T14:53:29
|
|
perftests: Record trace events to JSON file.
This allows us to view the timeline of events in the trace event
browser. We can extend this to do GPU timestamp queries and analyze
when work is actually in flight.
The trace is enabled in standalone ANGLE only using the flag
--enable-trace with angle_perftests. You can also optionally specify
the trace output file with --trace-file <blah>. The default file is
ANGLETrace.json.
Bug: angleproject:2781
Change-Id: I871f28545d9bf18220b55aaf69e9554dcb4c834d
Reviewed-on: https://chromium-review.googlesource.com/c/1259763
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
d633b156
|
2018-10-04T23:34:31
|
|
Get rid of VertexFormatType.
The enum VertexFormatType is redundant with angle::FormatID. The Vulkan
back end has already eschewed VertexFormatType, this change updates the
D3D back ends.
BUG=angleproject:2531
Change-Id: I67ea2203ca80be828f4c757a37810fe67a279364
Reviewed-on: https://chromium-review.googlesource.com/c/1263899
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Frank Henigman <fjhenigman@chromium.org>
|
|
996628a4
|
2018-09-24T16:39:26
|
|
Vulkan: Add support for VkPipelineCache
The cache is initialized from the application's blob cache and is
occasionally written back to it for disk storage.
Bug: angleproject:2516
Change-Id: I4cba4b00a7b9641c2983ef07159bc62cd10a5519
Reviewed-on: https://chromium-review.googlesource.com/1241373
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d6781dce
|
2018-08-23T10:51:06
|
|
Extend LinkProgramPerfTest to support compile only
Add an option for "compie_only" and "compile_and_link".
Bug: chromium:849576
Change-Id: Id796ebb85ad5aff1a5272173f11ce2ff42685dce
Reviewed-on: https://chromium-review.googlesource.com/1186159
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
ac6d90ea
|
2018-08-21T13:10:36
|
|
Add more test param documentation to perf tests.
Also add links from other pages.
Bug: angleproject:1944
Change-Id: I344ce075973bd45942d52b819385cb74a5a073ca
Reviewed-on: https://chromium-review.googlesource.com/1183629
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
de8d4cb0
|
2018-08-21T12:58:19
|
|
Optimize BindingsBenchmark::drawBenchmark.
Fix contributed by matavenrath@nvidia.com.
This fixes BindingsBenchmark::drawBenchmark to take only 3% instead of
15% of the time spent in
BindingsBenchmark.Run/gl_100_objects_allocated_at_initialization.
Bug: angleproject:2777
Change-Id: I5b5b6f167289b947767b40e7761d90cf06c49816
Reviewed-on: https://chromium-review.googlesource.com/1181868
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ea926a36
|
2018-08-10T15:22:30
|
|
Add angle_perftests README file.
Bug: angleproject:1944
Change-Id: I93f363dc5fb6096baec01584bbd2fb525a84909c
Reviewed-on: https://chromium-review.googlesource.com/1171502
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ec1fe5b7
|
2018-08-10T10:05:52
|
|
D3D: Use angle::Result error pattern.
This completes the refactor for the D3D9/D3D11 back-ends.
Bug: angleproject:2752
Change-Id: Ie35a925f75c902d8f9fdab6bc33b3bb9c937f85b
Reviewed-on: https://chromium-review.googlesource.com/1167209
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
077cd858
|
2018-08-06T10:46:22
|
|
Vulkan: Introduce Command Buffer Perf Test
Implemented command buffer performance test based on
LunarG samples. Includes a lot of utility functions and
should build/run on Linux, Android
Bug: angleproject:2758
Change-Id: I8606802fb3e8e0621856860c45ef50ba836c26f8
Reviewed-on: https://chromium-review.googlesource.com/1162119
Commit-Queue: Omar El Sheikh <theoking@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f2c6faf5
|
2018-08-09T10:54:08
|
|
Remove some Vulkan perftest configs.
We don't support ES 3.0 or ES 3.1 in Vulkan yet. Remove Vulkan configs
from tests that don't support the higher features levels. We can
re-add them once we improve Vulkan support.
Bug: angleproject:2604
Change-Id: Icca57b5ec696aaeb2a571b79cd1a7869f806c176
Reviewed-on: https://chromium-review.googlesource.com/1169306
Reviewed-by: Omar El Sheikh <theoking@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
cc1dc5ee
|
2018-08-07T15:27:49
|
|
Add a perf test for draw calls with texture changes.
This perf test highlights the performance hotspots with
State::syncProgramTextures.
Also includes a fix to the perf test runner script.
Bug: angleproject:2763
Change-Id: I69ffa0cc0d5e023944495b7a1c844770a54f7ddc
Reviewed-on: https://chromium-review.googlesource.com/1166041
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
1bd4bfb0
|
2018-08-03T14:24:22
|
|
Add draw call perf tests that use the driver.
Also moves some code to the cpp.
Bug: angleproject:2747
Change-Id: I38468e6276d52d11d5751df6917c66f15ae61246
Reviewed-on: https://chromium-review.googlesource.com/1163822
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
|
|
854429de
|
2018-07-27T08:12:48
|
|
D3D: Return error from getVertexSpaceRequired.
This removes another use of the gl::ErrorOrResult pattern. Unblocks
error refactoring.
Bug: angleproject:2738
Change-Id: Ib611a3b68f8995469befd51797dfed34eaeee84e
Reviewed-on: https://chromium-review.googlesource.com/1151450
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
b1565903
|
2018-07-27T08:12:48
|
|
D3D: Pass gl::Context to many more functions.
This makes the Context more available for logging errors.
Also includes more refactoring to VertexDataManager to ensure we can
access the gl::Context.
Bug: angleproject:2738
Change-Id: Iae3d22a1403078d236bfe63a3e2d203c13678dc4
Reviewed-on: https://chromium-review.googlesource.com/1151449
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
eb4b8697
|
2018-07-17T10:55:40
|
|
Introduced eglMakeCurrent Perf Test
Currently disabled test on android
Also made the default EGL device type be
EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE
Updated destroy function of RendererVk to properly
reset the mMemoryProperties member variable
Bug: angleproject:2735
Change-Id: Ie1f8ab1ac93b18eda4c10c3b10ecd4756f1d8543
Reviewed-on: https://chromium-review.googlesource.com/1140508
Commit-Queue: Omar El Sheikh <theoking@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
0359b697
|
2018-07-23T17:22:00
|
|
Vulkan: Check mInFlightCommands doesn't grow too fast
The mInFlightCommand vector could grow faster than
the GPU can complete tasks. Check for this edge case
and give the GPU a chance to catch up with work.
Also allows us to enable performance tests for Draw
Calls on vulkan since it was affected by this limit
check before.
Bug: angleproject:2742
Change-Id: I66a86ea6b5300fa3d74b07dc341aa597824b5f09
Reviewed-on: https://chromium-review.googlesource.com/1147607
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@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>
|
|
efaa09fd
|
2018-06-27T15:40:21
|
|
Enabled Vulkan backend on as many tests as possible
Bug: angleproject:2694
Change-Id: I299d71e0857065d0f60204977d395793f921deaa
Reviewed-on: https://chromium-review.googlesource.com/1117702
Commit-Queue: Omar El Sheikh <theoking@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
4fef7738
|
2018-05-29T15:21:41
|
|
Add perf test for Error/Result class.
This is a performance test that stresses the Error class. It also is
used in tests for the new Result class.
Bug: angleproject:2575
Change-Id: Ie23c2a1ea74108d2ba72bf26f1db04e14f7eda64
Reviewed-on: https://chromium-review.googlesource.com/1077129
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
18e323ab
|
2018-05-11T16:54:17
|
|
D3D11: Fix out-of-range access with robust access.
When using a vertex buffer with DYNAMIC usage, with robust buffer
access enabled, we would sometimes read out-of-bounds when using very
large values for the index range. An unchecked signed addition would
overflow and lead to reading a negative offset.
Fix this problem by keeping the value size_t whenever possible. Also do
clamped casts when converting to a smaller values.
Also adds a regression test.
Bug: chromium:842028
Change-Id: Ie630ac857c6acfc0bace849a03eebfbaa2fbe89a
Reviewed-on: https://chromium-review.googlesource.com/1055928
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c6dbc253
|
2018-04-30T19:07:56
|
|
Scope ANGLE_UNUSED_VARIABLE.
Renames the macro to be more ANGLE-ey.
Refactoring only.
Bug: angleproject:1671
Change-Id: I8f2dd227c7e2025886ec66e85efa877ea261d0ad
Reviewed-on: https://chromium-review.googlesource.com/1036209
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5cf4d06c
|
2018-03-29T13:33:18
|
|
Further reduce number of uniforms in UniformsBenchmark.Run/gles_matrix
Because Perf bots have Android K with worse driver than GPU.FYI Android L
BUG=angleproject:2431
Change-Id: I9b7a7d34f64a9832c57f9d26573b7c63594e1773
Reviewed-on: https://chromium-review.googlesource.com/986653
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
a3b220f3
|
2018-03-06T16:22:13
|
|
Vulkan: Adding null driver as device option
Bug: angleproject:2159
Plumbing to allow VK Mock ICD to be selected as the Vulkan driver.
Adding new ANGLE env var "ANGLE_VK_ICD_JSON" to point to json file
of mock ICD in angle and use this to override Vk loader ICD search
path.
At Vulkan renderer initialization time, enable the Mock ICD if device
is EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE.
Default physicalDevice is still the first detected device.
If Mock ICD is requested but not available, fall back to the first
device that was detected.
Added a VULKAN_NULL() testing config that uses Vulkan as renderer but
NULL as device. Turned on Vulkan NULL testing for DrawCallPerf.
Change-Id: I04e15c14e998448f8c98f9fd72e796389f297993
Reviewed-on: https://chromium-review.googlesource.com/961494
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3988f34e
|
2018-03-16T16:38:33
|
|
ES31: Add DispatchCompute perf tests
BUG=angleproject:2265
TEST=angle_perftests
Change-Id: Iad93eb3e8339c8a766b25416b28102cc54d648b8
Reviewed-on: https://chromium-review.googlesource.com/967686
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
26ed93d7
|
2018-03-23T20:06:17
|
|
Reduce number of uniforms in UniformsBenchmark perf test
To fit Nexus 5 limit.
BUG=angleproject:2431
Change-Id: I2184a28c19ecadb8d7f2e8ba682fc6c4e382210e
Reviewed-on: https://chromium-review.googlesource.com/979154
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
1b14d7ce
|
2018-03-14T14:40:19
|
|
VertexArray: Add perf tests for VAO dirty bits.
This simple perf test already in the source does a great job at this.
Bug: angleproject:2389
Change-Id: I94ff14e0eab1cb49a8d19725056ad8f7f008ac05
Reviewed-on: https://chromium-review.googlesource.com/962962
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
ceb7190b
|
2018-02-05T15:18:47
|
|
Vulkan: Fix bug in reuse of vertex input bindings
Fix bug that used previously used vertex bindings. Now we
use the current program mask to only initialize the vulkan
pipeline with the active vertex input bindings.
+ adjust dEQP expectations
Bug: angleproject:2334
Change-Id: Ie6176eee99f87dc7a95f664d28e8312b9cb274bc
Reviewed-on: https://chromium-review.googlesource.com/902434
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@chromium.org>
|
|
bfeed4dd
|
2018-02-06T16:39:29
|
|
Add a compiler perf test shader to stress traversers
Add a compiler perf test that's targeted at AST traversers. It
triggers many traversers that mutate the AST and run multiple
iterations particularly on the HLSL backend.
BUG=angleproject:827
TEST=angle_perftests
Change-Id: I75d89e8ae0fd7959f2c7fbb133c13ccde22abc37
Reviewed-on: https://chromium-review.googlesource.com/904622
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
5dd4ad89
|
2018-01-29T13:53:43
|
|
Vulkan: Add a perf test for the Pipeline cache.
This micro-benchmark can be used to measure the performance impact
of changing the Pipeline cache. For instance, we can check if changing
the size of the hash key affects performance significantly.
Also updates the build files so angle_perftests can see vulkan.h, and
makes the Vulkan headers an explicit source set.
This test currently shows that a lot of time is spent in PMurmurHash,
with some time also spent in memcmp.
Bug: angleproject:2163
Change-Id: Ie8bb3e31d58590f373d28cbbb59f7e372b80cc29
Reviewed-on: https://chromium-review.googlesource.com/884882
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
1436d434
|
2018-01-24T14:38:22
|
|
Add a simple compiler perf test
The perf test initializes the compiler once and then translates the
same shader to HLSL, GLSL or ESSL repeatedly.
There are three variations of the test compiling different shaders.
One is a real-world shader.
BUG=angleproject:2267
TEST=angle_perftests
Change-Id: Ie07b67d7548d105c4c93dff3b6196233d83b5b8c
Reviewed-on: https://chromium-review.googlesource.com/883784
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
17e3d2d5
|
2018-01-24T16:07:48
|
|
Vulkan: Add draw call perf test with a state change.
Bug: angleproject:2163
Change-Id: I3976af162ee669d0c98625fc69efb7fbd02c7e45
Reviewed-on: https://chromium-review.googlesource.com/883611
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
adcf0ae6
|
2018-01-24T08:27:37
|
|
Replace all NULL with nullptr
Bug: angleproject:1695
Change-Id: Ide0591ffdad5815385a4d805b320a32533bcc03a
Reviewed-on: https://chromium-review.googlesource.com/883681
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Luc Ferron <lucferron@google.com>
|
|
c801e359
|
2017-11-21T13:53:48
|
|
Add configurations of the TexturePerf benchmark that use robust init.
BUG=angleproject:2188
Change-Id: Ia23b54044a85435c761478bceeb9aac961fac0d1
Reviewed-on: https://chromium-review.googlesource.com/783230
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
578b51fd
|
2017-11-20T16:13:34
|
|
D3D: Add helper for index translation type.
This makes it a bit simpler to work with the prepareIndexData method.
Also removes the mRendererClass member of the index data manager
since it was no longer necessary.
BUG=angleproject:2229
Change-Id: I03768b104da21f57c499239bbbb5f716efb0fd48
Reviewed-on: https://chromium-review.googlesource.com/765261
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
be0e2c0c
|
2017-11-20T11:38:16
|
|
Fix type conversion warnings
Warnings about implicit type conversions were showing up as errors on
MSVS 2017.
TEST=build with MSVS 2017
Change-Id: I5f173a6838da16e96fad134756d31f56890c147b
Reviewed-on: https://chromium-review.googlesource.com/778841
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
8957b6c0
|
2017-11-14T12:40:38
|
|
Add perf test for ushort DrawElements.
The code path in the D3D11 back-end is sigificantly different for
unsigned short indices vs unsigned int. Because of the workaround we
have for the primitive restart index in D3D11, ushort rendering can
be slower.
BUG=angleproject:2229
Change-Id: I303dcc55b0314ec45508044995ba47b250cbb87d
Reviewed-on: https://chromium-review.googlesource.com/767149
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
336129f6
|
2017-10-17T15:55:40
|
|
Use a packed enum for buffer targets.
BUG=angleproject:2169
Change-Id: I4e08973d0e16404b7b8ee2f119e29ac502e28669
Reviewed-on: https://chromium-review.googlesource.com/723865
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e3bfefb4
|
2017-11-10T16:22:37
|
|
Align float access in InterleavedAttributeData perf test
Used to crash on arm because of unaligned float access in positionColorData
BUG=chromium:675997
Change-Id: Iadc705986700248ce3cff9bb33fcd72c94ad1c59
Reviewed-on: https://chromium-review.googlesource.com/764688
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
b8d2664f
|
2017-10-27T18:14:14
|
|
Run angle_perftests on GLES backend
Adds OPENGLES_NULL configuration
and selects between OPENGL and OPENGLES based on whether building for Android.
Also 2 small changes to get the newly enabled tests to pass on N5X:
1. Require GL_EXT_texture_storage in TexSubImage test
2. Limit numVertexUniforms and numFragmentUniforms to 64 in MatrixUniforms test
BUG=675997
Change-Id: I5439e5fb7e93b3a928f12594761115d56f60d81b
Reviewed-on: https://chromium-review.googlesource.com/748522
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
c4f1dd83
|
2017-10-25T17:02:29
|
|
Use angle::BitSetIterator optimizations on arm64 as well
Previously were enabled only on x86_64.
Also change from using target_cpu to current_cpu, as the doc recommends.
BUG=angleproject:1814
Change-Id: Ia7e8e930c76aab5cfb47b75e0ec78902ab313237
Reviewed-on: https://chromium-review.googlesource.com/737438
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
7478ce7f
|
2017-10-13T13:19:07
|
|
D3D11: Minor Optimization to DrawCallNeedsTranslation
Remove IsStreamingIndexData from DrawCallNeedsTranslation since
IsStreamingIndexData is only needed for drawElementsIndirect for fast path.
This change gives about a 4% improvement on the drawElements benchmark for
the D3D11 backend with the null driver.
BUG=angleproject:1155
Change-Id: Ife2a9748f6b6fe9bc1f3a67c96672ab941a89d44
Reviewed-on: https://chromium-review.googlesource.com/717946
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0a6752e3
|
2017-10-17T22:59:09
|
|
Use default window size in RenderTestParams.
This fixes a D3D11 runtime warning in perf test init. We don't
see it on the bots because we don't typically enable the D3D11
runtime.
BUG=angleproject:2188
Change-Id: I512db7d5a34204f1d94e28d80cadb18f9b17e55f
Reviewed-on: https://chromium-review.googlesource.com/724738
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2e568cfb
|
2017-09-18T17:05:22
|
|
Add generator for packed GL enums.
For testing this also converts two unimportant GLenums, gl::BufferUsage
and gl::CullModeFace.
BUG=angleproject:2169
Change-Id: If1e86a97d0fed3fd567303aca6506ec579503076
Reviewed-on: https://chromium-review.googlesource.com/688000
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
981f0f8f
|
2017-09-21T09:07:41
|
|
Add flag to do a fast pass through perf tests.
This flag will only render the first frame of each perf test,
regardless of their preferences for how many seconds to run.
It will be useful for speeding up the run time of the perf tests
on testing infrastructure that only cares about correctness.
BUG=chromium:725308
BUG=chromium:765321
Change-Id: I926f488c42f27ef23ef06a0159902613cff04080
Reviewed-on: https://chromium-review.googlesource.com/677306
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
33510107
|
2017-09-20T10:39:18
|
|
Pass gl::Context to more Buffer methods.
This will allow us to pull out the Renderer from the Context in more
places in Buffer11, for state update. Impacts a few method calls in
a few places.
BUG=angleproject:2151
Change-Id: I1360caea65a94d3de4cd9f52d1b74b10439b02b3
Reviewed-on: https://chromium-review.googlesource.com/673136
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a20af6d7
|
2017-09-18T13:32:29
|
|
Use C++11 raw string literals instead of SHADER_SOURCE macro
This is better in many ways:
1. It doesn't confuse clang format
2. \n doesn't need to be included after preprocessor directives like
the version directive.
3. It's using built-in functionality instead of something custom.
Raw string literals should be the preferred way to include shader
source in C++ files going forward.
BUG=angleproject:2157
TEST=angle_end2end_tests
Change-Id: I8b236a6e2d5c25d920297e5bc5b5b143eddeba1f
Reviewed-on: https://chromium-review.googlesource.com/671046
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
71c88b31
|
2017-09-14T22:20:29
|
|
Enable [[nodiscard]] for gl::Error.
This forces all return values to be checked for gl::Error.
Requires quite a bit of minor refactoring. I also added a macro to
swallow an error without returning from a function.
We could look at storing the errors in the Context at some point,
since almost always when we're generating errors that we need to
discard we have access to the Context as a parameter.
BUG=angleproject:2150
Change-Id: I457e48a30c002eda0993acbcd3180ba87bf169fb
Reviewed-on: https://chromium-review.googlesource.com/665173
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|