This leaves the old configs in place. We can't remove them
until the CQ bots switch over.
Bug: angleproject:6496
Change-Id: Id9ee70cfd65cd85a7525b42f08d78873f31a7cd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226301
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Per the Vulkan spec:
> ... when a semaphore wait operation is submitted to a queue:
>
> - A binary semaphore must be signaled, or have an associated semaphore
> signal operation that is pending execution.
It is incorrect for ANGLE to defer the submission that signals an
external semaphore, because then it's impossible for the application to
know when it can wait on the semaphore.
Bug: angleproject:6574
Bug: b/172704839
Change-Id: I5469b500b2f7d402acec31d9848585a9947843c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226308
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
During capture/replay the number of supported binary formats is set to
zero, so the test can't run successfully, hence skip it.
Bug: angleproject:6559
Change-Id: Iabff38669bd6bbbbec770888ae940be3961b136e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220633
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
EXTBlendFuncExtendedDrawTest.FragData/* has started flaking for an
unknown reason. This test has multiple suppressions for the Vulkan
backend on different hardware.
Bug: angleproject:6585
Change-Id: I7b97c8210a0846bbc6935812fcad743291c516be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3230522
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
This reverts commit 701e8892f4.
Reason for revert: Chromium dependency fixed in http://crrev/c/3214440
Original change's description:
> Translator: Remove the SH_VALIDATE flag
>
> The SH_VALIDATE flag is a noop, defined as zero (0).
>
> Also move option descriptions up in the file.
>
> Bug: angleproject:6501
> Change-Id: I898106eb68b4508d8f94534cbff66652a69f4f3e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3207360
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Bug: angleproject:6501
Change-Id: I4d1514d6ac04e5bedf3624facf8e9339828fa291
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3229955
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
The map of R8G8B8_UNORM -> VK_FORMAT_R8G8B8_UNORM is missing from
vk_format_map.json. This leads to attempting to get format bits for
angle::FormatID::NONE / VK_FORMAT_UNDEFINED.
This CL adds R8G8B8_UNORM to vk_format_map.json, so devices that support
it, like ARM, can use it. This allows those devices to import AHBs
created with R8G8B8_UNORM.
This CL also adds some additional ASSERT() and UNREACHABLE() calls to
catch missing formats sooner.
This allows the EGL tests to pass on ARM devices, but the tests are
still skipped due to Qualcomm not having the necessary support for
optimal tiling.
Bug: angleproject:6277
Test: dEQP-EGL.functional.image*
Change-Id: I41b7ead97a10ae80be4b6048d36d0d85ad71784f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204152
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Instead of recompiling multiple source files, we can seal off the
files that include commit_id to prevent recompilations when the
commit changes and source files don't change.
Bug: angleproject:2551
Change-Id: I98800c5a8e04ec7d4c3e57ea0eb3b636d3b224bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212895
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
This change optimizes CPU performance by recycling semaphores used for
ANI instead of creating and deleting them every frame.
Bug: angleproject:6580
Change-Id: I151ea227870ed7b8bd123cbf629a65723c4696d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225085
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Improvements:
- Report the numeric value of a bad attribute
- Show the requested/desired/unsupported version and the max version
- Correct printf attribute set and previous errors fixed
Bug: b/186543601
Change-Id: I889f2384afbe134496cad9e349766b7ff756dcee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3224566
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Crashes have been seen inside the Cocoa-internal
NS_setFlushesWithDisplayLink function. Web searches indicate this is a
regression in macOS 11. See whether catching and ignoring these
exceptions improves stability.
Bug: angleproject:6570
Change-Id: Id0be68077163bf4e9f98189461eea016a35edd73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3227697
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
In preparation for the StagingBuffer may also use BufferMemory, this CL
moves the class to vk_utils.h so that it can be used by any class
without create kinks on header file inclusion.
Bug: b/195588159
Change-Id: I97ab136be691322fe6284fd1b4b7336fdf1f904f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3040106
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
This workaround's scope was widened due to issues detecting intel
GPUs in systems with multiple GPUs. That was fixed, so we can
re-scope the workaround.
Bug: chromium:1187475
Change-Id: Iaf946369273dc5c1e2f8f91a14758b6751615c7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226721
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
This function always incurred a check for completed commands to ensure
forward progress for applications (or rather, tests) that busy-wait
until the query results become available.
This change instead does an initial isCurrentlyInUse() check and only if
that's true will it check to see if there are any finished commands.
This should reduce one checkCompletedCommands() call when the
application queries the status of the Query well after it's issued.
Based on patch authored by Igor Nazarov <i.nazarov@samsung.com>
Bug: angleproject:6573
Change-Id: Iad4ed6b7eb6ae5316707e6d916e5ca3054d6c5aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225083
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
BufferMemoryAllocator class will be responsible for memory allocation
for vkBuffers. The original Allocator class remains the wrapper for
vmaAllocator.
Bug: b/195588159
Change-Id: I26d016e2f8d13ba459d0aa0bd4e1ebf4d0d48251
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036256
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Old names: use config pairs when they can vary, e.g.
android-arm-dbg
android-arm64-rel
linux-clang-dbg
win-clang-x64-rel
win-msvc-x86-dbg
win-trace-rel
New names: use config names when they differ from the the
default test config for a system, and suffix with -compile
and -test for compile-only and compile-and-test bots. For
Android configs, we keep the full target arch. e.g.
android-arm-dbg-compile
android-arm64-test
linux-dbg-compile
win-test
win-msvc-x86-dbg-compile
win-trace
The new naming scheme prioritizes having short names to
avoid redundant or implicitly understood information. This
should reduce the mental load when looking at a set of test
results.
This also adds SwiftShader win10-x64 configs so we can add
these to the CI easily. Also the plan is to turn off the GCC
configs for now. If we ever support GCC properly we can re-
enable them.
This CL adds the new configs to CI, then a following CL will
add them to CQ and remove the old configs at the same time.
Bug: angleproject:6496
Change-Id: I0ecdcd392c4d7067d6b180664f160ba7c048d16d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3219590
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
There are two instances of circular buffer in SurfaceVk. A common
helper class is introduced by this change to consolidate the
implementation.
This is in preparation for a follow up change that introduces yet
another circular buffer in this class.
Bug: angleproject:6401
Change-Id: Id01b585567310a2528888114239a5c80ff93f1ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225084
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This was broken as fallout from http://crrev.com/c/3189512 and is
currently breaking the Chromium -> ANGLE roll. Instead of trying
to fix the warnings, disable compiling SwiftShader with MSVC.
Bug: angleproject:6572
Change-Id: I041a4366b348b77f8213802495dd88c4050a714c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226720
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
This change removes a number of stale TODOs.
Bug: angleproject:4889
Change-Id: If21d55717e61383ffdd58a7f88da5961988e035f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223643
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Due to a feature renaming, the async queue tests where actually ran
without the required feature that makes them async. This change fixes
the feature name so async queue testing will be resumed.
Bug: angleproject:6437
Change-Id: I73c9c8cd196576455265f72144399a93edc82bdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193420
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
This fixes race conditions with the async command processor. Instead
of querying specific serial numbers, we ask the command queue to
either wait for idle, or return the answer to "are you busy" directly.
Bug: b/172704839
Change-Id: I06a8268d9b58d8c33b783af00ca74979ee158316
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223641
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
If a constant is not folded by the translator, for example because it's
an array, this change makes sure that it becomes a constant in SPIR-V
anyway. This is particularly important to support cases where a
constant is required, for example as argument to textureGatherOffsets().
Bug: angleproject:4889
Bug: angleproject:5362
Change-Id: Ic43e4be13a8917bb100ea64902ba90048cfbb9ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223642
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Add gl/gles entry point names to validation error messages
some special cases:
1. Debug::insertPerfWarning() is invoked from multiple places,
such as TextureVK, ContextVK,
adding an extra entryPoint function parameter
in these files will need
extra investigations.
I am passing the entryPoint name GLInvalid as a
temp workaround.
2.ErrorSet::hangleError() is invoked from multiple
Context*.cpp files,
adding an extra entryPoint function parameter
in these files will need
extra investigations.
I am passing the entryPoint name GLInvalid as a
temp workaround.
3. Debug::insertMessage(), Debug::popGroup(), Debug::pushGroup()
can be invoked from more than one GL entry points,
e.g. Debug::pushGroup() can be invoked from
either GL_APIENTRY GL_PushDebugGroup() or
GL_APIENTRY GL_PushDebugGroupKHR()
through context->pushDebugGroup() call.
Right now the same entry point name glPushDebugGroup will
be printed out in the error message for both cases.
However, we should be able to tell the actual entry point
by checking which version: KHR version or core version the
application uses, and this helps avoid the confusion.
For now we will let the same entry point name
getting printed for both cases.
Bug: angleproject:6523
Change-Id: I64a5463d9168d8444d376d1f428c3b3d894f2ea9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3215063
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Mac/NVIDIA:
ClearTest.ChangeFramebufferAttachmentFromRGBAtoRGB
This test is crashing very frequently for an as-yet-unknown reason.
The NVIDIA MacBook Pros are not a critical testing configuration, so
skip this test for the time being to stabilize the CQ.
Mac/Intel:
WebGLCompatibilityTest.L32FTextures
WebGLCompatibilityTest.R32FTextures
WebGLCompatibilityTest.RGB32FTextures
These tests are occasionally failing with incorrect rendered pixel
values again for unknown reasons. Mark these as failing on this
configuration for the moment.
Bug: angleproject:6570
Change-Id: Ic9e3c5f8d06a1555a4b1dfed2d9495e98c32abf1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3224361
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Instead of pulling out the shader modules from the shader map when
we start the call chain, pull them out right in the init call. This
saves a bunch of boilerplate code.
Refactoring change only.
Bug: angleproject:6566
Change-Id: Ib8d79bd7284d7ddb83522270f3d4df9086ab7300
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3221134
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
ANGLE use `flat_hash_map` by default,while it will not retain pointer
stability which causes random null pointer issue when running MH31 with
asynccommandqueue.This change switch to using `std::unordered_map` to
cache renderpass.
Bug: angleproject:6436
Bug: angleproject:6569
Change-Id: Ia2829a41251eea39ce2a79a9a42b6fe9dff6b120
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3219010
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>