Tracing was never allowed to happen because getStatus always returned
false. Also want to allow tracing for release builds for perf analysis.
Bug: angleproject:3176
Change-Id: I7aa94ed9fe3d7f67fe6dd10123c9badc7fb49d82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1475248
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@google.com>
Isolate variables better. And add a check for out-of-date hases.
Currently if a generator is removed the hashes will stick around.
Bug: angleproject:3227
Change-Id: I9b9da245b9b29093b1f3f320a81810cd7da82395
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1500575
Commit-Queue: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
SecondaryCommandBuffer is a CPU-side command buffer construct intended
to delay allocation/construction of GPU-side command buffers until
absolutely necessary.
Initially ANGLE was batching commands into Vulkan secondary command
buffers and then submitting those command buffers when rendering was
required. On at least some devices we saw two areas of overhead that
SecondaryCommandBuffers are intended to reduce:
1. Commands in secondary cmd buffers taking longer than equivalent
commands in a single primary cmd buffer.
2. Allocation/free/reset overhead of the secondary command buffers was
a hotspot for some workloads.
Bug: angleproject:3136
Change-Id: Ife8ffe2968eee423d89ff433d62596c432156661
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1492016
Commit-Queue: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@google.com>
Unpack as much of the binary steam as possible before passing the final loading
of the shader programs off to a worker thread. Reporting as many possible link
errors before becoming asynchronous means that linking should only fail due to
unexpected system issues at that point.
This also allows other backends to asynchronously load program binaries.
BUG=angleproject:2857
Change-Id: I587917a3e54522114dabd41d1b14fc491c8fd18a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1473451
Commit-Queue: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
To be specific regarding what being "shared" entails. Also, avoids
confusion w.r.t to an upcoming vk::Shared class.
Bug: angleproject:2464
Change-Id: Ib9c112bbb822ae30dab39c75a8cde25dd79b2258
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1499693
Reviewed-by: Jamie Madill <jmadill@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
This reverts commit fe14b2e503.
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 c63d95525c.
>
> 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>
Fixes the format table so the correct Vulkan format for the types are
generated. Additionally, implements CHROMIUM_copy_compressed_texture as
well as other functions relevant to initializing compressed textures.
Bug: angleproject:2670, angleproject:2904
Change-Id: I682d36574262525027cddf8f329515f38cd77dc0
Reviewed-on: https://chromium-review.googlesource.com/c/1468048
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
warningsAsErrors should be falsed on Windows 7 because we may
legitimately get a warning about loading the old d3dcompiler DLL on that
platform. The logic for this was reversed in the initial change. This
change flips the logic, changes the cutoff OS version, and always sets
the flag to something.
Bug: chromium:920704
Change-Id: Ibf8a7c9a48bffc183479b7614148d6c00c122a07
Reviewed-on: https://chromium-review.googlesource.com/c/1496015
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
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
Even though VK_EXT_queue_family_foreign is required by
VK_ANDROID_external_memory_android_hardware_buffer,
Pixel 2 PQ2A.190205.002 supports the latter but not the former.
Also print the names of unsupported extensions to ease debugging in the future.
Bug: angleproject:3121, chromium:857138
Change-Id: Ib1195153cfb74f079a93ee9ce93b9b78e6f6e00a
Reviewed-on: https://chromium-review.googlesource.com/c/1493114
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Applies to all Windows because we currently don't have a way to check
which version we're on. The fallback to the old compiler is generating
a warning. This test was being overly conservative. Also updates a few
message strings.
Bug: chromium:920704
Change-Id: If83677881e85d6a6f9ad98b33cd5f7d917bbec6b
Reviewed-on: https://chromium-review.googlesource.com/c/1492311
Commit-Queue: Jamie Madill <jmadill@google.com>
Reviewed-by: Jamie Madill <jmadill@google.com>
The workaround in https://chromium-review.googlesource.com/430887
was intended only for NVIDIA.
Re-creating the test window causes new native display to be created every time.
Normally, re-using the same native display with different implementation
would release the old implementation.
When new display is created instead of re-using the old one,
old implementation is never released, leaking memory.
Use SystemInfo to check if any of GPUs is NVIDIA
and apply the workaround only then,
reducing the leak on other platforms.
Bug: angleproject:1810, angleproject:3153
Change-Id: I6198c01c82a01e2adc0bcd1fad303c47cd7328d8
Reviewed-on: https://chromium-review.googlesource.com/c/1490379
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
ANGLE can use this library to output the test results format used by
the Chromium infrastructure. We have a rapidjson mirror located on
chromium.googlesource.com.
Also updates rapidjson to the latest version and adds GN integration.
Currently this library was unused in ANGLE.
Bug: angleproject:3162
Change-Id: Ie349026f68028e3acc46055655e321c2d710b828
Reviewed-on: https://chromium-review.googlesource.com/c/1487633
Commit-Queue: Jamie Madill <jmadill@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
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>
This reverts commit 9417174961.
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>
We now mirror the entire directory. Not just src.
Bug: angleproject:3151
Change-Id: Ifdf351f7fe7b227fc58d08ca3472c9adb9bbe5e7
Reviewed-on: https://chromium-review.googlesource.com/c/1487632
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This reverts commit c63d95525c.
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>
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>
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>
Previously they were only disabled on 64-bit windows, but a recent
change in ordering of the tests shows the same failures on 32-bit
windows too.
Bug: angleproject:3153
Change-Id: Ic40fb88ae335b3ce66d5c1c1cfeed83e52cf690d
Reviewed-on: https://chromium-review.googlesource.com/c/1483264
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
ANGLE calls WindowSurfaceVk::nextSwapchainImage() to prepare for
the next frame, which allocates an image (and other resources,
like semaphore). However, it's possible for
egl::Display::destroySurface() to be called before the next
submitFrame(), which prevents the image from being returned back
to the swapchain.
This fix refactors swapImpl() to separate out the present work, which
can be called as part of destroy() to return the allocated resources.
dEQP-EGL.functional.query_context.get_current_context.*
dEQP-EGL.functional.query_context.get_current_display.*
dEQP-EGL.functional.query_context.get_current_surface.r*
dEQP-EGL.functional.query_context.query_context.*
Bug: angleproject:3057
Change-Id: Ia943f2530e4f27d1a10ee907e810f0bbdb3bfa9a
Reviewed-on: https://chromium-review.googlesource.com/c/1474601
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
This is a workaround for Windows 7 users sometimes not having the UCRT
required for the new versions of the MS HLSL compiler. It requires a
specific version of the Windows SDK with the old compiler DLL.
Bug: chromium:920704
Change-Id: Id9adb3b9d569272cbd69a8b4fc99dc160d837dbc
Reviewed-on: https://chromium-review.googlesource.com/c/1403254
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Jamie Madill <jmadill@google.com>
Updates our build files to be more consistent with Chromium.
Also rolls SPIRV-Tools to use newer test fixture syntax.
Note: requires an update to SPIRV-Tools to pass 'gn check'.
Bug: angleproject:3151
Change-Id: I8abddef396f84e5c58cdd185421f03fd6e2b6d58
Reviewed-on: https://chromium-review.googlesource.com/c/1470591
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@google.com>
Vulkan _SRGB formats have a suffix of _UNORM_SRGB in the corresponding
angle name.
Vulkan A2B10G10R10_*_PACK32 formats have angle names in the form
R10G10B10A2_*.
A16 and A32 formats are emulated similar to A8.
Some formats that are not in the front-end are removed.
Bug: angleproject:2364, angleproject:2405
Change-Id: I00718f450a374912d57d3c00ea167ce486e10aa0
Reviewed-on: https://chromium-review.googlesource.com/c/1468042
Reviewed-by: Jamie Madill <jmadill@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
This reverts commit 902ceed399.
Reason for revert:
Re-landing this since the Chromium build fix has landed:
https://bugs.chromium.org/p/chromium/issues/detail?id=933783#c29
Comment 29 by gbeaty@chromium.org, Today (13 minutes ago)
Tim, you should be able to re-land your change now.
Original change's description:
> Revert "Create Container ANGLE APK"
>
> This reverts commit e82c857d38.
>
> Reason for revert:
> This is breaking the ANGLE build in the Chromium build process:
>
> https://bugs.chromium.org/p/chromium/issues/detail?id=933783#c6
>
> Original change's description:
> > Create Container ANGLE APK
> >
> > The ANGLE APK needs to be reverted back to just being a container
> > for the ANGLE shared object libraries, since the rest of the APK
> > contents are in the Android source tree.
> >
> > Bug: angleproject:3154
> > Test: 'adb sync' the APK on to a device
> > Change-Id: Id245f1e3d269c71054d9759e8ba8be0532afe659
> > Reviewed-on: https://chromium-review.googlesource.com/c/1474341
> > Commit-Queue: Tim Van Patten <timvp@google.com>
> > Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
>
> TBR=ynovikov@chromium.org,jmadill@google.com,cnorthrop@google.com,courtneygo@google.com,timvp@google.com
>
> Change-Id: I71a739faa2052a707a06bce616ab43a621d5a4ff
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:3154
> Reviewed-on: https://chromium-review.googlesource.com/c/1478333
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Commit-Queue: Tim Van Patten <timvp@google.com>
TBR=ynovikov@chromium.org,jmadill@google.com,cnorthrop@google.com,courtneygo@google.com,timvp@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: angleproject:3154
Change-Id: If3a9abfb1c00aab3278437a233bef29d5febe5a5
Reviewed-on: https://chromium-review.googlesource.com/c/1480865
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
If anisotropic filtering is used, the feature must be enabled at device
creation time. This was missing.
Bug: angleproject:2901
Change-Id: I86db55f8b1696dc04eae922b941512f786aa12b8
Reviewed-on: https://chromium-review.googlesource.com/c/1479264
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
These appear to be passing on the bots.
Bug: angleproject:1489
Change-Id: I1d672187f9bfe72189291309b90049fd128b1392
Reviewed-on: https://chromium-review.googlesource.com/c/1479903
Reviewed-by: Jamie Madill <jmadill@google.com>
Commit-Queue: Jamie Madill <jmadill@google.com>
This disables the ImageTest.SourceCubeTargetRenderbuffer test
that does not work on Fuchsia.
BUG=angleproject:2475, angleproject:3145
TEST=angle_end2end_tests on Fuchsia
Change-Id: I8e681926ee322642b39c32b3bc0cd266ffa1d11f
Reviewed-on: https://chromium-review.googlesource.com/c/1479283
Reviewed-by: Jamie Madill <jmadill@google.com>
Commit-Queue: Jamie Madill <jmadill@google.com>
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>
This reverts commit e82c857d38.
Reason for revert:
This is breaking the ANGLE build in the Chromium build process:
https://bugs.chromium.org/p/chromium/issues/detail?id=933783#c6
Original change's description:
> Create Container ANGLE APK
>
> The ANGLE APK needs to be reverted back to just being a container
> for the ANGLE shared object libraries, since the rest of the APK
> contents are in the Android source tree.
>
> Bug: angleproject:3154
> Test: 'adb sync' the APK on to a device
> Change-Id: Id245f1e3d269c71054d9759e8ba8be0532afe659
> Reviewed-on: https://chromium-review.googlesource.com/c/1474341
> Commit-Queue: Tim Van Patten <timvp@google.com>
> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
TBR=ynovikov@chromium.org,jmadill@google.com,cnorthrop@google.com,courtneygo@google.com,timvp@google.com
Change-Id: I71a739faa2052a707a06bce616ab43a621d5a4ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:3154
Reviewed-on: https://chromium-review.googlesource.com/c/1478333
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
To diagnose whether Windows Intel end2end tests flakiness
is related to creating debug device and new version of Windows SDK.
Bug: angleproject:3153
Change-Id: Ica7eae3fe875e22203b6dfd98b83604d66a97737
Reviewed-on: https://chromium-review.googlesource.com/c/1476954
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
The ANGLE APK needs to be reverted back to just being a container
for the ANGLE shared object libraries, since the rest of the APK
contents are in the Android source tree.
Bug: angleproject:3154
Test: 'adb sync' the APK on to a device
Change-Id: Id245f1e3d269c71054d9759e8ba8be0532afe659
Reviewed-on: https://chromium-review.googlesource.com/c/1474341
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
This reverts commit 5f662c0042.
Reason for revert: Some recent crashes related to streams, could be
related to this change.
https://bugs.chromium.org/p/chromium/issues/detail?id=932359
Original change's description:
> Fix unit test for setting locale creating malformed HLSL shader code
> Fix malformed HLSL shader code in other locales than classic
>
> Bug: angleproject:1433
> Change-Id: I30bad0bd0cfda465ec7200e48e12800d7d8efd26
> Reviewed-on: https://chromium-review.googlesource.com/c/1447862
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
TBR=geofflang@chromium.org,jmadill@chromium.org,jonahr@google.com
Bug: angleproject:1433
Change-Id: I28caa073b3996a95f3f233bed9dc91dc44263835
Reviewed-on: https://chromium-review.googlesource.com/c/1474624
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>