These were missing from debe468309.
Also fixes a misnamed "perf" parameter.
Bug: angleproject:3162
Change-Id: Iad4c4d8d35cc8a08d0e30d50dd9bbf159a4a7ab9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2407833
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
During cleanup, we were incorrectly calling
glDeleteRenderbuffers on a texture object.
Also update comments to correctly reflect intent.
Bug: angleproject:5018
Change-Id: I28eaf6a23056f3b09eebb7331620e6a27cb14302
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2406614
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Semantic revert of 78304b470 and 7bce5194d. 7bce5194d assumed that a
read transition between same layouts is a noop, but that's not true if
said layout is GENERAL.
This is only possible if an image is simultaneously bound as storage and
sampled image. This bug was discovered by the new syncval VVL warning.
Bug: b/156661359
Change-Id: I05f94160ca1b05b715701564e27fccee31a8aa45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404742
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
StandardQueryGL flushes with every pause/resume/end operation to make
sure the list of pending queries does not grow too large. This ended
up trying to flush the queries as soon as they were ended and unlikely
to have results ready.
Add a threshold of pending queries before flushing, hopefully delaying
the flush calls until the queries are ready.
This is a speculative fix for a GPU hang in query flushing.
Bug: chromium:1078754
Change-Id: I38300995ee6576dee8c8c26fa9ccad26e269337a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2401178
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
We were using a passed in commandBuffer in
ImageHelper::flushStagedUpdates which became invalid during the process
of handling the flush upon which subsequent uses could cause problems
when threading is enabled (and maybe when it's not as well, just harder
to see.)
Have ImageHelper::flushStagedUpdates use the current
OutsideRenderPassCommandBuffer and the code will use the proper one.
Bug: b/168144059
Change-Id: Ib9849efe9366cf61df5e68fd25d17df165dbd3a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2402354
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
This enables precision qualifiers to be included in the translated GLSL
and the generated SPIR-V.
We do not enable precision qualifiers on Pixel 2 with Android Q due to
bugs in the Vulkan driver. Issues appear to be fixed with later Android
releases and later devices.
Bug: angleproject:3078
Change-Id: Ia5f40befc7ec80fbb63fb6bbe88600301967f9c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2350583
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Previously on the OpenGL backend we get the device ID with funtion
GetDeviceID() which just supports a few types of devices. This patch
fixes this issue by using angle::GetSystemInfo() instead.
Bug: angleproject:5011
Change-Id: Ief0e1228bb1871a73755f05f2debd3a8e5c75597
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2392634
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Needs one suppression due to Clang warning about multiple vtables
in a cpp file.
Bug: skia:7647
Change-Id: If7f318b7539d23f783b0ef6d6478ce24a0b72bc7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404746
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
GLSL allows varyings passed from one stage to another to not match in
precision (e.g. float & half-float). Vulkan doesn't allow that so adjust
those mismatches to use the higher precision.
To fix we keep track of the precision of varyings and in the Vulkan
backend if we see they are different patch up the SPIR-V to make them
match.
Bug: angleproject:3078
Change-Id: I385d31e082da46ccdd4817b6612f5f9d9cbce17c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2337755
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
This workaround should also clear the shader binary formats. Also,
we can use this workaround when disabling program binaries for
capture/replay.
Bug: angleproject:5007
Change-Id: I57c78e2cc95e7148cb8a1e7fb9bf3ed958fa69c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404383
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Currently is_linux is set to true on Chrome OS build,
but it is planned to set to false. This CL is the preparation
to keep the current behavior.
Bug: chromium:1110266
Test: Built locally. Tryjob.
Change-Id: I4124dfb251d68a519fed3e08555d1aa5a694c77c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404500
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Used angle::CheckedNumeric to make sure none of the additions
in ClipRectangle produces an integer overflow.
Bug: chromium:1091364
Change-Id: I23b7943259010bb6bfde3d8ebc41e87a04f5b4f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404441
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
This shrinks the size of the mask for use in cache key classes.
Bug: angleproject:4881
Change-Id: I87c234832c61e6a663c609b7f6da5d69977b21c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2399182
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Drop std::move() calls in places where there's no actual moving
happing, and only the "bugprone-use-after-move" clang-tidy
warning is triggered.
Bug: chromium:1122844
Change-Id: I692da5af4f96305f09008d1c7fd18f9be7f6273f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2401241
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
We unconditionally link to $angle_spirv_tools_dir:spvtools_val, but we
only use SPIR-V validation with ASSERTs. This CL removes this
dependency when ASSERTs are disabled.
Bug: angleproject:4887
Test: CQ
Change-Id: Ic403b78196ecd895e4a0cdefb54ab4497651ccac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2375872
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
ASAN caught reference outside scope issue regarding
RendererVk::initialize. Need to have a local copy of the string so that
it stays alive for the Vulkan call.
Bug: b/168145220
Change-Id: I13d751a48fe86a5a3d603d892c86c5a7186f2606
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2402353
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
XWayland defaults to a 1hz refresh rate when the surface is not
visible, but this can sometimes cause issues in Chrome. If we see
a bogus rate like that, ANGLE can just report 30hz.
Bug: chromium:1042393
Change-Id: I554b05b4107cea528525ced6e95a5ce529eec3b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2388700
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
GCC fails to automatically map the initializer assignment for
initializing the angle::PackedEnumMap. So this change adds the
type hint ImageMemoryBarrierData to the second part of the pairs
passed to construct the PackedEnumMap.
GCC error:
./../third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp:387:1: error: could not convert ‘{{rx::vk::ImageLayout::Undefined, {"Undefined", ...}}}’ from ‘<brace-enclosed initializer list>’
to ‘const angle::PackedEnumMap<rx::vk::ImageLayout, rx::vk::{anonymous}::ImageMemoryBarrierData>’
387 | };
| ^
| |
| <brace-enclosed initializer list>
Bug: chromium:819294
Change-Id: I314c43c0795e54cabd891205ee935c6354d11658
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2401778
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
These bits will be used in a follow up change to determine which color
attachments need to take their value from a corresponding resolve
attachment in an initial subpass.
Bug: angleproject:4881
Change-Id: I76b6b3339fe209f93dd259ca087d84ecaa3004b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2397205
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
When binding a new atomic counter buffer to a slot it is
necessary to take into account the previous binding of that
slot. This rectifies a bug introduced in f7b607c63c
Bug: angleproject:3566
Test: angle_unittests.exe --gtest_filter=AtomicCounterBufferTest31.AtomicCounterBuffer*
Change-Id: If78954d27c3345e8620294a84e839058d7dd7b9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2388431
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
There is no functional changes, but avoids an incorrect static_cast of
pointers when looking to skip the clear in a copyImage of an image onto
itself.
Change-Id: I35949005016dab5df01e58d27de53dccf38d50c7
Bug: chromium:1125354
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2395617
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>