|
9f734b5e
|
2023-06-07T10:23:39
|
|
Galaxy A23: add end2end expectations for crashing tests
Bug: b/285045753
Bug: angleproject:8185
Change-Id: I5b58f8220589a9bc8b366932b6aaa06d1fe84024
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4597750
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
ad09353e
|
2023-06-07T10:19:35
|
|
Android: Galaxy A23 support
This CL adds detection of the device, for use in expectations files
Bug: b/285045753
Bug: angleproject:8185
Change-Id: Ia68402c4a85fde058b03143eb97607da4679fc7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4597749
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
1ad4ae4d
|
2023-06-05T18:45:19
|
|
Clean up EGLPreRotation Test
EGLPreRotationBlitFramebufferTest are passing on
Pixel 6. Skip the failed tests on Pixel4 devices only.
Bug: b/172867704
Bug: angleproject:5044
Change-Id: I23744cec20bf7e74272532a00420d1488398cda8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4590228
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
16841d62
|
2023-01-31T11:51:41
|
|
Reland "Remove SPIRV_METAL references from .gn and tests"
The backend was removed but the references were not.
Update ShaderBinaryTest to properly skip tests if shader binaries are
unsupported in the current ANGLE backend.
Forcibly re-enable building of the Vulkan backend on macOS to keep
ANGLE's SwiftShader backend working.
Fixed: angleproject:6081
Change-Id: I5e6e47d5fe05b0dd6ec150b6db9fe5d75e580173
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594582
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
53b5d25f
|
2023-06-06T12:09:08
|
|
Resolve circular dependency android_helper <-> angle_test_util
Ran into it causing issues in https://crrev.com/c/4545408
Bug: b/286067106
Change-Id: I9314d1e48b064a46362a65db2c3a92760111f02f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594440
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
2780cb0b
|
2023-06-05T00:00:00
|
|
Disallow 'depth_unchanged' qualifier for WebGL contexts
This qualifier has no equivalents in HLSL or MSL.
Bug: angleproject:8046
Change-Id: I1e79c8d725306efb859152b8083d72019c982149
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4595017
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c37d74a5
|
2023-06-06T17:07:15
|
|
Revert "Remove SPIRV_METAL references from .gn and tests"
This reverts commit f7badd3faa8b1b04538ac7b6db833e1398b13498.
Reason for revert: disables SwiftShader fallback on Mac
Original change's description:
> Remove SPIRV_METAL references from .gn and tests
>
> The backend was removed but the references were not.
>
> Update ShaderBinaryTest to properly skip tests if shader binaries are
> unsupported in the current ANGLE backend.
>
> Fixed: angleproject:6081
> Change-Id: I54bb4080763fbc0dcc2515e71ccd5df5c536db5b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4591046
> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Change-Id: Id41035017830d8b36b29bc4497919c6b01fc3f35
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4595018
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
4500079d
|
2023-05-30T17:01:10
|
|
Refactor D3D device creation to make adapter selection explicit
To prepare for future changes which require that angle features
be parsed before device creation, we must rearrange device
creation such that driver version can be retrieved from the
adapter BEFORE the device gets created.
Bug: angleproject:8180
Change-Id: I08855b9df318d0a6234231f1e52d3c17cfaa8a30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4575653
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
|
|
f7badd3f
|
2023-01-31T11:51:41
|
|
Remove SPIRV_METAL references from .gn and tests
The backend was removed but the references were not.
Update ShaderBinaryTest to properly skip tests if shader binaries are
unsupported in the current ANGLE backend.
Fixed: angleproject:6081
Change-Id: I54bb4080763fbc0dcc2515e71ccd5df5c536db5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4591046
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e60f64dd
|
2023-05-31T17:02:22
|
|
D3D11: fix for atomic assigned to an SSBO.
When assigning the previous value of an atomic op to an SSBO, we do not
want to use the "direct assignment" path, since we can't pass the SSBO
expression as an argument to Interlocked*().
Instead, we change the RewriteAtomicFunctionExpressions transform not to
defer assignments until HLSL output if the LHS is an SSBO expression,
and to do its usual creation of a temporary for the previous value of
the atomic op.
In OutputHLSL, we skip the direct assignment path if the LHS is an SSBO
expression.
Bug: angleproject:8182
Change-Id: I0707f4f69757119fe5c8f8e7a12bd26025ec74e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4573827
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
721c15ef
|
2023-05-30T17:20:09
|
|
Metal: Remove OS info from renderer string for WebGL contexts.
This is exposing too much detailed information to the web. Replace it
with the string "Unspecified Version".
Bug: chromium:1354575
Change-Id: I69b8c6f7cb4eae01f806e91496664276c864309e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4574285
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kenneth Russell <kbr@chromium.org>
|
|
6e40ce00
|
2023-06-05T11:47:29
|
|
Do not call postResolveLink in Program::deserialize.
postResolveLink assumes the program is currently linked, which is not
the case in Program::deserialize. It makes calls to set uniforms which
is not always expected by the backend.
Call postResolveLink after the backend has linked when loading
program binaries.
Bug: angleproject:6073, angleproject:8183
Change-Id: Idacb81040ea79a7df51917aaa27c77b25df7d5cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4588410
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e7a9275b
|
2023-06-02T18:09:40
|
|
Make run_code_generation faster using python3 for auto_script
Only changes the way we get auto_script inputs/outputs.
Before this CL, some of the scripts (depending on the shebang)
are run via vpython3 - which can take a few seconds. But the
inputs/outputs code generally doesn't require any unusual imports, so we
can just add little hacks to suppress those imports where needed when
an argument is given to the script.
Bug: angleproject:8184
Change-Id: Ib09a35b839318253fe7e913e24a756d2cb46dad1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4585820
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4ff41604
|
2023-05-31T11:12:33
|
|
Vulkan: Declare common SPIR-V ids in the compiler
The SPIR-V transformer no longer needs to discover these ids.
Bug: angleproject:7220
Change-Id: I7082e831308eaac97ace3c128f398ff5f5497739
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4573825
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5f833ff2
|
2023-05-31T00:06:24
|
|
Vulkan: Pass non-semantic info from translator to transformer
The SPV_KHR_non_semantic_info extension is set up in this change to
allow the translator to communicate an overview of the SPIR-V to the
SPIR-V transformer as well as mark locations of interest. This would
help the SPIR-V transformer avoid having to discover basic ids and such
locations.
In this change, a few basic types are predefined and the location where
new types and variables need to be defined are marked.
Bug: angleproject:7220
Change-Id: I237b9a79efa9c192b3b11f1d97bc9b6a5cc2f8fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4573823
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6433724c
|
2023-06-02T23:51:30
|
|
Revert "Enable usePrimitiveRestartEnableDynamicState on ARM driver 43"
This reverts commit 0ea8e55a6f0667c2bb189d95987833231cdb22b2.
Reason for revert: http://b/285543622
Original change's description:
> Enable usePrimitiveRestartEnableDynamicState on ARM driver 43
>
> The dynamic state bug is fixed in ARM 43.
> Venus has backported the driver fix, therefore we
> also enable primitiveRestartEnable dynamic state
> on venus.
>
> Bug: b/275210062
> Bug: b/282621541
> Change-Id: I5debd5146386f7e245610fb71c84e4a48b04e85b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4581051
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Bug: b/275210062
Bug: b/282621541
Change-Id: I529669f82fdb6ceb53e6740c9737cd061cbaf450
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4585317
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
0ea8e55a
|
2023-06-01T10:25:44
|
|
Enable usePrimitiveRestartEnableDynamicState on ARM driver 43
The dynamic state bug is fixed in ARM 43.
Venus has backported the driver fix, therefore we
also enable primitiveRestartEnable dynamic state
on venus.
Bug: b/275210062
Bug: b/282621541
Change-Id: I5debd5146386f7e245610fb71c84e4a48b04e85b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4581051
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
|
|
c80fc88a
|
2023-05-18T17:38:25
|
|
Vulkan: Add version to pipeline cache header
* Added version as a field in the pipeline cache header. It is set by
the value of kPipelineCacheVersion.
* kPipelineCacheVersion must be incremented in case of any changes
to the cache header or data structure.
* This makes it easier to detect whether a change in the data is
coming from the header/data change or from data corruption. If
the version in the cache line matches kPipelineCacheVersion, some
values in the header must meet certain conditions. Otherwise, it
will result in a crash due to data corruption.
Bug: b/246683126
Change-Id: Iaf1a2e1111cf47602dba947516ad8998d96dc943
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4546263
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ba857c47
|
2023-06-01T11:33:22
|
|
Vulkan: Move some bufferRead logic into CommandBufferHelperCommon
Some of the logic of bufferRead is common, to avoid code duplication,
it has been refactored into bufferReadImpl and moved into
CommandBufferHelperCommon.
Bug: b/282194402
Change-Id: I98cd0788db7fe9f14bd3155b28dc208f9f4a138a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4581061
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
e21ecd1b
|
2023-05-26T14:06:46
|
|
Vulkan: Add dirty bit processing for uniform buffer change
When app calls glBufferData for the uniform buffer, we may end up
reallocate the storage. This will set DIRTY_BIT_UNIFORM_BUFFER_BINDINGS
on the context, but the exact uniform block index gets lost along the
way. This CL sets mDirtyBits on the program for the corresponding block
index and then changed vulkan backend to utilize the program's
mDirtyBits and only update the buffer if it is dirty, instead of always
update all uniform buffers even if only one of the buffer is dirty. In
order to make this work, this CL also adds the reverse tracking from
buffer binding to uniform blocks. Previously we already have the
tracking of which buffer binding index is used for which buffer block
index. This CL adds mUniformBlockBindingMasks which is an array of
BitSets. Each array element tracks all the uniform block index that is
using this buffer binding index (you can have the same buffer bound to
multiple uniform block index). Then when a buffer binding index is
dirty, that BitSet gets added into program's uniform block dirty bits.
This CL and previous CL improves GfxBench gl_driver2_off score 1.8%
(from average 6797 to average 6919) on pixel 7 pro.
Bug: b/282194402
Change-Id: Ic5002643a5297907276fc9b20ca7d21af9bdc4fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4553136
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
ad1255c2
|
2023-01-30T18:35:38
|
|
libstdc++: do not use std::logf or std::powf
In libstdc++ there is no implementation of std::logf or std::powf, so
they must be replaced with calls to std::log and std::pow, and use
static_cast for using the right overload.
Bug: chromium:957519
Change-Id: I3c94502c006db200148060c1d30e0dd28b8a30d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4352890
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2501903e
|
2023-05-31T11:59:36
|
|
Vulkan: Merge UpdateShader***Buffers into updateShaderBuffers
Both UpdateShaderUniformBuffers() and
DescriptorSetDescBuilder::updateShaderBuffers() walks the list of
uniform blocks (or storage blocks). Some of the logic are the same and
we are paying that overhead twice. In this CL,
UpdateShaderStorageBuffers, UpdateShaderUniformBuffers and
UpdateShaderAtomicCounterBuffers functions are merged into
DescriptorSetDescBuilder::updateShaderBuffers and
DescriptorSetDescBuilder::updateAtomicCounters. In order to handle the
usage that same buffer used by multiple shader stages, a new variant of
bufferRead() function is added that takes "const gl::ShaderBitSet"
instead of single PipelineStage. This also paves way for next CL so
that we can call updateOneShaderBuffer individually.
Bug: b/282194402
Change-Id: I09d045d6295827b60bdb4c05df9333fe593fa40e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4574288
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
dbffa5d3
|
2023-05-30T15:43:45
|
|
Vulkan: Update present history logic
Keeping old Swapchain's `ImagePresentOperation`s with Fences can lead to
multiple "old swapchains" lists. This may cause situations exceeding
the `kMaxOldSwapchains` limit.
Instead of marking `ImagePresentOperation` as corresponding to an older
swapchain, accumulate all present history in the `mOldSwapchains`.
Since Fences are only used when VK_EXT_swapchain_maintenance1 is
supported, instead of attaching "old swapchains" to the first present
operation, they are destroyed when present Fences are signaled in the
new `cleanUpOldSwapchains()` method.
Also this CL fixes a bug:
if (mPresentHistory.empty() || mPresentHistory.back().imageIndex == kInvalidImageIndex)
The above condition will always pass when VK_EXT_swapchain_maintenance1
is supported.
Bug: angleproject:7847
Change-Id: I1a41944456756b8af740f1903c873823323a2e0b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4505952
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
95f57b19
|
2023-01-17T19:24:04
|
|
Vulkan: Fix Shared Present Mode "acquireNextSwapchainImage()"
- no need to call "vkAcquireNextImageKHR()" in
Shared Present Mode.
- proper VkResult processing (VK_SUBOPTIMAL_KHR replaced
with VK_SUCCESS).
Bug: angleproject:6878
Change-Id: Ib20ae1f5de3a3cc13bfc4ef034076e3402f93d31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4489464
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
552e7468
|
2023-05-26T18:39:55
|
|
Vulkan: Do not use ANI Fence in present semaphore recycling
Fences from `vkAcquireNextImageKHR()` has many problems on some
Intel drivers, and one of them does not have a workaround. Instead of
using ANI Fence, this change will use `swapSerial`, that has execution
dependency on ANI semaphore. As result, semaphore recycling will be
delayed a little longer, until the Device finises rendering to the
image. On practice, this will not significantly affect the total number
of allocated semaphores.
As a bonus, this change also fixes a bug with Shared Present Mode:
Current logic assumes that PE will only signal image's ANI fence after
waiting on previous present semaphore with this image. In reality, PE
returns same image index and fence that is always signaled.
Additionally, ANI call is not required at all.
There is no 100% safe solution when not using:
VkSwapchainPresentFenceInfoEXT
This CL will recycle present semaphores only after next present
semaphore is signaled. This not only ensures, that present semaphores
are not reused inflight, but also gives time to PE to finish waiting on
the semaphore until next present.
Bug: angleproject:8155
Bug: angleproject:7847
Change-Id: Ia112190d77ea7e04f8f9755cf56f5387744dc599
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4572426
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
53b2db67
|
2023-05-26T13:34:39
|
|
Vulkan: Reset Swapchain Fence before recycling
Depending on the Intel GPU hardware and driver version, crash may
happen when accessing ANI Fence after Swapchain destruction.
This access includes call to: `vkGetFenceStatus()`, `vkWaitForFences()`,
`vkResetFences()`, and `vkDestroyFence()`.
Resetting Fence before recycling will "detach" it from the Swapchain,
allowing safe usage/destruction of the Fence after that Swapchain
destruction.
For other devices and drivers, this change is harmless. Only difference
is that there will be extra reset calls for items that were recycled but
never used before (number of such cases extremely low, compared to
cases when Fences are reused).
Additionally, this change adds `ASSERT(garbageObject.valid())` into the
`Recycler<>`. Before this change, it was possible to recycle invalid
fence in the `ImagePresentOperation::destroy()` method. Luckily, this
happened only in `WindowSurfaceVk::destroy()`, where invalid recycled
fence is not used (it is safe to destroy invalid fence).
Bug: angleproject:8155
Change-Id: I0adbaf63333536523004a077977eb68cfaccd6f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4572425
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
bcccb6c4
|
2023-05-30T18:21:06
|
|
Vulkan: Minor fix in doDeferredAcquireNextImage() method
If call `doDeferredAcquireNextImage()` after `prepareSwap()`, the
`prepareForAcquireNextSwapchainImage()` method will be called again,
and may possible recreate the Swapchain while there is ANI result that
needs processing.
In the current code the above is not possible (except if call
`prepareSwap` directly from the application side). This may be possible
in the future, when ANI is deferred until RenderPass end, that may
happen in the `flushImpl()` of the `swapImpl()`.
This change skips `prepareForAcquireNextSwapchainImage()` if there is
ANI result that needs processing. Additionally,
`doDeferredAcquireNextImageWithUsableSwapchain()` call in `swapImpl()`
replaced with `doDeferredAcquireNextImage()` for simplicity.
Possible call sequences after this change:
prepareSwap:
prepareForAcquireNextSwapchainImage()
doDeferredAcquireNextImageWithUsableSwapchain()
or
prepareSwap:
prepareForAcquireNextSwapchainImage()
TryAcquireNextImageUnlocked()
other API:
doDeferredAcquireNextImage():
// skipped - prepareForAcquireNextSwapchainImage()
doDeferredAcquireNextImageWithUsableSwapchain()
or
other API:
doDeferredAcquireNextImage():
prepareForAcquireNextSwapchainImage()
doDeferredAcquireNextImageWithUsableSwapchain()
Bug: angleproject:6851
Bug: angleproject:8133
Change-Id: I4f973c05821fc9e43769cc2621f4467790118f23
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4572424
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
b0e9bbd7
|
2023-05-31T14:23:40
|
|
Vulkan: Split features for dynamic state
When a driver bug with dynamic state is encountered, it is hard to debug
which dynamic state exactly is causing an issue, due to the current
granularity of disabling all entire state from an extension. With this
change, every dynamic state gets its own ANGLE feature, and can be
toggled as necessary.
Disabling the supportsExtendedDynamicState* features implicitly
disables all dependent features.
Bug: b/285124778
Bug: b/275210062
Bug: fuchsia:107106
Bug: angleproject:5906
Change-Id: Ic291279872df2d0eb58618ff364ab118bdcc4a9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4577553
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
7b07818e
|
2023-05-29T19:46:40
|
|
Vulkan: Call resetAcquireNextImageSemaphore() only when required
Currently resetAcquireNextImageSemaphore() is called for each swapchain
image when swapchain is recreated and when EGLSurface is destroyed.
Releasing semaphores in case of swapchain recreation is not necessary,
since swapchain should not be recreated while there still image that
needs presenting. Call removed to reveal possible bugs, when recreate
happens without such present.
In case of EGLSurface destruction there may be only one image that has
semaphore. Call moved from `destroySwapChainImages()` to `destroy()`.
Bug: b/275624771
Change-Id: Ia4ce678f2b73785818150dfb276b19a5f5b7d25f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567550
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
da41e7d9
|
2023-05-29T19:17:48
|
|
Vulkan: Account for queueSubmitOneOff() in SurfaceVk::mUse
There is a possibility to destroy EGLSurface without waiting for
`queueSubmitOneOff()` submission. One possible way to reproduce the
problem is to query `EGL_BUFFER_AGE_EXT` without any rendering in the
EGL_SINGLE_BUFFER mode.
This is a regression from:
Reland "Vulkan: SurfaceVk should only wait for GPU work that uses it"
https://chromium-review.googlesource.com/c/angle/angle/+/4406891
Test: angle_end2end_tests --gtest_filter=EGLSingleBufferTest.WaitOneOffSubmission*
Bug: b/267806287
Change-Id: I9478fcc4fd64b38747cbd80dea51137da9ef5f21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567549
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
29ad234a
|
2023-05-30T12:03:30
|
|
Tests: Add Off The Road trace
Test: angle_trace_tests --gtest_filter=TraceTest.off_the_road
Bug: b/285110104
Change-Id: I63e86ea9a18f9f60680ac758e284cc1b5e90c0ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4576882
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
dfb2bab0
|
2023-05-25T15:08:19
|
|
Apply Aliased Decorators To Image DataTypes
Bug: b/274478912
Bug: b/266235549
Change-Id: I2cd272a1e7481a8803be63efe0be11c61560b23e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568287
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eaa53279
|
2023-05-30T14:37:03
|
|
Add mDitheringFeatures to mEnabledFeatures
Missed in https://crrev.com/c/4567572
Also adds mSwapchainMaintenance1Features, which was missing in the same
place, and I was using that as a reference in the CL above.
Bug: b/284462263
Change-Id: I225cbd40d35eb09ea6220a6669574e19ce6cce83
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4574570
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ec7e0778
|
2023-05-26T22:11:49
|
|
Vulkan: Track the emulated texture buffer in command buffer
... instead of the original texture buffer, because the emulated one is
the one that is actually being used. This removes the necessity to
issue a hacky barrier after the emulation is done.
Bug: angleproject:8128
Change-Id: Ibc812894204cc1b2c6147817674de44e9c7ba2f4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4571701
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
01f629e3
|
2023-05-26T10:23:20
|
|
Vulkan: Remove the loop when calling updateShaderBuffers
Right now there is a loop of getLinkedShaderStages when calling
mShaderBuffersDescriptorDesc.updateShaderBuffers. The shaderType
variable is only used to check if block is active or not, and get
info.binding. They can be retrieved without loop of shaderType. This CL
removes the loop so that we call
DescriptorSetDescBuilder::updateShaderBuffers only once. Similar thing
is applied to atomic counter buffer and images.
Bug: b/282194402
Change-Id: I03f3b4a391e773dfc162877802a2f940311866b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4554625
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ad1f58aa
|
2023-05-30T09:41:41
|
|
Tests: skip RGBTextureBufferTestES31 on Linux intel vulkan
vk_icdNegotiateLoaderICDInterfaceVersion crashes (possibly Mesa bug?)
Bug: angleproject:8179
Change-Id: I05812f436ab4f4ac2755c20bddc1cc33a28b5d8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4574146
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
ff110417
|
2023-04-21T15:16:03
|
|
Vulkan: Emulate RGB32 uniform texel buffers when unsupported
Applies to: GL_RGB32F, GL_RGB32I, GL_RGB32UI
When VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT is specified for these
formats by the Vulkan driver, behavior is the same as before.
When it is not speficied: previously ANGLE wouldn't enable
GL_EXT_texture_buffer unless exposeNonConformantExtensionsAndVersions
was enabled; now ANGLE always enables it and does the RGB->RGBA
conversion (GPU) under the hood and tracks buffer content updates using
the paths added for tracking this for Vertex Arrays.
Bug: b/278585075
Bug: angleproject:8128
Change-Id: I4605719bf3f51c5a10c1a35ecae767833dcd45d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4456498
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
16b9a16a
|
2023-05-26T14:45:15
|
|
Add supports_legacy_dithering feature
VK_EXT_legacy_dithering =>
VkPhysicalDeviceLegacyDitheringFeaturesEXT.legacyDithering =>
supportsLegacyDithering
Now getting enabled=true on Android master.
Bug: b/284462263
Change-Id: Ibf43184c78d9847044b10413d2050b653e452c9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567572
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
02e7f967
|
2023-05-25T14:54:49
|
|
Translator: Remove the "variables" option
Variable collection is invariably enabled by the front-end as well as
other major users of ANGLE such as Firefox. All translator backends
except GLSL force-enable variable collection either way.
This change removes this compile option and enables variable collection
unconditionally.
The flag itself remains in ShCompileOptions until references to it are
removed from Chromium.
Bug: chromium:1447314
Change-Id: I4d3b30c1bfbd345c5ad269abc62c0a6a59de2f56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568524
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3f97a29e
|
2023-05-26T15:03:02
|
|
D3D11: Also unbind DSVs when unbinding conflicting resources
Depth stencil views can also cause conflicts when trying to bind them
resource as a shader resource and depth stencil at the same time,
even for compute shaders.
Bug: dawn:1291, angleproject:8171
Change-Id: I759556f7a8a888f1d4d6a042c26d16eedd83d2b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567573
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
055c72ac
|
2023-05-25T09:22:26
|
|
Suppress AllocateVMAImageWhenDeviceOOM for AsyncCQ
Bug: angleproject:8174
Change-Id: I28e7e8bdc26055f2ad03f2842676330430b579b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568283
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
c5282661
|
2023-05-24T15:33:19
|
|
Tests: Add Infinity Ops Trace
Test: angle_trace_tests --gtest_filter=TraceTest.infinity_ops
Bug: b/284273677
Change-Id: I19daa0a0e96a619ff3ec18074012cda213854947
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4566950
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
9b1ff7b1
|
2023-05-25T14:13:13
|
|
Translator: Fix SPIR-V translation without "variables" flag
This flag is now assumed to always be true for the SPIR-V (and MSL)
translators. They use the collected variables during translation.
Bug: chromium:1447314
Change-Id: I69d31ce8144aec0bd2a7263bad6e5a366e922740
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567830
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9192d9a
|
2023-05-25T14:43:41
|
|
android_helper sets return code to 1 when test json is missing
e.g. FATAL failures / other crashes
Bug: b/278585075
Change-Id: I01850e547d782c302658653780b93699e9e91ffa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567831
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
aea88562
|
2023-05-19T16:52:43
|
|
Reland "Metal: Optimized BufferSubData per device"
This reverts commit ee64836f702332adaca58d9f452063a04b2da955 ,
relanding the patch stack described there.
Between patchsets 1 and 5:
- The shadow buffer allocation has been replaced with a multimap of
precisely-sized buffers, rather than rounding up buffer sizes.
- Garbage collection of shadow buffers is triggered in three situations:
- A certain number of context switches have occurred; this number
was hand-tuned to avoid GC every frame.
- A certain number of command buffer submissions has occurred; this
number was hand-tuned to GC no more often than every few seconds
on representative workloads.
- The total size of the allocated shadow buffers is more than 1 MB,
and either more than twice the size at the last garbage
collection, or 64 MB more than at the last garbage collection. In
this case, aggressive GC is performed in order to reclaim shadow
buffers more quickly.
Performance before and after these changes appears identical on
microbenchmarks. On one Figma test case, comparing GPU memory
allocated inside the BufferManager, peak consumption is decreased by
over 75%, and steady-state consumption decreases by over 88%.
Patchset 6 adds a needed workaround for a bug in the
AMDMTLBronzeDriver affecting uploads of client-side data, and
therefore some dEQP tests. It also streamlines the aggressive GC.
Bug: angleproject:7544
Change-Id: I81b061f0b33c27fa403527fa12d626f4e9c88ebe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497413
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6f2128a5
|
2023-05-25T10:45:08
|
|
Disable stencil write mask workaround on latest ARM
The bug has been fixed in ARM r43.
Bug: b/279715714
Bug: angleproject:7556
Change-Id: I01f08459ab90fed4eb1d57194cea3805d7868c18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4566953
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
409bf134
|
2023-05-23T00:00:00
|
|
Metal: Adjust iOS and macCatalyst caps
* Fix swapped iOS and macCatalyst versions for
EXT_blend_func_extended and EXT_depth_clamp
* Always use 13.1 as the lowest macCatalyst version
Bug: angleproject:8121
Bug: angleproject:8047
Bug: angleproject:8015
Change-Id: I1f117de259d211cb8ce2463df59f8fee0e709ef5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568323
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
c80c74a5
|
2023-05-25T12:58:23
|
|
Skip honkai_star_rail on Intel/windows
Consistenly making Intel perf bots red by getting stuck
Bug: angleproject:8175
Change-Id: I96b31d201b5b161c89ba6654cea48becbbc35169
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567829
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
93eee5d2
|
2023-05-18T16:33:25
|
|
Vulkan: Add the Sample decoration when sample shading
The Vulkan spec was clarified that per-sample interpolation is not
necessarily done when sample shading is enabled in the API. In this
change, a SPIR-V transformation is added to add the Sample decoration to
whatever varying is missing it when sample shading is enabled in the
API.
Bug: b/283017896
Change-Id: I121c740add6fc015c9140e6a04d37ea5300c8e57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544591
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
9f1708b8
|
2023-05-24T16:26:44
|
|
GL: Check for VAO support before syncing from external ctxs
Reading and writing VAO state was done unconditionally when syncing
from external contexts. This caused crashes when trying to call null
VAO-related function pointers.
Bug: chromium:1447456
Change-Id: I866dd75a3f66d39d19c7da748d64a00ce02db5e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4562937
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
c18972fd
|
2023-04-05T10:22:38
|
|
Tests: Add Gangstar Vegas trace
Test: angle_trace_tests --gtest_filter=TraceTest.gangstar_vegas
Bug: b/280785771
Change-Id: Ia1d5de22d45979b44b0711fc510d2dfb7600b910
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507340
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
297687c6
|
2023-05-18T17:27:54
|
|
Vulkan: Reduce CPU overhead for uniform buffer change
One of the common usage pattern is change uniform buffers and draw.
Right now every uniform buffer change goes into ShaderResource dirty
code path that rebuilds entire ShaderResource cache key and descriptor
set etc. This CL keeps SHaderResource dirty code path, and will be used
when program changes or framebuffer changes. But uniform buffer change
will go down its own code path that only update uniform buffer related
state.
This CL along with prior two CLs reduced asphalt_9 average frame time
(with multi context hacked away) from 5.375 ms to 5.2594 ms (reduced
2.15%).
Bug: b/282194402
Change-Id: Ibae2895663918ddc10bf13bc559f1483f94d2e11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4528314
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
9445fbbe
|
2023-05-16T10:43:55
|
|
Vulkan: Move mWriteDescriptors out of DescriptorSetDescBuilder
DescriptorSetDescBuilder has two data structures: mWriteDescriptors,
which keeps track of "layout" of descriptorSet, and mDescriptorInfos,
which is the actual cache key for descriptorSet. mDescriptorInfos will
be updated every time buffer or image changes. But mWriteDescriptors is
immutable with buffer/image, it is static per program executable (with
exception of InputAttachment). Right now whenever there is a buffer or
image change, we call into DescriptorSetDescBuilder and update both
mWriteDescriptors and mDescriptorInfos. This CL moves mWriteDescriptors
out of DescriptorSetDescBuilder, and stores it in ProgramExecutableVk.
To deal with InputAttachment variation, ContextVk makes a copy of
mWriteDescriptors when program is bound, and then update inputAttachment
with framebuffer information. This not only removes unnecessary update
of mWriteDescriptors, but also removes the requirement that
mShaderBuffersDescriptorDesc has to reset and rebuild as a whole
(because mWriteDescriptors keeps mCurrentInfoIndex which gets
incremented as we build). This allows us to do further optimization in
future to do piece meal update of mDescriptorInfos with only the changed
data.
Bug: b/282194402
Change-Id: I443c7c3b85b7a2e2e93c68d40ea102533c43f76a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4540280
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
2c836045
|
2023-05-18T12:00:41
|
|
Vulkan: Remove buffer/image tracking from DescriptorSetDescBuilder
Right now DescriptorSetDescBuilder keeps an array of images and buffers
as we build DescriptorSet cache key. Later on if we have a cache miss
and allocated a new cache entry, we walk the array and tag the images
and buffers with newSharedCacheKey. If we have a cache hit, the tracked
images/buffers are unused and then cleared. This means the effort of
keep track of these buffers are wasted when we have cache hit, which we
expect to be most likely. This was initially implemented this way simply
because of convenience, but there is really not a need to add another
tracker for them, as they are readily available from context state
anyway. This CL remove the tracking of images/buffers from
DescriptorSetDescBuilder and replaced with context API to tag images and
buffers with newSharedCacheKeywhen when we have a cache miss.
Bug: b/282194402
Change-Id: I355c2fbabdfc573ce71c0a4281788c942d260271
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4539290
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bdbcf763
|
2023-05-24T00:00:00
|
|
Compile ClampFragDepth on all backends
Bug: angleproject:3970
Change-Id: I498f8c101e5939156eba6a071278f6ea912fee70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4561897
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
dd25d33d
|
2023-05-24T11:22:15
|
|
Don't use system info collection in the GL backend on Android
The only way to gather system info on Android is with Vulkan or an
existing OpenGL context (which we have), so skip the call to
angle::GetSystemInfo on Android and use the OpenGL strings that
are already gathered.
It also tends to crash when creating Vulkan instances on some devices.
Make sure the ARM vendor ID is detected from the renderer strings.
Bug: chromium:1447111
Change-Id: Ic5c4109b422ca240bf5e8fc5cef6a2dae6d7d29d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4562933
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
|
|
ad386845
|
2023-05-24T11:14:12
|
|
Tests: Add Empires and Puzzles trace
Test: angle_trace_tests --gtest_filter=TraceTest.empires_and_puzzles
Bug: b/283500712
Change-Id: I3b4ed61ebe8948319ca74e79cb74053b554b0009
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4551449
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
24504dd1
|
2023-05-23T20:27:49
|
|
Tests: Add Kentucky Route Zero trace
Test: angle_trace_tests --gtest_filter="*kentucky_route_zero*"
Bug: b/284061674
Change-Id: Iab42008bfa3604e306628e90abc04b7ceb6fd4bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559458
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
33e38862
|
2023-05-24T00:00:00
|
|
Vulkan: Limit clampFragDepth workaround to affected drivers
Bug: angleproject:3970
Change-Id: I708591d86b8f2cb10d0cbdc7c14518fda45ac626
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4562134
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
934a25bc
|
2023-05-22T00:00:00
|
|
Vulkan: Implement EXT_depth_clamp
Bug: angleproject:8047
Change-Id: I73244f5dcd6eeeb1889214ee3a611e4ecabbfe7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4558744
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
fb32aef5
|
2023-05-21T20:49:06
|
|
Tests: Add Galaxy S23 deqp expectations
Expectations for the following tests:
angle_deqp_gles2_tests
angle_deqp_gles3_tests
angle_deqp_gles31_tests
angle_deqp_khr_gles2_tests
angle_deqp_khr_gles3_tests
angle_deqp_khr_gles31_tests
angle_deqp_khr_gles32_tests
Bug: b/281128706
Bug: angleproject:8157
Change-Id: If69361db7b4c6b739a84d158320ea86eda2d14f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559448
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
c74dae15
|
2023-05-12T12:45:44
|
|
Vulkan: patch vertex attrib and shader input mismatch.
opengl es spec didn't specified vertex attirb input data type
mismatch with vertex input data type. For this change, it will
change the attrib format to match the vertex input format. while
keep the same data size. (expect normalized data)
Bug: b/280241844
Change-Id: Ib28a18fe495b779d5bb0e8e43887bd36b0037dba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4528299
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
6d936bef
|
2023-05-18T11:51:05
|
|
Restore sync_restricted_traces_to_cipd upload progress bar
https://crrev.com/c/4538368 suppressed stdout for all cipd invocations
to reduce noise. This restores stdout piping to the calling process for
uploads only, as cipd shows a useful progress bar during uploads.
Bug: angleproject:8137
Change-Id: Ida7e43bc55af4dda1be768c65784fe3bc0656955
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545407
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
80e60bbc
|
2023-05-09T12:46:18
|
|
Validate non-precision qualifiers in GLSL shaders
Add validation to reject non-precision qualifiers on struct members
in GLSL shaders, as per the GLSL ES 3.2 specification,
section 4.1.8: Structures
Tests: KHR-GLES3*.shaders.negative.non_precision_qualifiers_in_struct_members
Bug: angleproject:8045
Change-Id: I863ae631b09ff773a826d542f387072491489699
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4534656
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
9e47cbd3
|
2023-05-18T14:40:37
|
|
Capture/Replay: Rework trace EGLDisplay handling
Refactor the trace-replay EGLDisplay handling to allow
initializing the global EGLDisplay handle in the
InitializeReplay4() body. This included adding
support for eglGetCurrentDisplay() to the EGL-on-
WGL shim.
Test: angle_trace_tests --gtest_filter=infinity_ops
Bug: b/282725258
Change-Id: I2319fd9a35f8fb9c0a7f10547ca39f49ce402b8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4546267
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
6d3e5870
|
2023-05-17T16:42:47
|
|
Metal: Disable Metal support on NVIDIA GPUs
NVIDIA GPUs are in a very small number of Macs and we don't have have
adequate test coverage to properly support them.
Add the disable_metal_on_nvidia feature to control support for NVIDIA
at runtime. Also factor the support of GPU family 1 into a feature.
Bug: angleproject:8170
Change-Id: I160036d710cc9e278eb77e351a483b9f5b69e8ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544659
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
ac4649ef
|
2023-05-17T12:50:59
|
|
Vulkan: Update last CRC check for pipeline cache
* In GetAndDecompressPipelineCacheVk(), a mismatch in the final CRC
check before decompression is now fatal. If the expected CRC is
non-zero, the cache header data will be logged before crashing.
The only exception is when the expected CRC is 0, in which case
there will only be a warning about the CRC mismatch.
Bug: b/246683126
Change-Id: Ic2eb882bcc692b2a8f026cc90a0185a29d48f382
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545957
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
42bd78b2
|
2023-05-23T14:21:14
|
|
Remove assertion in SyncEGL::onDestroy that the sync is valid
When a egl::Sync objecct is created in egl::Display, it's wrapped in
the RAII object angle::UniqueObjectPointer which calls onDestroy and
the destructor on the sync when leaving scope due to an error. If the
SyncEGL fails to initialize, it will still have onDestroy called. This
patch makes sure that we don't assert in that case.
Bug: chromium:1434602
Change-Id: I501a0173328e4d9d01474d1084c64ef178896f17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4556167
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7abc5248
|
2023-05-19T00:00:00
|
|
Vulkan: Enable VK_EXT_depth_clamp_zero_one
Replaced the 'depth_clamping' workaround
with the dedicated extension or explicit
fragment depth clamping.
Fixed: angleproject:3970
Bug: angleproject:8077
Change-Id: Ia7666fcb3e0e949922c13a3fd11b818cbc5a8e26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545084
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3f633521
|
2023-05-18T21:27:00
|
|
Vulkan: Fix handling inactive unnamed I/O blocks in SPIR-V
When an unnamed I/O block already exists, later inactive unnamed I/O
blocks were not being added to the list of inactive varyings, causing
the SPIR-V transformer to trip up
Bug: b/283017896
Change-Id: Ida5b38e1a03da2b336d5904caa44f53dbdfb8aa3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544590
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c04ad8e0
|
2023-05-17T10:59:36
|
|
Tests: Add Honkai: Star Rail trace
Test: angle_trace_tests --gtest_filter="*honkai_star_rail*"
Bug: b/283129009
Change-Id: I4c41345b83b7ea2429bccb8a814994bcb13a7486
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545308
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
ea0b1b7b
|
2023-05-19T15:26:50
|
|
Selectively advertise base vertex and instance fns
On newer Mali GPUs (Valhall), the glDraw*BaseVertex* implementations
seem to be buggy and cause noticable artifacts. Chrome uses the
presence of baseVertexBaseInstanceANGLE and baseInstanceEXT
extensions to determine whether it can draw with a base vertex or to
fallback to manually offsetting the vbo.
This CL disables these extensions on Mali Valhall so that Chrome
takes the fallback path instead to fix the visual artifacts.
Bug: b/280931795
Change-Id: Ic27e37465283ca3338747b53aa7888c7eba4b7b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4549682
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f382b244
|
2023-05-19T14:28:26
|
|
Add ci/linux-trace disabling logic to ANGLE script
Currently disabled by this line in chromium/tools/build repo:
https://crsrc.org/b/recipes/recipe_modules/angle/api.py;drc=e768c9b9c2a9b34346f9c009341761a034df7a00;l=91
I will remove that logic after this CL lands. This way we can decide
whether to run this test inside ANGLE repo.
Bug: angleproject:6085
Change-Id: I8efafb11149cda1fd47a5e9a95612e521823493a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4549681
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
7d4c6d1d
|
2023-05-09T12:19:54
|
|
Allow glDelete* while PLS is active
Banning glDelete* is extremely dangerous. It will almost definitely
cause memory leaks in client code, and it makes JS garbage collection
needlessly complex.
Instead, specify that PLS is implicity deactivated if the client deletes
anything that is attached to the current draw framebuffer during a PLS
rendering pass.
Bug: chromium:1421437
Change-Id: I3a18ee6b5d5567431e6fa3eccea58cb049845502
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4521436
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
b76166d0
|
2023-05-18T09:57:25
|
|
Vulkan: Separate image and sampler 2D view of 3D features
The sampler feature is used to determine if EGL_KHR_gl_texture_3D_image
can be exposed. The image feature is used to support base GLES 3.1
storage images.
Bug: b/274478146
Change-Id: Ifb283633078ace7ee65f8aafe756d0a02b727bd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545005
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
80dd54f9
|
2023-05-17T22:16:59
|
|
Vulkan: Enable VK_EXT_image_2d_view_of_3d and set flag
Based on a change by Yiwei Zhang <zzyiwei@chromium.org>
Enabling the extension was missed from
https://chromium-review.googlesource.com/c/angle/angle/+/3648586, and
some implementations do rely on the feature enablement (e.g. RADV). This
also fixes the VVL violations on satisfied implementations.
Additionally, the VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT flag is
always set on 3D images when this extension is supported; it is
needed for both sampled and storage images, not just storage images.
Bug: b/274478146
Change-Id: Ibc210275e2d39ac0c54d1ae4c2451a5402360972
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544762
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
45f91a8c
|
2023-05-08T13:11:44
|
|
Deinitialize PLS planes when their texture is deleted
The spec originally called for PLS planes to be converted to memoryless
when their texture was deleted, but this is not compatible with WebGL,
which does not support memoryless planes. Change the behavior to
deinitialize them instead.
This change requires the addition of a new observer message,
angle::SubjectMessage::TextureIDDeleted, which PLS uses to deinitialize
a plane when the app deletes its texture.
Bug: chromium:1421437
Change-Id: I58fd91003747160f0a1abc1a8a7a87668890ba1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518565
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
8fdb164b
|
2023-05-11T10:03:57
|
|
Capture/Replay: Get and use actual EGLDisplay in trace
ANGLE traces were using ANGLE_NO_DISPLAY for EGLDisplay args
in traces. After the EGLSyncMap was added this caused error
messages in Android and Linux playback of some traces. Added
a global EGLDisplay to traces and initialized it with the
proper value.
Test: angle_trace_tests --gtest_filter=infinity_ops
Bug: b/282725258
Change-Id: I1e6522cd4fdfee136c1e296805dac9d9f71256f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4534096
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
bcbf23c5
|
2023-05-16T11:08:13
|
|
When loading SwiftShader on Mac, look in "Libraries"
If ANGLE is statically linked into Chrome, SwiftShader's dylibs will
be in the Libraries folder. Search in both the current module directory
and the Libraries folder to handle both cases.
Bug: chromium:1445969
Change-Id: I1d6ca3bb7b77fe0c23cb932c95f22f1754eaf9e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4538366
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b795a6a8
|
2023-05-17T10:07:58
|
|
FrameCapture: Disable GL_EXT_texture_mirror_clamp_to_edge
This extension isn't supported on many drivers.
Disabling the extension allows for a more portable trace.
Test: Honkai: Star Rail trace
Bug: angleproject:8168
Change-Id: I840f07219b8064a232c2927d3c89aeca87f173f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545307
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mike Schuchardt <mikes@lunarg.com>
|
|
c1fc512b
|
2023-05-16T17:14:23
|
|
Manual roll VK-GL-CTS from e3b9db9ad121 to 876d164bd88a (32 revisions)
Manual roll requested by yuxinhu@google.com
* Skipped the following tests:
dEQP-EGL.functional.fence_sync.valid.egl_fence_persistent_buffer
KHR-GLES31.core.texture_buffer.texture_buffer_errors
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/e3b9db9ad121..876d164bd88a
2023-05-16 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3
into vk-gl-cts/main
2023-05-16 piotr.byszewski@mobica.com Merge
vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main
2023-05-15 piotr.byszewski@mobica.com Fix vkExtensionFunctions.inl
2023-05-15 javed@igalia.com Add coverage for specific synchronization2
access flags
2023-05-15 cturner@igalia.com Add VPS handling for h265 tests
2023-05-15 ziga@lunarg.com Fix api version check in entry_points test
2023-05-15 matt.coster@imgtec.com
VK_FORMAT_FEATURE_TRANSFER_{SRC,DST}_BIT are implied on Vulkan 1.0
without VK_KHR_maintenance1
2023-05-15 ziga@lunarg.com Set missing dynamic states in
null_color_blend_att_ptr tests
2023-05-15 scerveau@igalia.com vulkan-video: update ESExtractor to
v0.3.3
2023-05-15 cturner@igalia.com Add extra checks for FENV_ACCESS support
on 32-bit ARM
2023-05-15 rgarcia@igalia.com Test large values when converting from
float to 64-bit ints
2023-05-15 ziga@lunarg.com Enable graphicsPipelineLibrary feature when
libraries are used
2023-05-15 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.6
into vk-gl-cts/main
2023-05-15 alexander.galazin@imgtec.com Notice of withdrawal of Vulkan
CTS 1.3.2.x
2023-05-08 rgarcia@igalia.com Test multi-value sample mask with dynamic
rasterization samples
2023-05-08 rgarcia@igalia.com Test GPL with null
VkPipelineRenderingCreateInfo contents
2023-05-08 rgarcia@igalia.com Test EDS3 null pipeline state pointers
2023-05-05 ziga@lunarg.com Add tests for pipeline robustness with cache
2023-05-05 debarshid@google.com Implement Sync Tests between CPU and GPU
2023-05-05 chrisglover@google.com Add tests for EXT_gl_colorspace_bt2020
2023-05-05 cturner@igalia.com Fix
VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04849
2023-05-05 cturner@igalia.com Fix
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07163 validation error
2023-05-05 cturner@igalia.com Fix memory corruption during validation
for decode.h264_interleaving
2023-05-05 marcin.zajac@mobica.com fetch_sources.py for cygwin and mingw
2023-05-05 gleese@broadcom.com Fix VK/VK-SC generated file inclusion
2023-05-05 gleese@broadcom.com Remove unused VKUTIL_LIBS
2023-05-05 rgarcia@igalia.com Test read-only depth/stencil attachment
with VRS
2023-05-05 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5
into vk-gl-cts/main
2023-05-04 rgarcia@igalia.com Test some EDS3 line rasterization
parameters with mesh shaders
2023-05-04 rgarcia@igalia.com Test dynamic blend equation with dual
source blending
2023-05-03 piotr.byszewski@mobica.com Update vulkan-docs to current
version
2023-05-03 cturner@igalia.com Update removeTags in fetch_sources.py for
glslang
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,yuxinhu@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: angleproject:8166
Bug: angleproject:8167
Bug: angleproject:8169
Change-Id: I0fb573b382e63bf4820a083759e57647f6159763
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544088
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
cda716b3
|
2023-05-12T15:43:35
|
|
Expand numChunks to 16 bits in cache header
On some devices, the number of chunks for the pipeline cache header
might exceed the 8-bit limit.
* numChunks and chunkIndex are expanded to 16 bits.
* Padding added for the alignment of CacheDataHeader.
* Updated the assert checks for numChunks and chunkIndex.
Bug: b/246683126
Change-Id: I40a4224e845dc5bc6e415ec5f15b16f60f7923af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4528541
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8539177c
|
2023-05-12T15:27:03
|
|
Vulkan: Change pipeline cache header into class
Currently the pipeline cache header is represented by a single value
of type uint64_t. This prevents us from expanding the header if needed,
for example if there is a need to increase the size of any of the data
already included, such as numChunks, or add new data to the header.
* Added the class CacheDataHeader to RendererVk.cpp, which is comprised
of various elements of fixed size.
* Replaced the uint64_t with CacheDataHeader. memcpy() is used for data
transfer.
* The order of the values is based on LSB, similar to the order in
the original uint64_t.
* Removed kBlobHeaderSize, replaced with sizeof(CacheDataHeader).
* In GetAndDecompressPipelineCacheVk(), replaced the assert for chunk
index 0 with a warning regarding unexpected values and the function
returning without success. The assert was removed since in the case
of expanding the chunk index beyond 8 bits, a non-zero value could
be decoded.
* numChunks and uncompressed data size are also checked to make sure
they are non-zero before continuing the decompression. Otherwise,
the function would return with no success.
Bug: b/246683126
Change-Id: I4caaaef28c3e9ab2a7ca22f89962c11705577be5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4528540
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
7aadc962
|
2023-05-05T19:28:17
|
|
Ban transform feedback and blend extensions with PLS
Transform feedback can lead to render pass breaks in the Vulkan backend.
EXT_blend_func_extended may restrict the number of draw buffers
depending on API state, which can invalidate a PLS implementation.
KHR_blend_equation_advanced does not allow multiple draw buffers, which
is required by some PLS implementations.
Bug: angleproject:7279
Change-Id: Id89f0e485ee65f55d802b121018f13b0028d8029
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4510716
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
ec308b35
|
2023-05-15T15:03:10
|
|
Vulkan: Add feature to limit sample count to 2
This CL adds a feature called `limitSampleCountTo2`. Using it will
have the Vulkan backend limit max samples to 2.
Why 2? That's the minimum required in Vulkan to multisample without
error. Here's an example validation error:
vkCmdResolveImage: srcImage sample count is VK_SAMPLE_COUNT_1_BIT.
The Vulkan spec states: srcImage must have a sample count equal to
any valid sample count value other than VK_SAMPLE_COUNT_1_BIT.
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdResolveImage-srcImage-00257
Using a limit as opposed to forcing a value allows non-multisampling
(sample count of 1) to continue working.
To see how tests fare when the feature is set, see the following test
results that force the value on:
https://chromium-review.googlesource.com/c/angle/angle/+/4534098/4
Test: adb shell setprop debug.angle.feature_overrides_enabled limitSampleCountTo2
Bug: b/279498079
Bug: angleproject:8162
Change-Id: I1df2822709151e6084c32055b5aff444e0b10db5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518562
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Greg Schlomoff <gregschlom@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
5ab2fa96
|
2023-05-12T08:38:19
|
|
Vulkan: Move texture QFOTs to syncState()
... (and getAttachmentRenderTarget() which is syncState()-like
for deferred clear) so that QFOTs are not actually scheduled until
first use. SurfaceFlinger optimistically creates EGL images and
textures for AHBs in case it does need them in the future.
However, the images and textures may go unused. Prior to this
change, ANGLE would create pending QFOT barriers while importing
AHBs into EGL images and GL textures. However, SurfaceFlinger may
not be doing any "real work" (other than repeatedly creating and
destroying EGL images and GL textures) which would result in the
command buffers containing the QFOTs being flushed. This can
result in a large build up of unreleased memory (as the
VkDeviceMemory would still be kept alive by the reference from
the unflushed QFOT command buffer) and lead to the low memory
killer nuking processes.
Bug: b/282075554
Test: cts -m CtsOpenGLTestCases
-t android.opengl.cts.GLSurfaceViewTest
Test: adb shell dumpsys SurfaceFlinger
Test: angle_end2end_tests
--gtest_filter=ImageTestES3.AHBImportReleaseStress/ES3_Vulkan
Change-Id: I7776abb2c6f834e96aa3926c26e77c53352ee561
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4527437
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
10ac4803
|
2023-05-16T11:49:01
|
|
sync_restricted_traces_to_cipd checks for extra files
Do not allow files outside of the expected ones (TraceFiles in json)
* Ran this check on existing traces: we have a few extra cpp files in
goddess_of_victory_nikke, lilys_garden
Ask for confirmation before uploading (--upload to bypass)
Other cleanup (threading instead of multiprocessing, much less noisy
logging etc)
Upload is no longer done in parallel. This might mean slower upload of
large batches (batch upgrade in experimental?) but would make failures
easier to understand.
Bug: angleproject:8137
Change-Id: I71530b886541e8b1afe9d436bf300006afb06bd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4538368
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c2c8b062
|
2023-05-11T22:38:48
|
|
[Risc-V] Fix definition of kAndroidOpenGLTlsSlot.
On Risc-V, ANGLE was using a TLS offset of 3.
This worked... sometimes!
On Risc-V, the android OpenGL TLS slot is supposed to be -5,
as per tls_defines.h.
Tested by running cuttlefish with Swiftshader + ANGLE on Risc-V
Bug: b/273278430
Change-Id: Ib32f7dbcc158085b75f4befc277a03229ff87152
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4521034
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Jean-François Geyelin <jif@chromium.org>
|
|
6f959e07
|
2023-04-28T16:00:11
|
|
Vulkan: Add non-device memory option for VMA image
* Updated the required flags for allocateAndBindMemory() to no longer
include VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, though still preferred.
This allows VMA to allocate from another memory type if the device
is out of memory.
* Added a debug message to indicate when allocated memory for VMA image
does not have all the preferred property flags.
* Also added a warning in the case of memory allocation fallback.
* Added a perf counter to keep track of image allocation fallbacks from
the device memory.
* deviceMemoryImageAllocationFallbacks
* Added a test to make sure that VMA images can still be allocated from
other memory types even if device memory is unavailable.
* VulkanImageTest.AllocateVMAImageWhenDeviceOOM
Bug: b/280304441
Change-Id: Ic452c18ded25345cdb7e271442372b99aede045e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4493483
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
560ba1c6
|
2023-05-13T01:42:21
|
|
Revert "Suppress VUID-vkCmdDrawIndexed-None-0784x"
This reverts commit aa6291aa43aa34ed5eb68c6b7faaba94ce08ef74.
Reason for revert: The roller was successful. The issue seems to have been fixed.
Original change's description:
> Suppress VUID-vkCmdDrawIndexed-None-0784x
>
> * Suppressed the following VVLs
> * VUID-vkCmdDrawIndexed-None-07840
> * VUID-vkCmdDrawIndexed-None-07841
> * VUID-vkCmdDrawIndexed-None-07843
> * VUID-vkCmdDrawIndexed-None-07844
> * VUID-vkCmdDrawIndexed-None-07845
> * VUID-vkCmdDrawIndexed-None-07847
> * VUID-vkCmdDrawIndexed-None-07848
>
> Bug: angleproject:8159
> Change-Id: Id516d0a8e677b00b3f46a456d07386c5fd91d6dc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4514440
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:8159
Change-Id: I00d45397cf72facfc60674563f95e81df80cc7c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4529339
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
17dbf435
|
2023-05-13T01:11:19
|
|
Revert "Suppress more of VUID-vkCmdDraw-None-0784x"
This reverts commit c441206103b14f68fc5cfa9434f4058429a714dd.
Reason for revert: The roller was successful. The issue seems to have been fixed.
Original change's description:
> Suppress more of VUID-vkCmdDraw-None-0784x
>
> * Suppressed the following VVLs
> * VUID-vkCmdDrawIndexed-None-07840
> * VUID-vkCmdDrawIndexed-None-07841
> * VUID-vkCmdDrawIndexed-None-07843
> * VUID-vkCmdDrawIndexed-None-07847
>
> Bug: angleproject:8151
> Bug: angleproject:8159
> Change-Id: I7fe36cfa34b8157af0be7f0c35779185a6b341aa
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4514442
> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:8151
Bug: angleproject:8159
Change-Id: I41082df93a55c4eec46ad7d0d048a8159472a7d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4528542
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
c94ee61c
|
2023-05-11T16:40:09
|
|
Tests: Update AHB test to skip if format/usage combo not supported
Bug: b/282075554
Test: angle_end2end_tests --gtest_filter=ImageTestES3.*/ES3_Vulkan
on Cuttlefish
Change-Id: Icd8a9ad71d5b59d5754f4c32f3c4dffb32bf845c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4527436
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ad01f53c
|
2023-05-11T09:44:13
|
|
Vulkan: Add additional nullptr check in ShouldReportDebugMessage
Some platforms are using the callback for non-VVL messages, and we
just need an additional nullptr check for pMessageIdName when
deciding whether to print it.
Test: Trace tests on S23 with VVL enabled
Bug: angleproject:8163
Change-Id: Id76903e01be859f6ae7a6d253ed32ae54cd682ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4522466
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
b526112d
|
2023-05-12T11:31:06
|
|
Tests: include system EGL configs for ES3.1 and ES3.2 tests
These are enabled with angle_test_enable_system_egl=true
Example:
[ OK ] ProgramPipelineTest32.CreateProgramWithTransformFeedbackVarying/ES3_2_EGL (280 ms)
Bug: b/278585075
Change-Id: Ic991b3bc6fa36a6856b28fcfc7a433ac183a2c4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4526358
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
25def1a0
|
2023-05-11T17:52:09
|
|
Android test runner expects 'gtest' and marks test list
gtest is passed as the first argument when running as
out/Android/angle_trace_tests, previously skipped via argv[2:]
--list-tests usually includes "Tests list:" / "End tests list." markers
around the list - which is how GetTestsFromOutput finds them, but we
didn't include them in stdout. There is some other noise in stdout on
Android so instead of printing full stdout just add the markers back
Bug: b/276474703
Change-Id: I20ba59eb25e543b005974674b0f3688cd767b1aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4519232
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
b1395bcb
|
2023-05-09T12:34:55
|
|
GL: Disable EXT_clip_control on Mali-G72 and G76.
Querying the clip control state from the driver when sychronizing
external contexts generates driver errors.
Simply disable this extension in this configuration for now.
Chrome is currently not using it for rasterization.
This issue was noticed on specific Huawei devices in the wild. It
hasn't been observed on other OEMs.
Bug: chromium:1434317
Change-Id: I88d9bff1933274f61020b75e68aee9c94b0b684a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518062
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
|
|
914d798d
|
2023-05-10T14:30:15
|
|
Dedup Gold properties code
Updates ANGLESkiaGoldProperties to use the newer method of providing the
repo's root directory instead of completely overriding how the HEAD SHA1
is obtained.
There should be no functional change as a result of this.
Bug: chromium:1443021
Change-Id: I7464dabf2c31008b119c8f6a8454c6a7f8f9a68f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4521886
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
8b9440b6
|
2023-05-01T15:31:01
|
|
Vulkan: add option to control pipeline cache data compression.
Bug: b/258207403
Change-Id: I487b1cadbacfa2f7ee889a8f58278307a126a391
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497248
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
deab374e
|
2023-05-09T10:29:21
|
|
Vulkan: skip releaseStagedUpdates when not owned
this is only a temp quick fix for b/279677207. may introduce
rendering issue there are still other multi-thread race issues.
the stagedupdates come from defer clears or empty entries.
Bug: b/279677207
Change-Id: Idfd21120e5fe916d0d9d205dba2d71695085a5d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518740
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
b0f9c01e
|
2023-05-01T12:54:10
|
|
metal: adds feature that minimizes generated shader differences
This adds a feature (enabled by default) that results in
generating the same code regardless of whether emulateAlphaToCoverage
is enabled or addExplicitBoolCasts. This is done to maximize
cache sharing.
Bug: chromium:1423136
Change-Id: Ia491f13469c750fc2c45aecf1f93fed53b782dc5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4496254
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
|