|
d3753039
|
2021-10-14T17:21:47
|
|
Reland "RendererVk: Enable VK_KHR_image_format_list on SwiftShader."
This is a reland of 8559d50b3b6fcc71b939be4a2c0ca3b48a797d61
Original change's description:
> RendererVk: Enable VK_KHR_image_format_list on SwiftShader.
>
> This reverts commit 08b42714f51dc87e16d52757b4b115037218a4ba.
>
> Bug: angleproject:5281
> Bug: chromium:1245774
> Change-Id: I773d95225301ccf3c2807fd2269b6d7da1195a16
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223679
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5281
Bug: chromium:1245774
Bug: chromium:1260941
Change-Id: Ic6992bcc4b44aa16a2931271350a6f6d2a23d9c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232555
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
bb0e0dea
|
2021-10-18T21:46:44
|
|
Roll vulkan-deps from 5be75e2ae595 to a9d8c46f2b61 (6 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/5be75e2ae595..a9d8c46f2b61
Changed dependencies:
* spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/06ebc4806b..35fd0e17d0
* vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/6d9e5b07d6..61688e09fe
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/77cd59ba80..78b1f89454
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC syoussefi@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:6584
Change-Id: I8da9da9f82ccaf781d89a4f7975fb7520d3b6b28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226052
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
670b58d8
|
2021-10-18T19:50:10
|
|
Revert "RendererVk: Enable VK_KHR_image_format_list on SwiftShader."
This reverts commit 8559d50b3b6fcc71b939be4a2c0ca3b48a797d61.
Reason for revert: Causes MSAN failures. See crbug.com/1260941
Original change's description:
> RendererVk: Enable VK_KHR_image_format_list on SwiftShader.
>
> This reverts commit 08b42714f51dc87e16d52757b4b115037218a4ba.
>
> Bug: angleproject:5281
> Bug: chromium:1245774
> Change-Id: I773d95225301ccf3c2807fd2269b6d7da1195a16
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223679
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5281
Bug: chromium:1245774
Bug: chromium:1260941
Change-Id: Id6712aed68ed04d2525549ae016594aa05243a5d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226312
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eb1d2474
|
2021-10-04T20:23:26
|
|
Vulkan: Add R8G8B8_UNORM to vk_format_map.json
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>
|
|
8ef1b2a2
|
2021-07-15T15:27:15
|
|
Vulkan: Add BufferMemoryAllocator class
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>
|
|
123ba58d
|
2021-10-14T11:56:35
|
|
Vulkan: Remove "last submitted serial".
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>
|
|
8559d50b
|
2021-10-14T17:21:47
|
|
RendererVk: Enable VK_KHR_image_format_list on SwiftShader.
This reverts commit 08b42714f51dc87e16d52757b4b115037218a4ba.
Bug: angleproject:5281
Bug: chromium:1245774
Change-Id: I773d95225301ccf3c2807fd2269b6d7da1195a16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223679
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ea580484
|
2021-10-05T13:40:01
|
|
Vulkan: Add feature flag to prefer CPU copy instead of staged update
For ARM GPU, use GPU to do buffer to buffer copy has performance penalty
due to potential bubble in the vertex pipeline. This CL adds a feature
flag preferCPUForBufferDataSubData so that we can enable this behavior
for ARM GPUs.
This CL also tracks if GPU has referenced this BufferVk's storage since
it got new storage. Due to sub-allocation, we may get a new sub-range of
the same BufferHelper object when allocating new storage. But we
currently do not have a way to track GPU progress of the sub-range of a
buffer. So we will end up using BufferHelper's queueSerial to decide if
it is still GPU busy or not. This CL adds mHasBeenReferencedByGPU
boolean variable that will set to false when we got a new allocation and
set to true as soon as buffer is been referenced by any GPU command. We
use this to avoid checking queueSerial if it never been referenced by
GPU. This is a temporary workaround for the bug, the full fix is tracked
by https://issuetracker.google.com/201826021
Bug: b/200067929
Change-Id: I231fb0a678b0165a2ce1775d0aa4dbe7512fb4a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3183398
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>
|
|
2ab7a178
|
2021-10-06T13:22:19
|
|
Vulkan: Remove suppressions for SPIR-V validation
A bug in VVL produced validation errors regarding texel gather offset,
but it seems to be fixed now.
Bug: angleproject:6491
Bug: angleproject:6492
Change-Id: Ia20816ea0be65aa185a8ee89cf58edd33e452875
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209086
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
53388e54
|
2021-10-08T15:43:34
|
|
Vulkan: Remove VVL suppresions for VK_EXT_provoking_vertex
Suppressions were added as ANGLE was using an unreleased extension.
This extension is released and supported by VVL now.
Bug: angleproject:4063
Change-Id: Ief23ac1ac3a3e6ecbd7b04a6b583302bbdf48398
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213298
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4ad55d07
|
2021-10-05T15:45:05
|
|
Vulkan: Turn 1-view multiview FBOs into no-multiview
When only 1 view is enabled, ANGLE continued to append a
VkRenderPassMultiviewCreateInfo struct to the render pass. VVL produced
an error when transform feedback was used in this case, quoting that
multiview and transform feedback cannot mix.
This change makes sure that 1-view framebuffers are threated as if they
were not multiview.
Bug: angleproject:6478
Change-Id: If079c9a052f822342a49a9cc880be2577a356b64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206269
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4c23b817
|
2021-10-08T19:29:08
|
|
Roll vulkan-deps from d78bd80b30f6 to 651804d6bf55 (11 revisions)
Suppressing SYNC-HAZARD-WRITE_AFTER_WRITE messages after
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3403
https://chromium.googlesource.com/vulkan-deps.git/+log/d78bd80b30f6..651804d6bf55
Changed dependencies:
* glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/c8cdbac705..b9ba4c5743
* vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/8c0ee92eb6..aeffbbd6b9
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/7a6a52723b..51279399ea
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC ynovikov@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:6550, angleproject:6551
Tbr: ynovikov@google.com
Change-Id: I8b85fd82fc1042a5632027b8d6fada123533f276
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3214695
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
74b2886f
|
2021-09-22T13:49:57
|
|
Vulkan: Try to use CPU to copy when preserving old buffer data
When glBufferSubData is called, we may acquire a new buffer if buffer is
still GPU busy. When this happened, we have to preserve buffer content
if old buffer has valid data in it. Instead of always use GPU to do
copy, this CL will check if GPU is not writing to the buffer, we will
just use CPU to do the copy form old buffer to new buffer from the
ranges outside subData, controlled by the feature flag
preferCPUWhenPreservingBufferData.
Bug: b/200067929
Change-Id: I42053104b2be8da5f399cca92e934254988f2fd8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3177322
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
86fe5f29
|
2021-10-04T17:44:12
|
|
VVL: Re-enable vkCmdDraw and vkCmdDrawIndexed
Re-enable the following VVL checks:
VUID-vkCmdDraw-None-02690
VUID-vkCmdDrawIndexed-None-02690
Bug: angleproject:4768
Change-Id: I1469d21634b28c96e0ac2f2b8c4cd4dfec271d2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3203176
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
dba896cf
|
2021-10-04T22:17:48
|
|
Vulkan: Suppress modified device count warning
This is a loader warning added in the following commit:
https://github.com/KhronosGroup/Vulkan-Loader/commit/8daad81803f5ed9b36a172c299140dde7a8c4494
It fires on our corp laptops that contain multiple GPUs (one
high-performance, one integrated). Most likely caused by Nvidia's
Optimus Vulkan layer.
It doesn't quite match the patterns of validation layers, but is
straightforward to skip by searching for the beginning of the
message.
Bug: angleproject:6514
Change-Id: Ia93896364cae9e879faf068a100064f2edd04af2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204141
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4f0e7e7f
|
2021-10-04T14:50:10
|
|
Vulkan: Remove extraCopyBufferRegion workaround.
Bug: angleproject:2838
Change-Id: I53ba3cf307f930ae9550d1bfee4650df6e826930
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3202475
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2f1d503b
|
2021-09-16T21:49:14
|
|
Vulkan: Fix Vulkan secondary command buffers
This change abstracts initialization, begin/end, reset and recycle of
command buffers such that both Vulkan and ANGLE secondary command
buffers are supported.
Bug: angleproject:6100
Change-Id: I8c79764ac98b599fda08fe45cf8c4f0a6573f0f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987873
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
98a6e0a4
|
2021-10-01T15:06:07
|
|
Suppress VUID-RuntimeSpirv-OpImage-06376
Bug: angleproject:6492
Change-Id: I5963506164ae70edf4f2e77401dc86794157f8f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200277
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
12e5a7db
|
2021-10-01T13:52:37
|
|
Suppress VUID-RuntimeSpirv-OpImage-06377
Bug: angleproject:6491
Change-Id: I0e9f8908077ea10685b7796b2c42086ae6520d05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200275
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
3de06bcd
|
2021-09-30T21:46:13
|
|
Roll vulkan-deps from 788a2f62acbe to 11c6360dd46f (144 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/788a2f62acbe..11c6360dd46f
Changed dependencies:
* glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/e0771b5d4c..581897f462
* spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/c2500e504d..97a438d214
* spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/6cae8216a6..ae217c1780
* spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/7e860e3831..ba4b390c36
* vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/9e62d02763..e500c7c809
* vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/20cf221e72..edccdb3444
* vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/642da192c8..a956d1a0e5
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/1e6ed74d5d..6d54fa0fe0
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC ianelliott@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:6478
Change-Id: I28a46296e5b3590601a61707f438d8b238be3ff6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198645
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
dff5c752
|
2021-09-28T11:27:06
|
|
Suppress VVL error: *InterfaceTypeMismatch
Suppress VVL error:
UNASSIGNED-CoreValidation-Shader-InterfaceTypeMismatch
Bug: angleproject:6442
Change-Id: I1d5412a1be7cba0b3571225d3f3d94c72349742f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3191390
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
eb1d5ca5
|
2021-01-29T15:34:49
|
|
Vulkan: Enable sync validation
Based on a change by tobine@google.com
Bug: angleproject:5290
Change-Id: Ieae1be5a29f0dcb3ea8aaa04e77fc402380a08b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3171432
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
2d79918f
|
2021-09-16T16:43:53
|
|
Vulkan: Pass command pool around
Preparatory work for re-enabling support for Vulkan secondary command
buffers. The command pool being passed around is not yet used.
Additionally, the work to allocate, initialize, reset and recycle
command buffers has been refactored to a helper class for better
abstraction.
The CommandBufferHelper class now holds a pointer to the pool it was
allocated from for clean up. Each ContextVk has its own command pool,
where Vulkan secondary command buffers are allocated from. The command
pool that CommandProcessor had was unused and is removed by this change.
Bug: angleproject:6100
Change-Id: I0d4fa6a76ef06e88779145ffe9c613518a8eb390
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3167213
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
06c73b3d
|
2021-09-21T13:37:29
|
|
Vulkan: Lift DS feedback read-only suppression.
This is now fixed upstream in the spec and the VVL.
Bug: angleproject:4975
Change-Id: I6938bae49c982cc4f366c01ab10aedcaa784f972
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3173252
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
458389f2
|
2021-09-02T22:41:40
|
|
Vulkan: Support Linux dma-bufs
This change adds support for EGL_EXT_image_dma_buf_import and
EGL_EXT_image_dma_buf_import_modifiers on top of Vulkan's
VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier.
Bug: angleproject:6248
Change-Id: I581987f88e9ddcf351dc721f499f63912dca05f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3145610
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fc9457fb
|
2021-09-15T10:46:55
|
|
Revert "Vulkan: Suppress CoreValidation-Shader-InterfaceTypeMismatch"
This reverts commit 62c70b449d2ef5e195c583f7a7627f14587a51dc
Reason for revert: VVL bug fixed upstream
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3264
Original change's description:
> Vulkan: Suppress CoreValidation-Shader-InterfaceTypeMismatch
>
> New VVL error causing test failures.
>
> Bug: angleproject:6382
> Change-Id: I61801828c0879a33502a2d9582e2e7da1bdb9250
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3155571
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Brandon Jones <bajones@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:6382
Change-Id: I41202a1d577fb6d9204ead32df134e6c5b3a1a86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163238
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
371542cd
|
2021-08-23T23:10:09
|
|
Vulkan: Use VK_EXT_load_store_op_none
With read-only depth/stencil attachments, ANGLE utilizes storeOp=NONE to
optimize memory bandwidth (by avoiding write back of tile memory at the
end of the render pass). Simultaneoulsy, this avoids a synchronization
hazard with the next write to that depth/stencil image.
If a framebuffer contains a depth/stencil attachment but it's unused,
ANGLE utilizes loadOp=NONE/storeOp=NONE to effectively remove any memory
bandwidth wasted on the attachment.
Bug: angleproject:5371
Change-Id: I76cbadbf1194041532ac4b690ffe087298f2de51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114232
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
62c70b44
|
2021-09-10T16:54:49
|
|
Vulkan: Suppress CoreValidation-Shader-InterfaceTypeMismatch
New VVL error causing test failures.
Bug: angleproject:6382
Change-Id: I61801828c0879a33502a2d9582e2e7da1bdb9250
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3155571
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e22afce9
|
2021-09-07T12:34:10
|
|
Vulkan: Drop requirement for inheritedQueries
At this point only timer queries depend on this feature, which can be
disabled instead of dropping support to ES2.0.
Bug: angleproject:6100
Change-Id: I8389a593d308830e3f820a4541d7accc886fb70f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3145611
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2a7855d2
|
2021-09-01T14:53:31
|
|
Revert "Vulkan: Suppress layered FB validation error."
This reverts commit 9872e5af32c31064b0a80eb5bf3fc8ce70db0dbf.
Reason for revert: VVL bug fixed in https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/3237
Original change's description:
> Vulkan: Suppress layered FB validation error.
>
> This is popping up with a new roll of the VVL. Instead of fixing it,
> we can disable it for now.
>
> Bug: angleproject:6293
> Change-Id: I6cd12a24b26a4f536db16631e198317e8c4d9fcc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103505
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:6293
Change-Id: I9eb48aea1920a45a9bdad7953b2122dd595d31c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136096
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
797ebdde
|
2021-09-02T23:15:34
|
|
Vulkan: Suppress VUID-vkCmdDraw-blendEnable
A new VVL causes failures in BlendIntegerTest.MRT*
Bug: angleproject:6355
Change-Id: If62b1a7934574acaeb95601d7fb0a61dc5d9c99a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140159
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
08b42714
|
2021-08-05T17:39:41
|
|
RendererVk: Skip VK_KHR_image_format_list on SwiftShader.
Enabling the extension produces timeouts on Linux when running Chromium
test suites like viz_unittests with a Debug configuration.
Bug: angleproject:5281
Bug: chromium:1245774
Change-Id: I6241597dfe0300f3793524d5a73a4ef2cf0dc4eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140158
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
58ec0fbf
|
2021-09-02T11:47:48
|
|
Vulkan: Remove the forceCPUPathForCubeMapCopy workaround
This workaround has been disabled since
https://chromium-review.googlesource.com/c/angle/angle/+/2594707
Bug: angleproject:2822
Bug: angleproject:3055
Change-Id: Ie9cc12c7616cd9e1801dbd92e21822c63f4d0bef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140214
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ef96bde8
|
2021-08-28T23:59:33
|
|
Vulkan: Fix VVL error regarding geometryStreams
Addresses new validation error:
[ VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324 ] Validation Error: [ VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324 ] Object 0: handle = 0xb400007e8176af60, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xf1034461 | pCreateInfos[0].pRasterizationState pNext chain includes VkPipelineRasterizationStateStreamCreateInfoEXT, but geometryStreams feature is not enabled. The Vulkan spec states: VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled (https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324)
The validation was added in this commit:
https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/bdaec8454a27e65dd81f46bbfad1889b7a3e34f6
Test: World of Kings MEC
Bug: b/198101940
Bug: angleproject:6339
Change-Id: I3cfacc20d231d246500e83451c9ec6b74d9372f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3127942
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
41f7dedd
|
2021-08-05T16:48:17
|
|
Reland "VulkanExternalHelper: Use VK_KHR_image_format_list extension."
This reverts commit bd19620fcd599947a2fada3e02061d02d690d9eb.
Bug: angleproject:5281, chromium:1233561
Change-Id: I0dc2a142dc7de83c0bdbf2256e9fb372e56d177a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3122124
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9872e5af
|
2021-08-18T07:56:38
|
|
Vulkan: Suppress layered FB validation error.
This is popping up with a new roll of the VVL. Instead of fixing it,
we can disable it for now.
Bug: angleproject:6293
Change-Id: I6cd12a24b26a4f536db16631e198317e8c4d9fcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103505
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b1b760e7
|
2021-08-09T13:37:10
|
|
Ignore VUID-vkCmdClearAttachments-baseArrayLayer-00018
New message added in
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/3133
Blocks vulkan-deps rolls.
Bug: angleproject:6262
Change-Id: Iaaafe7539092cbe7eadd01e47b67071d60779929
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3081376
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ac5bcdb3
|
2021-08-02T18:04:49
|
|
Vulkan: Use custom volk init function.
This should ensure we're using ANGLE's version of the loader.
Bug: chromium:1235314
Change-Id: Ia7318a922e192ce669a8cece070ab518ea421fd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3067511
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0d06c3cf
|
2021-07-26T04:30:39
|
|
Fix some instances of -Wunused-but-set-variable.
Bug: chromium:1203071
Change-Id: I144165ae5ec47aba88658030a6ba3e371bf31ee7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053616
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bd19620f
|
2021-07-27T23:45:11
|
|
Revert "VulkanExternalHelper: Use VK_KHR_image_format_list extension."
This reverts commit 4222d5e5a03f85ca07253d54f3087684fe9447b3.
Reason for revert: errors on multiple builders when rolling into Chromium
https://chromium-review.googlesource.com/c/chromium/src/+/3057227
e.g.
https://ci.chromium.org/ui/p/chromium/builders/try/linux_chromium_asan_rel_ng/924126/overview
Original change's description:
> VulkanExternalHelper: Use VK_KHR_image_format_list extension.
>
> To retrieve correct size requirements when the VK_KHR_image_format_list
> extension is enabled, it must be used to match VkImages created in
> vk_helpers.
>
> RendererVk: Fully enable VK_KHR_image_format_list.
> Enable the extension on non-AMD and non-ARM platforms.
>
> Bug: angleproject:5281
> Change-Id: I3ca60bf6efcf9d9c10d4d96a3fe91b999eb044f7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035047
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Bug: angleproject:5281, chromium:1233561
Change-Id: I3b15bb2fc2fb779adac8bbf5d805727a25b5795c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3057071
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
4222d5e5
|
2021-07-16T16:26:17
|
|
VulkanExternalHelper: Use VK_KHR_image_format_list extension.
To retrieve correct size requirements when the VK_KHR_image_format_list
extension is enabled, it must be used to match VkImages created in
vk_helpers.
RendererVk: Fully enable VK_KHR_image_format_list.
Enable the extension on non-AMD and non-ARM platforms.
Bug: angleproject:5281
Change-Id: I3ca60bf6efcf9d9c10d4d96a3fe91b999eb044f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035047
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
|
|
d0c03ff4
|
2021-07-22T14:55:51
|
|
Vulkan: SPIR-V Gen: Fix lvalues passed to in/inout parameters
In GLSL, these values are semantically copied when passed to a function
as an in or inout parameter. For example in:
bool f(inout vec4 a, inout vec4 b)
{
a = vec4(0);
return all(equal(a, b));
}
var = vec4(1);
bool result = f(var, var);
result is expected to be false. In SPIR-V, every parameter is
semantically passed by "reference".
glslang conservatively uses temporaries to pass to functions. An
optimization in ANGLE didn't create temporaries for unindexed lvalues,
which did not take into account the above fact. This optimization is
limited to out parameters now.
Bug: angleproject:4889
Change-Id: Ie1b4b1cecba847ba63d5810d01d0856823b89ddc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046103
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c5f83c34
|
2021-07-22T11:56:25
|
|
Revert "Vulkan: Suppress VVL errors triggered by external formats"
This reverts commit f46df3978ab6102768048a6bf40e6f4989276065.
Reason for revert: VVL change rolled into ANGLE + Chrome.
Original change's description:
> Vulkan: Suppress VVL errors triggered by external formats
>
> Since several tests are hitting these and it may be a VVL bug,
> moving to ignore rather than skips.
>
> Bug: angleproject:6155
> Bug: angleproject:6168
> Change-Id: I38a5be8d792b8b13a490be895a68349bffe69c6e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028809
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Bug: angleproject:6155
Bug: angleproject:6168
Change-Id: I11696095300c214ca0b68624b0eb6763ba9d31f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043888
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1a4ac82a
|
2021-07-21T09:39:46
|
|
Vulkan: Disable border color on SwiftShader.
A bug with floating point clamping is breaking some tests on SwS.
Bug: angleproject:6200
Change-Id: Id608f5610a09e85f1bc41e38f20c6f7f0330f77b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041741
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
d2b659f9
|
2021-03-25T15:40:58
|
|
EGL: implement EGL_EXT_protected_content Context
Add Validation check to Contexts and Surfaces
Add Vulkan protected memory features and properties
Add protected member to Surfaces and Contexts
Implement hasProtectedContent in Vulkan
Add QueueFamily helper, extent DeviceQueueMap
Protected Swapchains always on for Android
Add EGLProtectedContentTest
Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
Bug: angleproject:3965
Change-Id: I9352b1e594f71bb4e89cee7137a468940d186b1b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2800413
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
011ef7ed
|
2021-07-09T01:33:57
|
|
Revert "Ignore VUID-VkSpecializationMapEntry-constantID-00776"
This reverts commit 0beafe862b4c21299d40b5ffcf98816828254a2a.
Reason for revert: VVL error no longer reproducible
Original change's description:
> Ignore VUID-VkSpecializationMapEntry-constantID-00776
>
> New check added in
> https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/2903
> Blocks VVL rolls.
>
> Bug: chromium:1226682
> Change-Id: Iaf12187c33a0c3736acae6e772277dbe6aa4c402
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007137
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bug: chromium:1226682
Change-Id: I7df7373fb52a1a64d94fd1973927cef4f89f2f05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3017555
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
5c8bf081
|
2021-06-08T13:12:24
|
|
Vulkan: Add support for YUV internal format extension
1. Add a function to upload YUV image data to textures
2. Modify stageSubresourceUpdate method to account for YUV images
3. Create VkSamplerYcbcrConversion when initializing ImageHelper
4. Update hasImmutableSampler to account for native YUV format support
5. Skip initializeNonZeroMemory for YUV formats
Bug: angleproject:5773
Test: Texture2DTestES3.TexStorage2D*Yuv*Vulkan*
Change-Id: I270f04bbf903cf2bf19f100eb95f32953d491c39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2947767
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a3f44ab8
|
2021-07-19T08:23:27
|
|
Vulkan: Remove loader logging message in RendererVk.
This was causing issues with a Chrome test.
Bug: chromium:1230474
Change-Id: I0e5e3df5c9ad5774d6f5a2b41f4f1429000fe81e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035247
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
48da1c35
|
2021-07-16T13:24:34
|
|
Vulkan: Prefer the local vulkan loader over the system one.
Load the Vulkan loader ourselves and give vkGetInstanceProcAddr to
volk. This allows us to always prefer loading from the current module
directory instead of using the platform-specific ordering.
Refactor angle::Library loading to use ModuleDir instead of
ApplicationDir.
CL originally authored by Geoff Lang.
Bug: chromium:1219969
Change-Id: I21d1926e90fd66e1c23cea7323991ae55f3d22d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035444
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
f46df397
|
2021-07-14T19:41:03
|
|
Vulkan: Suppress VVL errors triggered by external formats
Since several tests are hitting these and it may be a VVL bug,
moving to ignore rather than skips.
Bug: angleproject:6155
Bug: angleproject:6168
Change-Id: I38a5be8d792b8b13a490be895a68349bffe69c6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028809
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
31b06f5f
|
2021-07-12T10:06:04
|
|
Vulkan: Account for immutable samplers that need multiple descriptors
It is valid for immutable samplers to need more than 1 descriptor count.
Account for this possiblity while calculating descriptor pool size.
Bug: b/155487768
Bug: angleproject:5033
Bug: angleproject:5773
Bug: angleproject:6141
Change-Id: Ifb0ed3e4b3c01c61d81dd0c628101f31d4c8bd05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3005329
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
9274911d
|
2021-07-12T10:41:16
|
|
Vulkan: Update cube map array support check.
Bug: angleproject:5143
Change-Id: I0b774096ae762ae088a27ef1b4d52bf446562736
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021283
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8c07f3c1
|
2021-07-09T12:35:31
|
|
Enable cube map arrays on SwiftShader.
Bug: angleproject:5142
Change-Id: I51c58d20da155b90980f27425a99cff2555345fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018303
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b73eee71
|
2021-07-07T18:51:35
|
|
Reland: [Vulkan] Add DisplayVkNull
Currently all DisplayVk implementations depend on VK_KHR_swapchain and
VK_KHR_surface extensions. When running Chromium on Fuchsia these
extensions are never used (content is shown on the screen using
ImagePipe API without dependency on swapchain). ANGLE still depended
on these extensions for DisplayVkFuchsia.
This CL adds DisplayVkNull, which allows to run ANGLE without dependency
on swapchain. It's usable only offscreen and cannot present content on
a surface.
Bug: chromium:1203879
Change-Id: I5cadcdf46ed1cfb5ebb3cb69dbfef063e9e2b826
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3012368
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
0beafe86
|
2021-07-05T16:12:10
|
|
Ignore VUID-VkSpecializationMapEntry-constantID-00776
New check added in
https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/2903
Blocks VVL rolls.
Bug: chromium:1226682
Change-Id: Iaf12187c33a0c3736acae6e772277dbe6aa4c402
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007137
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
153240b2
|
2021-06-11T16:36:32
|
|
Vulkan: SPIR-V Gen: Support loops
Loops are similar to if-else in that they generate a number of blocks
where the first block specifies divergence (OpLoopMerge) and the merge
block. Differently from if-else, there is a block where the condition
is evaluated and a block which `continue;` leads to (this last block is
the only one allowed to back-jump to the beginning of the loop).
Bug: angleproject:4889
Change-Id: Ic59f4bf3e05fbf93cb5af85acd3bc4b0da8412af
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2957809
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
5b314268
|
2021-06-15T17:37:45
|
|
Vulkan: Support OVR_multiview and OVR_multiview2
Multiview is supported in Vulkan simply by specifying the number of
views in the render pass, and creating the appropriate image views. A
number of changes to the way image views and render targets are stored
are made to support those that don't cover the entire range of layers.
One particular detail that is not implemented in this change is the use
of queries in combination with multiview. Vulkan specifies that N
queries are actually produced (N being the number of views) which must
be summed by the application, but this is not currently done.
Bug: angleproject:6048
Change-Id: I1d4a9894c232d3a93d7a97c9fa0eedc334e57469
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2967625
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
b6adeb2f
|
2021-06-21T11:11:30
|
|
Vulkan: Use pipeline statistics query to emulate primitives generated
The VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT query produces
the same result as the GL primitives generated query. One caveat is
that in combination with rasterizer discard this query may not work.
This is emulated by disabling rasterizer discard when this query is
active and applying an empty scissor instead.
When VK_EXT_primitives_generated_query is released and supported, a
similar issue with rasterizer discard persists so this change will
facilitate using that extension as well.
Bug: angleproject:5430
Change-Id: Id45b6f058c5cb6837e04aa64b1efde28c104e4cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2976181
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
96dd515a
|
2021-03-31T14:21:16
|
|
Update glColorspace(EGL_KHR_gl_colorspace) enable logic
1. Enable glColorspace if VK_EXT_swapchain_colorspace is
supported, remove dependency on VK_KHR_image_format_list.
2. Enable VK_KHR_image_format_list support on Mali GPU.
3. Fix PbufferTest.ClearAndBindTexImageSrgbSkipDecode
test tolerance issue.
Bug: angleproject:2514
Bug: angleproject:5281
Change-Id: I2ed54a14afc7c3aee5a5980bd300ab052ebab3d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2793852
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b77a6c25
|
2021-06-16T11:01:14
|
|
Vulkan: Avoid using VK_WHOLE_SIZE when using dynamic offsets
Binding descriptor sets that use VK_WHOLE_SIZE with a dynamic offset
results in the VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979
validation error.
Updated the updateDefaultUniformsDescriptorSet function to use the
uniform's size instead of using VK_WHOLE_SIZE.
Bug: angleproject:5924
Tests: dEQP-GLES31.functional.shaders.multisample_interpolation.*
SimpleStateChangeTest.UniformUpdateTest*Vulkan
UniformTestES3.MatrixUniformUpload*Vulkan
Change-Id: Ie4633af61d59a9401f599d336a5b9040cdf18004
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950309
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5e631c5f
|
2021-05-20T11:21:18
|
|
Vulkan: Disable shadowBuffers feature
For PixelUnpack, if the feature is enabled, it always create a shadow
CPU mapped memory. Then when mapBuffer is called, it let user write to
the shadow memory. At unmapBuffer time, it memcpy the shadow buffer data
to context's staging buffer and then issue a vkCmdCopyBuffer from
context staging buffer to the PixelUnpack buffer. This involves too
many data copies. The proper way to do it is simply make sure to create
the buffer as CPU map-able and let user directly write to it. If we find
cases that CPU waiting for GPU to finish is causing performance issues,
there are two ways to improve/fix it: 1)Add event at end of each
renderpass or FBO so that we know if GPU access is finished or not
without have to wait for entire frame to finish rendering. 2) Create
multiple buffers and ping-pong between them, at least there will be no
VkCmdCopyBuffer call involved like shadow buffers do. But we will leave
that to future time when we find such need.
Bug: angleproject:5986
Change-Id: Ib8300e46e779d20533c1f7f81624de0ce003788b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909758
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fad9053f
|
2021-05-20T15:52:38
|
|
infra: Add isolated script tests to Pixel 4.
This includes angle_perftests and angle_restricted_trace_gold_tests.
Bug: angleproject:5941
Change-Id: I6f24d2c2752086ae6f7abba26880070c4a4f0472
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911034
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
dd312cc6
|
2021-05-21T08:49:48
|
|
Reland "Vulkan: Add support for EXT_texture_border_clamp"
This is a reland of 4b92e089c01e94730fe26c4c743d76d6c935088d
Initializes mPadding to 0 in SamplerDesc::update
Original change's description:
> Vulkan: Add support for EXT_texture_border_clamp
> Add support for GL_EXT_texture_border_clamp. This is implemented by
> using VK_EXT_custom_border_color.
>
> Bug: angleproject:3577
> Test: dEQP-GLES31.functional.texture.border_clamp*
> Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Bug: angleproject:3577
Change-Id: I8684242c4bce6e1a006dbe926defaa495fcc2282
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911571
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
44fabb7b
|
2021-05-21T00:51:06
|
|
Revert "Vulkan: Add support for EXT_texture_border_clamp"
This reverts commit 4b92e089c01e94730fe26c4c743d76d6c935088d.
Reason for revert: breaks "Linux MSan Tests" bot
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20MSan%20Tests/28489/overview
Original change's description:
> Vulkan: Add support for EXT_texture_border_clamp
>
> Add support for GL_EXT_texture_border_clamp. This is implemented by
> using VK_EXT_custom_border_color.
>
> Bug: angleproject:3577
> Test: dEQP-GLES31.functional.texture.border_clamp*
> Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Bug: angleproject:3577, angleproject:5996
Change-Id: I6b62f1a4a43fcfe2d0df2c73de24db83606ce430
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911533
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
2add8d9f
|
2021-05-19T18:47:40
|
|
Don't use VK_EXT_debug_utils with non-Android Vulkan < 1.1.91
Due to a bug in Vulkan Loader < 1.1.91
https://github.com/KhronosGroup/Vulkan-Loader/pull/95
Bug: chromium:1205999
Change-Id: Icdedc2e80abe3c5578e811759f66ddbb71abb2ec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2907095
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
88156d26
|
2021-05-18T23:55:32
|
|
Revert "[Vulkan] Add DisplayVkNull"
This reverts commit cbbaf76b758fb6a37175795b1f424549d535fbdc.
Reason for revert: Suspecting this breaks the fuchsia_x64 bot WebGL
tests.
Ex:
https://chromium-review.googlesource.com/c/chromium/src/+/2904812
Original change's description:
> [Vulkan] Add DisplayVkNull
>
> Currently all DisplayVk implementations depend on VK_KHR_swapchain and
> VK_KHR_surface extensions. When running Chromium on Fuchsia these
> extensions are never used (content is shown on the screen using
> ImagePipe API without dependency on swapchain). ANGLE still depended
> on these extensions for DisplayVkFuchsia.
> This CL adds DisplayVkNull, which allows to run ANGLE without dependency
> on swapchain. It's usable only offscreen and cannot present content on
> a surface.
>
> Bug: chromium:1203879
> Change-Id: I4d1307060967ffa68877c4300ea4d5590eeb2152
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861313
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: chromium:1203879
Change-Id: I6701ffff48fcb925f387e63b356d2d5cf360ea7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2904183
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
4b92e089
|
2021-05-12T09:20:24
|
|
Vulkan: Add support for EXT_texture_border_clamp
Add support for GL_EXT_texture_border_clamp. This is implemented by
using VK_EXT_custom_border_color.
Bug: angleproject:3577
Test: dEQP-GLES31.functional.texture.border_clamp*
Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
cbbaf76b
|
2021-04-29T16:09:09
|
|
[Vulkan] Add DisplayVkNull
Currently all DisplayVk implementations depend on VK_KHR_swapchain and
VK_KHR_surface extensions. When running Chromium on Fuchsia these
extensions are never used (content is shown on the screen using
ImagePipe API without dependency on swapchain). ANGLE still depended
on these extensions for DisplayVkFuchsia.
This CL adds DisplayVkNull, which allows to run ANGLE without dependency
on swapchain. It's usable only offscreen and cannot present content on
a surface.
Bug: chromium:1203879
Change-Id: I4d1307060967ffa68877c4300ea4d5590eeb2152
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861313
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
09dad082
|
2021-05-07T17:28:15
|
|
Vulkan: Add feature flag to flush at framebuffer boundary
Testing shows most app traces seeing performance improved on ARM GPU
when we flush at FBO boundary instead of one submit per frame. This
likely due to more frequent submission means less chance of GPU
starvation. This also helps ANGLE to detect GPU finish at finer grain
since the queue serial is per submission. Finer grain detection of
object completion means memory gets recycled quicker and mapBufferRange
able to hit fast code path more often. With this CL, manhattan 3.1
offscreen score also score improves 7%. This may also helps onscreen
performance if frame time is on the edge of 16ms by submit FBO rendering
earlier instead of been blocked by vkAcquireNextImage.
Bug: b/187993625
Bug: angleproject:5295
Change-Id: I2946a7159231d36019ace89805a69ac8e906ce94
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2888709
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
859ed396
|
2021-05-11T16:58:55
|
|
Follow up on Vulkan headers update to 1.2.177
Removing duplicate definitions in ANGLE.
Bug: angleproject:5905
Change-Id: Ie62ad39a1ebc0d8b0d2c005723f461bc7309eade
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2889831
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
23ff18f9
|
2021-04-30T16:45:04
|
|
Roll vulkan-deps from 42d8716d0294 to c5559fe406e3 (24 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/42d8716d0294..c5559fe406e3
Changed dependencies:
* glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/18eef33bd7..56b17b2f2d
* spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/c624d5387c..72a2ec4c1b
* spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/22b82872b4..8ec9f456e6
* vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/074fa3055c..3f437c4a94
* vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/d0f1abe22e..5dcea8a449
* vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/eb3d67bd17..4ee5f2a8be
* vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/f6b4a3dea4..7ab4afe505
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC jonahr@google.com,ynovikov@google.com on the revert to ensure that a human
is aware of the problem.
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/master/autoroll/README.md
Bug: angleproject:5905
Tbr: jonahr@google.com,ynovikov@google.com
Change-Id: I462413910900b8dc38b3e88b78d9ff2e10b103b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2863562
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
a4588e33
|
2021-04-29T14:24:20
|
|
Vulkan: Disable logMemoryReportStats if driver extension not exist
logMemoryReportCallbacks and logMemoryReportCallbacks features are
useful for memory debugging. But they rely on
VK_EXT_device_memory_report extension. Right now if this extension is
not there and you enable the log, you still see the logs but everything
is all zero. This CL will disable the feature and print out warning
message if the extension is not supported.
Bug: None
Change-Id: I478ae0ac7ba1ee43245a9fd8a3f1d9907f5d833c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861310
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
54e99d36
|
2021-04-23T13:02:43
|
|
Vulkan: Cleanup garbage when destroying EGL images
SurfaceFlinger will optimistically create EGL images just in case it
does need them in the future, since creating them can be slow and
waiting until they're necessary can cause jank on 90hz+ devices.
However, since the images are never actually used, ANGLE's garbage is
never cleaned up so vkDestroyImage() and the memory is never freed. This
can lead to exhausting the device's memory when many EGL images are
allocated. For example, when running the CTS test
CtsBiometricsTestCases.
This CL adds a call to always cleanup the renderer's garbage when an EGL
image is destroyed via eglDestroyImageKHR(), since we can't know if a
draw will ever be performed in the future (which would normally cleanup
the garbage).
Bug: b/184388756
Test: atest CtsBiometricsTestCases
Change-Id: I104c05c7be44f1e57123ac7eed23effaa982837a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2848131
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jason Macnak <natsu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
9c66461c
|
2021-04-29T11:47:16
|
|
Suppress VUID-VkImageViewCreateInfo-pNext-01585 temporarily
Vulkan validation failures are happening on ComputeShaderTest on
Linux and Windows with AMD. Suppress for now while the issue is
investigated
Bug: angleproject:5912
Change-Id: If89f7c85bb311a68d6cab85e397112b4178e34d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2860044
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
61288549
|
2021-04-27T17:42:21
|
|
Vulkan: Turn on cubemap arrays for Qualcomm
The feature works on Pixel 3 and later, so only disable it on Pixel 2.
Bug: angleproject:5143
Change-Id: I824fc9ea71cb612fd99e23b7f37a1a3c278d92aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2855218
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
ccd984ff
|
2021-04-08T12:06:57
|
|
Reland "Add a Vulkan feature to compress float32 vertex formats."
This reverts commit 8ace36f8c15877264fb58af7b54baad635899dca.
Original change's description:
> Revert "Add a Vulkan feature to compress float32 vertex formats."
>
> Bug: b/167404532
> Bug: b/161716126
> Change-Id: I95157a006d5c1fd2d3c0c2c2be37fa0403c07f93
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2510011
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bug: b/167404532
Bug: b/161716126
Change-Id: Ic6811fe3a7124e6eb1efe7c72a1a03a120217753
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815260
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e167d453
|
2021-04-21T14:14:33
|
|
Vulkan: Allow logging with VVL and/or AGI debug utils to be used
A recent change allowed logging API commands on Android to be used
with Vulkan Validation Layers (VVL). That broke debug utils for AGI
(i.e. when the ANGLE-built VVL is not being used). This allows both
use cases to be supported.
Bug: b/183133198
Change-Id: Ide83ed63fad99d0eca97998365276a1ef365a4e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2842325
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
718022e8
|
2021-04-16T20:50:34
|
|
Reland "Revert "Vulkan: Suppress draw-time push constant VVL warnings. ""
This is a reland of b027dfeb83d028ae72ed1957ba81e6c5dc3baffa
Original change's description:
> Revert "Vulkan: Suppress draw-time push constant VVL warnings.
> "
>
> This reverts commit f34b40dab0487bbabc37645918bed87048107e14.
>
> Reason for revert: VVL bug is fixed.
>
> Original change's description:
> > Vulkan: Suppress draw-time push constant VVL warnings.
> >
> >
> >
> > VUID-vkCmdDraw-None-02698
> >
> > VUID-vkCmdDrawIndexed-None-02698
> >
> > VUID-vkCmdDrawIndirect-None-02698
> >
> > VUID-vkCmdDrawIndirectCount-None-02698
> >
> > VUID-vkCmdDrawIndexedIndirect-None-02698
> >
> > VUID-vkCmdDrawIndexedIndirectCount-None-02698
> >
> > VUID-vkCmdDispatch-None-02698
> >
> >
> >
> > Bug: angleproject:5821
> > Change-Id: Ic8ca6178ce50b409ac8d256848654f43f91fae8e
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2808854
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Jamie Madill <jmadill@chromium.org>
>
> Bug: angleproject:5821
> Change-Id: I771e81a46893f2875605e472273f1388587e042e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2831997
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:5821
Change-Id: I56ccb80eb76c3cedca2a40b8cc0223a879ab1edf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2842309
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
95935176
|
2021-03-26T17:38:21
|
|
Handle the compression of big pipeline cache.
Big pipeline cache will cost much time to compress. Regarding the
perfomance, handle the compression of big pipeline cache in this way:
1)Return when the pipeline cache data is larger than 10M.
2)Use worker thread to complete compression.
Bug: angleproject:4722
Change-Id: I62eb69d8c46729261f0502af01450ec301c258f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2788169
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
39d8dde8
|
2021-04-19T15:02:02
|
|
Revert "Revert "Vulkan: Suppress draw-time push constant VVL warnings."
This reverts commit b027dfeb83d028ae72ed1957ba81e6c5dc3baffa.
Reason for revert: Breaking win-trace-rel b/c of missing VVL roll.
Original change's description:
> Revert "Vulkan: Suppress draw-time push constant VVL warnings.
> "
>
> This reverts commit f34b40dab0487bbabc37645918bed87048107e14.
>
> Reason for revert: VVL bug is fixed.
>
> Original change's description:
> > Vulkan: Suppress draw-time push constant VVL warnings.
> >
> >
> >
> > VUID-vkCmdDraw-None-02698
> >
> > VUID-vkCmdDrawIndexed-None-02698
> >
> > VUID-vkCmdDrawIndirect-None-02698
> >
> > VUID-vkCmdDrawIndirectCount-None-02698
> >
> > VUID-vkCmdDrawIndexedIndirect-None-02698
> >
> > VUID-vkCmdDrawIndexedIndirectCount-None-02698
> >
> > VUID-vkCmdDispatch-None-02698
> >
> >
> >
> > Bug: angleproject:5821
> > Change-Id: Ic8ca6178ce50b409ac8d256848654f43f91fae8e
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2808854
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Commit-Queue: Jamie Madill <jmadill@chromium.org>
>
> Bug: angleproject:5821
> Change-Id: I771e81a46893f2875605e472273f1388587e042e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2831997
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:5821
Change-Id: If9f80d052736e40c4c6d3e9a1cd629205901ba49
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2836285
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b027dfeb
|
2021-04-16T20:50:34
|
|
Revert "Vulkan: Suppress draw-time push constant VVL warnings.
"
This reverts commit f34b40dab0487bbabc37645918bed87048107e14.
Reason for revert: VVL bug is fixed.
Original change's description:
> Vulkan: Suppress draw-time push constant VVL warnings.
>
>
>
> VUID-vkCmdDraw-None-02698
>
> VUID-vkCmdDrawIndexed-None-02698
>
> VUID-vkCmdDrawIndirect-None-02698
>
> VUID-vkCmdDrawIndirectCount-None-02698
>
> VUID-vkCmdDrawIndexedIndirect-None-02698
>
> VUID-vkCmdDrawIndexedIndirectCount-None-02698
>
> VUID-vkCmdDispatch-None-02698
>
>
>
> Bug: angleproject:5821
> Change-Id: Ic8ca6178ce50b409ac8d256848654f43f91fae8e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2808854
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bug: angleproject:5821
Change-Id: I771e81a46893f2875605e472273f1388587e042e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2831997
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
065c2329
|
2021-04-08T11:59:43
|
|
Reland "Vulkan: Add features to modify sampling parameters"
This reverts commit a51b57fa2dc73f8bc8acdf0b818cc0315fb23d75.
Original change's description:
> Revert "Vulkan: Add features to modify sampling parameters"
>
> Bug: b/167404532
> Change-Id: Iae19dfe165074e8c01216312bddd744c4fb504a4
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2510012
> Commit-Queue: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Bug: b/167404532
Change-Id: I2c756b8eb0f61701ef6e33275e557bc199a4d3b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815259
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
15f4925a
|
2021-04-12T15:38:10
|
|
Restore EGL_EXT_buffer_age for SwiftShader Vulkan
EGL_EXT_buffer_age was previously disabled for SwiftShader Vulkan
because of an Android test timing out on Cuttlefish when the buffer
age is queried. aosp/1672445 addresses the root cause of the timeout,
so EGL_EXT_buffer_age can be supported again.
Bug: b/182521420
Bug: angleproject:3529
Change-Id: I5949f721316855d9138eb9f657a6df4e7b49ed71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821750
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
|
|
b17a9317
|
2021-04-09T14:39:37
|
|
Vulkan: damage rectangles must never be pre-rotated
Remove the SurfaceVk::present() code that rotated damage rectangles
and the feature flag that controlled that rotation.
The Vulkan specification was changed so that the rectangles provided
to the VK_KHR_incremental_present extension must never be pre-rotated.
The spec change requires the same behavior on all platforms (just in
case), even though Android is the only platform known to support
rotation.
FYI: the Vulkan spec change was merge request 4442.
Bug: b/182930524
Change-Id: I5128fd76e718f3d964c9091830bcc5886d265543
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818826
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ba7531da
|
2021-04-07T12:51:17
|
|
Add tests that use, then update, then use buffers
This triggers vk::DynamicBuffer allocations in BufferVk.
Bug: angleproject:5719
Change-Id: Ida855b23618497f76102e55f89ab1678f9c08753
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809856
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e249239c
|
2021-04-08T09:46:48
|
|
Vulkan: Add featue flag to force highp to mediump in fragment shader.
Adding feature flag that forces highp in fragment shader to mediump. It
is disabled by default. You can enable it for experiment.
Bug: b/184850002
Change-Id: I73980be4ad160eb1b17a3a3ecfc09f2e4aeb468c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815240
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
f34b40da
|
2021-04-06T17:56:48
|
|
Vulkan: Suppress draw-time push constant VVL warnings.
VUID-vkCmdDraw-None-02698
VUID-vkCmdDrawIndexed-None-02698
VUID-vkCmdDrawIndirect-None-02698
VUID-vkCmdDrawIndirectCount-None-02698
VUID-vkCmdDrawIndexedIndirect-None-02698
VUID-vkCmdDrawIndexedIndirectCount-None-02698
VUID-vkCmdDispatch-None-02698
Bug: angleproject:5821
Change-Id: Ic8ca6178ce50b409ac8d256848654f43f91fae8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2808854
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
aac1b494
|
2021-03-26T21:52:30
|
|
Vulkan: Remove spam output regarding pipeline cache
The warning regarding pipeline cache not having been found in the blob
cache is of little utility. Between emitting it once and not at all,
concensus was on the latter.
Bug: angleproject:4722
Change-Id: I6d6b2758035e8c5e880b77c5f5be84772cb58a18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2788812
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
776c6015
|
2021-02-26T00:00:57
|
|
Vulkan: Call glslang at compile time
With this change, the ANGLE translator immediately compiles the
generated GLSL into SPIR-V with glslang and discards the source. This
is in preparation for generating SPIR-V directly, by making the frontend
and backend already able to digest it.
This change also allows the expensive glslang calls to be parallelized,
improving the following perf test by about 20%:
LinkProgramBenchmark.Run/vulkan_compile_and_link_multi_thread
Previously, the test was run as such in the Vulkan backend:
Main Thread 1 Thread 2
Compile1 --->
Compile2 --------------------->
Translator Translator
<---
<---------------------
Link
glslang
for
shader1
glslang
for
shader2
Done
With this change, it is run as such:
Main Thread 1 Thread 2
Compile1 --->
Compile2 --------------------->
Translator Translator
glslang glslang
<---
<---------------------
Link
Done
glslang_wrapper_utils no longer interacts with glslang! A rename will
follow.
Bug: angleproject:4889
Change-Id: If4303e8ba0ba43b1a2f47f8c0a9133d0bee1a19a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2721195
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
9a79ee78
|
2021-03-22T17:56:28
|
|
Vulkan: Add A few other *-None-04584 VVL error to skip list
If app uses textureLoad to fetch a texture level and mean time renders
to the same texture but with different level, this will generate vulkan
validation errors. Previously we are only skipping
VUID-vkCmdDraw-None-04584, but it is necessary to skip all other-04584
VVL error that stem from other draw calls as well. Aztec ruins can run
into VUID-vkCmdDrawIndexed-None-04584 on QComm GPU, for example.
Bug: b/175584609
Change-Id: I2da6945415975350e36f533f007ae1e2a5feddfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2780563
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
1fb7f648
|
2021-03-18T16:17:25
|
|
Compression of the data from vkGetPipelineCacheData.
The size of pipelineCacheData sometimes is greater than
64k which cannot be saved because of the Android blob cache
limitation (single cache data size should be < 64k).
Implement the compression to store more cache data.
Re-land this patch before fixing the performance regression
of big pipeline cache.
Bug: angleproject:4722
Change-Id: I4bc05a88334c3e7e9e945d1a0877429db1750422
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2771840
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
d1462228
|
2021-03-09T11:25:36
|
|
Vulkan: Use VK_EXT_multisampled_render_to_single_sampled
Additionally, makes the emulation path not require
independentResolveNone. This was only used to select the NONE resolve
mode when the attachment format doesn't have either of depth or stencil
aspects, but it's ok to specify the same resolve mode for both aspects
even if one aspect is missing.
Bug: chromium:1088005
Change-Id: Ifc37cbf5331145179c5927853b996a0d62b871ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743666
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
135385a1
|
2021-03-19T00:09:31
|
|
Disable EGL_EXT_buffer_age for SwiftShader Vulkan
Cuttlefish with SwANGLE failed to pass the android.graphics.cts.
BitmapTest#testDrawingHardwareBitmapNotLeaking test, due to a timeout in
dequeueBuffer (error = -110) during an EGL_BUFFER_AGE_EXT surface query.
This change conservatively works around the issue by leaving
EGL_EXT_buffer_age support disabled for SwiftShader.
Further investigation is required to check whether this timeout can also
occur with other Vulkan drivers, and if it can be addressed robustly.
Bug: b/182521420
Bug: angleproject:3529
Change-Id: I54e3767e74bf922f273d8860f9f4cfc8b6589536
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2774030
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
|
|
d5bc8a27
|
2021-03-17T18:21:35
|
|
Vulkan: Add VUID-vkCmdDraw-None-04584 validation error to ignore list
Aztec ruins is using the same texture (but different level controlled by
a uniform variable) for textureLod and rendering. This triggers vulkan
validation error. This CL put it in the ignore list so that it can pass.
Bug: b/175584609
Change-Id: I7623e7b448514b3c12268aa5fe154f4c2f59b059
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770686
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
716b2cba
|
2021-03-12T14:46:53
|
|
Use bitset masks for active shader buffers.
This switches the tracking for the uniform, shader storage, and atomic
counter buffers to use bitset masks to determine where there are
active buffers. This will make iterating these buffer sets faster.
Also renames the limit for atomic counter buffers to be consistent
with the other buffer types.
Also applies the implementation limit to atomic counter buffer
bindings. This fixes out-of-bounds access on some Linux platforms that
expose a large number of bindings.
Bug: angleproject:5736
Change-Id: Ice801645697592d1dda6aebf0cb69767594cc0c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757509
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
bbed8813
|
2021-03-05T17:40:27
|
|
Create GN arg to enable non-conformant features
The GN arg angle_expose_non_conformant_extensions_and_versions is being
added to control exposeNonConformantExtensionsAndVersions, which enables
non-conformant features and extensions. In particular, this is being
done to enable EXT_texture_buffer on devices that don't support all of
the necessary formats since many Android games rely on this extension,
such as "Special Forces Group 2", "Fortnite", and "PUBG".
# Enables non-conformant extensions and features
angle_expose_non_conformant_extensions_and_versions = false
Users/vendors can now toggle the value with a GN arg, rather than a code
change, to make it easier to test the conformant version of ANGLE with
CTS, dEQP, etc. and/or app-compatibility.
Bug: angleproject:5592
Change-Id: Icbf18b48a2751c03e277ae964e1ec278a43324cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2740643
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
92db3c68
|
2021-03-10T15:09:15
|
|
Vulkan: Disable rotating damage rectangles on Android
This fixes visual problems with Android games that use
eglSwapBuffersWithDamageKHR(). In 90/270-degree cases, the damage
rectangles are being double-rotated, leaving them 90-degrees out of
alignment with the window.
On Android, VK_KHR_incremental_present is built on top of the same
platform code as eglSwapBuffersWithDamageKHR(). The platform code
rotates all damage rectangles (assuming they are
application-provided). Therefore, ANGLE should not also pre-rotate
damage rectangles.
Test: Black Desert Mobile
Test: Grand Theft Auto: San Andreas
Test: Extreme Car Driving Simulator
Bug: b/181796746
Change-Id: I6510e7540bb00afc75863e8ae8a9ea3841d1641d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2744984
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
b27740f3
|
2021-03-09T16:15:15
|
|
Revert "Vulkan: Support EXT_sRGB_write_control"
This reverts commit 6073af536cf627742696823edc82c9b0a481a8bc.
Reason for revert: crbug.com/1186140
Original change's description:
> Vulkan: Support EXT_sRGB_write_control
>
> Implement support for EXT_sRGB_write_control. This extension
> requires VK_KHR_image_format_list to be supported.
>
> The spec requires this functionality to work with glBlitFramebuffer
> as well but support for that will be added in a follow up change.
> As such, this extension is only exposed in non-conformant mode.
>
> Bug: angleproject:5075
> Tests: SRGBFramebufferTest.*Vulkan*
> Change-Id: I59b38f6cd810a3d0d67ec29f4f19c25f65f70862
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617243
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:5075,chromium:1186140
Change-Id: Ib0d4d60fe7434fb950f99db2c210aab9af7d2d0e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2743663
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
6073af53
|
2021-03-08T11:21:31
|
|
Vulkan: Support EXT_sRGB_write_control
Implement support for EXT_sRGB_write_control. This extension
requires VK_KHR_image_format_list to be supported.
The spec requires this functionality to work with glBlitFramebuffer
as well but support for that will be added in a follow up change.
As such, this extension is only exposed in non-conformant mode.
Bug: angleproject:5075
Tests: SRGBFramebufferTest.*Vulkan*
Change-Id: I59b38f6cd810a3d0d67ec29f4f19c25f65f70862
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2617243
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0ee360de
|
2021-03-05T06:02:25
|
|
Revert "Compression of the data from vkGetPipelineCacheData."
This reverts commit cc5083e071e9e0663979c02376e7848c7de11765.
Reason for revert: Re-land this patch after fixing the performance regression of big blob cache (discussed in angle issue 4722).
Original change's description:
> Compression of the data from vkGetPipelineCacheData.
>
> The size of pipelineCacheData sometimes is greater than
> 64k which cannot be saved because of the Android blob cache
> limitation (single cache data size should be < 64k).
> Implement the compression to store more cache data.
>
> Bug: angleproject:4722
> Change-Id: I435b086d70d0e6378f1141464ae2bafbe076f193
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2631511
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bug: angleproject:4722
Change-Id: Ie4de10eabf5cd8f0b4748e2c1a4c3ab6b8ea092c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739098
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|