|
37d26888
|
2024-12-17T13:57:27
|
|
Skip some context sharing tests on S22
* Skipped the following tests from EGLContextSharingTestNoFixture:
* EglTerminateMultiThreaded
* EglDestoryContextManyTimesSameContext
Bug: angleproject:384799391
Change-Id: Ide9d86d900cb99f761ca007a703689c762eff167
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102980
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
db8e5617
|
2024-10-23T15:21:33
|
|
Reland "Add check for some EGL API attrbute values"
This is a reland of commit 9481eb625b358897583f8adeca5fc520f8c215ae
Original change's description:
> Add check for some EGL API attrbute values
>
> EGL validation in ANGLE lacks of some error handlings mentioned
> in EGL spec. Those error handlings are added, and we need to
> make sure angle end2end tests are not influenced.
>
> Bug: angleproject:375528200
> Change-Id: Ic0686d9ccc70e18b0cf3449184452771c77c06b7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034532
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:375528200
Change-Id: I6db890a95825156848d7da8ebc15f7e30b0902ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6088519
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
0f0d2cc7
|
2024-12-17T09:50:56
|
|
Tests: Add Riptide GP2 trace
Test: angle_trace_tests --gtest_filter="*riptide_gp2*"
Bug: b/384714388
Change-Id: I09984201c2c96797dcc867ef818aa18684561275
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6101168
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
645c192a
|
2024-12-17T09:45:41
|
|
retrace: Fix assumption in get_min_reqs
Only try to remove implied extension if it is present.
Test: retrace_restricted_traces.py get_min_reqs --traces riptide_gp2
Bug: b/384714388
Change-Id: Ic0240c387012923e1918fccd2ea6c341d9a84609
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6101167
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
b7d6605a
|
2024-12-17T09:17:20
|
|
Rename GC and CL dispatch threads to <16 chars
Current names too long (there is a 15 char pthread limit),
they just gets ignored. Add an assert.
Bug: angleproject:42262955
Bug: angleproject:375231041
Change-Id: If26c98b709524b9c072f26759b98f81fe0d4367d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6096873
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
87d891dc
|
2024-12-13T19:51:42
|
|
Inline more tiny functions on hot path
Similar to https://crrev.com/c/6094283, not as hot but broader.
Highlighted by PGO profile of driver_overhead_2 trace combined with size
and offset of the corresponding .so sections to maximize reduction in
TLB misses.
Improves driver_overhead_2 performance by 1~2% on Pixel 8. Almost no
change in .so size as functions are tiny.
Bug: b/383305597
Change-Id: Ib1c021d4635141b879667b59305e4d45de7b8aef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6088958
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
c0ee7b20
|
2024-12-12T16:49:40
|
|
Swap getWidth() and getHeight() if the swapchain is 90 emulate rotated
When checking if we need to recreate swapchain, we should swap
the getWidth() and getHeight()
if Is90DegreeRoration(mEmulatedPreTransform) is true. This is because:
When creating swapchain, if Is90DegreeRoration(mEmulatedPreTransform) is
true, we store swapped mSurfaceCaps.currentExtent.width and
mSurfaceCaps.currentExtent.height in getWidth() and getHeight(),
but we use the original mSurfaceCaps.currentExtent.width and
mSurfaceCaps.currentExtent.height to create the swapchain.
On next acquire, to check if the swapchain property changes,
we should swap getWidth() and getHeight() if
if Is90DegreeRoration(mEmulatedPreTransform) is true, otherwise we
are recreating swapchains when width and height are unchanged.
Bug: b/382006939
Change-Id: I1cbe9da2ff5e76602a90963514d2d0d5fbf677e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6090199
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e72cc71b
|
2024-12-13T11:59:29
|
|
Vulkan: Remove framebuffer fetch from shader if unused
Some application shaders may use `inout` variables to simplify shader
generation (presumably), but in the end don't actually ever read from
those variables.
This change tries to detect some very simple but common cases where it's
clear that the shader completely overwrites the variable without reading
from it and turns `inout` into `out`. When coherent framebuffer fetch
emulation kicks in, these shaders would no longer cause unnecessary
barriers.
Bug: angleproject:377923479
Change-Id: I0970b72f551b24409337a375cf97aa63bb511fb5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6094425
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
00d9ef8f
|
2024-12-13T11:59:29
|
|
Inline GetUniformTypeInfoFromIndex
A very small function call on hot path, highlighted by PGO profile data
from driver_overhead_2. Makes driver_overhead_2 1~2% faster
on Pixel 8 (measured with shared context lock off).
Bug: b/335295728
Bug: b/383305597
Change-Id: I36e58b42b06c72c8f4c282110c85bb5130ced8d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6094283
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1287e19e
|
2024-12-13T15:28:59
|
|
Vulkan: Further improve recreateSwapchain() error handling
Fixed problem in cases if something fails after assigning
`mSwapchain = newSwapChain` and before setting
`mAcquireOperation.state = impl::ImageAcquireState::NeedToAcquire`.
In the above case we will already have `mSwapchain` pointer with
potentially undefined state of related members, while
`mAcquireOperation.state` may remain `NeedToProcess`.
Returning in case of a failure without assigning `mSwapchain` we will
stay in the "invalid swapchain" state while still have new swapchain
in the `mLastSwapchain`. This state is already handled by existing
code and will try to call `recreateSwapchain()` again until it
succeeds.
Bug: angleproject:380234227
Change-Id: I465115deef4c06f35d40b90efc192b51e7b9fd44
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6089081
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
a1be7e61
|
2024-11-26T14:39:18
|
|
Implement EGL_EXT_surface_compression
This patch adds implementation of EGL_EXT_surface_compression to
ANGLE, including new API eglQuerySupportedCompressionRatesEXT and
adding EGL_SURFACE_COMPRESSION_EXT in EGLQuerySurface and
EGLCreateWindowSurface/EGLCreatePlatformWindowSurface.
Angle end2end test is added to verify the extension.
Bug: angleproject:375496226
Change-Id: I06926930d94485a378fc831d552cf55fe7938a57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6073355
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5fad41a0
|
2024-12-03T17:18:35
|
|
CL: Fix Non-Uniform Query check
The following method needs updating:
https://github.com/google/angle/blob/main/src/libANGLE/CLDevice.cpp#L424
It currently does not account for lower OpenCL driver versions that
do not contain the query value:
CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT
As this was only introduced as of OpenCL 3.0 support
https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_DEVICE_NON_UNIFORM_WORK_GROUP_SUPPORT
Bug: angleproject:381335059
Change-Id: I9f1e61270690077bdca0be3aef0d88b77c27bf11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6068289
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8caf0e78
|
2024-08-30T20:16:33
|
|
CL/VK: Add writeBufRect staging/transfer routine
Adding enqueueWriteBufferRect staging/transfer
code/routine for the non-blocking conditions.
Allows us to correctly stage writes in a batch
of cmds with multiple enqueueWriteBufferRect cmds.
Bug: angleproject:42267074
Change-Id: I715bb4c139374fa24ad5d1a0db329ae0f35ae741
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6068288
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9e1ce8c1
|
2024-08-30T20:11:06
|
|
CL/VK: Add readBufRect staging/transfer routine
Adding enqueueReadBufferRect staging/transfer
code/routine for the non-blocking conditions.
Allows us to correctly stage writes in a batch
of cmds with multiple enqueueReadBufferRect cmds.
Bug: angleproject:42267074
Change-Id: I46b7b9f4e1fbcd0314a7700525935ed2743b1587
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6068287
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2c404434
|
2024-12-13T09:05:48
|
|
Revert "Add check for some EGL API attrbute values"
This reverts commit 9481eb625b358897583f8adeca5fc520f8c215ae.
Reason for revert: Causes failures when rolling into chromium:
https://chromium-review.googlesource.com/c/chromium/src/+/6089841
Original change's description:
> Add check for some EGL API attrbute values
>
> EGL validation in ANGLE lacks of some error handlings mentioned
> in EGL spec. Those error handlings are added, and we need to
> make sure angle end2end tests are not influenced.
>
> Bug: angleproject:375528200
> Change-Id: Ic0686d9ccc70e18b0cf3449184452771c77c06b7
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034532
> Reviewed-by: Charlie Lao <cclao@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:375528200
Change-Id: I8e59113e4d94571b0ec1d8135519e829d3571a15
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6094284
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
bafb661e
|
2024-12-13T12:01:19
|
|
Vulkan: Remove debug log + dead code
Bug: angleproject:376572258
Change-Id: Ie774fd248a37fc65b4e05df0b4e4dffb778b9b4f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6090907
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
9c67a505
|
2024-12-11T14:29:59
|
|
Vulkan: Rename CommandProcessor.* to CommandQueue.*
Bug: angleproject:42262955
Change-Id: I5585309479d8c66e9ddfa41e12a757381ebb80bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6089885
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
c75bd915
|
2024-12-10T23:01:44
|
|
Vulkan: Remove asyncCommandQueue
It's been years and it never showed an advantage. In the meantime,
performance without this feature seems close to native drivers (i.e. the
feature has lost its appeal) and it's frequently a source of
complication and bugs.
Bug: angleproject:42262955
Bug: angleproject:42265241
Bug: angleproject:42265934
Bug: angleproject:42265368
Bug: angleproject:42265738
Bug: angleproject:42266015
Bug: angleproject:377503738
Bug: angleproject:42265678
Bug: angleproject:173004081
Change-Id: Id8d7588fdbc397c28c1dd18aafa1f64cbe77806f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6084760
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9c566e86
|
2024-12-11T17:42:16
|
|
CL/VK: Fix event blocking for enqueueReadImage/enqueueMapImage
There were issues with enqueueReadImage and enqueueMapImage
getting blocked when one of the waitEvents is a user event.
This change fixes the issue by staging a transfer routine.
Additionally, this change removes the redundant struct BufferBox.
Bug: angleproject:381199196
Change-Id: Id0c09d9930b36b79229f5e2367f8132e9e5e476e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056426
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e9b33f04
|
2024-12-11T15:17:51
|
|
Tests: Add Don't Starve Pocket Edition trace
Test: angle_trace_tests --gtest_filter=*dont_starve
Bug: b/383500194
Change-Id: I924436d5bb2b166dac5798feff1d614ce1453adb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6090033
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
16e62810
|
2024-12-03T15:00:13
|
|
Add option to run deqp tests with native driver on Android
Add a new value option for --deqp-egl-display-type to launch dEQP
tests with native GLES driver on Android:
--deqp-egl-display-type=native-gles
This new value is only parsed and used on Android builds.
Applying it has no effects on non-Android builds.
Bug: b/379363846
Change-Id: Ia194e09e6cf50a3e505d756a396ef047a8f1ce59
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6068187
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
4532beb0
|
2024-12-04T11:46:42
|
|
CL/Vulkan: Set depth and height initial values
For types that dont have depth and height set them to 1, and upate
query method correspondingly.
Updated the test suit to add new tests to the CI, and the following file
was autogenerated using `scripts/run_code_generation.py`
- `infra/specs/angle.json`
Bug: angleproject:382527246
Change-Id: I982f0558248d053759d50b6fc3ca29d389c62acf
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6075440
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
|
|
fc4fc174
|
2024-12-10T22:01:28
|
|
Vulkan: Prevent crash with D/S FF without D/S attachment
The spec says that the values for gl_LastFragDepth/StencilARM are
undefined if there is no depth/stencil attachment. This "just" works on
tiling GPUs, because reading input attachments simply translates to
reading _something_ from the tile memory.
For ANGLE, the situation is a little more complicated. ANGLE has to
bind descriptors for input attachments (because non-tilers read from the
input attachment descriptor instead of using the knowledge that input
and color/depth/stencil attachments are one and the same thing in tile
memory). When a depth/stencil attachment is missing, there is no image
to bind to the descriptor set.
ANGLE cannot skip binding an image to the descriptor set, because
OpImageRead (translated from subpassLoad()) attempts to access the
input descriptor; skipping this causes an internal crash in SwiftShader
for example.
ANGLE cannot bind a bogus image as input attachment, as Vulkan requires
that input attachments are also color/depth/stencil attachments.
ANGLE _could_ bind a bogus image as input attachment and also as
depth/stencil attachment. This is rather risky, as it then also has to
be careful to make sure that depth/stencil attachment is never actually
used (i.e. it affects the depth/stencil state, load/store ops etc).
In this change, the shader itself is modified to remove references to
the depth/stencil input attachments if the attachment is missing. This
is rather inefficient, as it means the pipeline warmup will not produce
a usable pipeline, but it's accepted as a workaround for something apps
shouldn't really be doing.
Bug: angleproject:376572258
Change-Id: I0de68252b61615cb82cba7d1730699aadf41e92f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6085368
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e9ba1681
|
2024-12-10T21:29:26
|
|
Vulkan: Fix DR vs FF vs non-draw RP start
DR is Dynamic Rendering
FF is Framebuffer Fetch
RP is Render Pass
With DR, whether framebuffer fetch is used or not is no longer tracked
in the framebuffer's RenderPassDesc, because that property has no
bearing on the framebuffer anymore. It still exits in RenderPassDesc to
support legacy VkRenderPass objects.
After a draw call starts a render pass, the state of the command
buffer's copy of RenderPassDesc (copied from the framebuffer's) is
updated to include the correct framebuffer fetch mode. However, this
was not done when the render pass starts through other means, such as
when a scissored or masked clear would call `Context::startRenderPass`.
This change moves the aforementioned update of the framebuffer fetch
mode to `Context::startRenderPass` so it affects everywhere the render
pass may start from.
Bug: angleproject:383356851
Change-Id: I82eff43863fc5b9fe67e57453269ee73859a6cd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6085367
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
bde4d143
|
2024-09-27T14:08:43
|
|
CL/Vulkan: Setup a dispatch loop per commandqueue
Commands submitted to renderer need clean up ops post completion. Setup
a background thread per commandqueue that waits on the command
completion and performs the post completion operations.
Updated test suite and `angle.json` was autogenerated with
`scripts/run_code_generation.py`.
Bug: angleproject:375231041
Change-Id: I82b4211ee6e229c679ef31897fc63d61fa904bb5
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5960590
Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
9481eb62
|
2024-10-23T15:21:33
|
|
Add check for some EGL API attrbute values
EGL validation in ANGLE lacks of some error handlings mentioned
in EGL spec. Those error handlings are added, and we need to
make sure angle end2end tests are not influenced.
Bug: angleproject:375528200
Change-Id: Ic0686d9ccc70e18b0cf3449184452771c77c06b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034532
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
09f3bc3a
|
2024-12-10T15:57:49
|
|
Tests: Add Loop Hero trace
Test: angle_trace_tests --gtest_filter=*loop_hero
Bug: b/383282700
Change-Id: Iff3b5a37b3dfea898344007f544ec25c8b6fa0be
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6085489
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
f9d08964
|
2024-10-29T14:14:43
|
|
Fix primitive restart issue with line loop
Refine function CopyLineLoopIndicesWithRestart and function
CopyLineLoopIndicesWithRestart so that they can deal with the
case when there is only one index before/after restartIndex.
Bug: angleproject:376097643
Change-Id: I06ee0208522d6dc5b6cd6ec0ba4f8682de7b12f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5975353
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e45a0420
|
2024-12-05T17:41:38
|
|
Fix glCopyImageSubData() not work with multisample render buffer
When target is "GL_RENDERBUFFER", and which is multisample, the function
will not work.
Bug: angleproject:382101118
Change-Id: I3d9c4a2550f9d66eeb73447328a03d4507cf2fa5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6073359
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e34135cc
|
2024-12-09T18:20:00
|
|
Manual roll vulkan-deps from 86f73c27b3fc to 0057c6fd95c9 (28 revisions)
Manual roll requested by ynovikov@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/86f73c27b3fc..0057c6fd95c9
Manual edits to VVL skip list in vk_renderer.cpp for bugs:
https://anglebug.com/42266639, https://anglebug.com/383311444
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/4e9bb6f426cf776910848441da65cc14f1146e77..bfc0ffa353cb2b7bfda65c6b65f15c5c4d0564d0
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/36d5e2ddaa54c70d2f29081510c66f4fc98e5e53..3f17b2af6784bfa2c5aa5dbb8e0e74a607dd8b3b
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/3fb52548bc8a68d349d31e21bd4e80e3d953e87c..4d2f0b40bfe290dea6c6904dafdf7fd8328ba346
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/49af1bfe467dd5a9efc22f7867d95fdde50e2b00..6a74a7d65cafa19e38ec116651436cce6efd5b2e
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/a2224abf350f61211462a33e5b540201fa17de0d..2744de9936755fea6912d47e7a0a8857d8a4fdee
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/b538fb5b08513aa78346cd414ad5e576a2a3e920..160e946f5d4b3a657f47b7fc4b0bd3cc8d0d6afd
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/902f3cf8d51e76be0c0deb4be39c6223abebbae2..3d71b8748ca519be54daacdabed9dcb6fa4367bf
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 angle-team@google.com,cnorthrop@google.com,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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: angleproject:42266639
Bug: angleproject:383311444
Tbr: cnorthrop@google.com,ynovikov@google.com
Change-Id: I90615e11c3dd2d737d5f87e3fabd5b984c807111
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6079809
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
6bb1bc9b
|
2024-12-10T16:56:33
|
|
Add an extension to report total memory usage of all GL objects
Currently the extension will only count GL buffers, textures and
render buffers' memory.
Fixed: angleproject:383256300
Change-Id: I33ce6fafae8aa5b60071e66366d35dc098e1313b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6084013
Auto-Submit: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
|
|
a137d702
|
2024-10-24T18:24:14
|
|
Reland "Delay EGLQueryContext render buffer change"
This is a reland of commit 233d9ee5c3525cc8290b3af52385ed59973438b4
Original change's description:
> Delay EGLQueryContext render buffer change
>
> According to the EGL spec, EGL_RENDER_BUFFER of a context
> should change after eglSwapBuffers is called if
> eglSurfaceAttrib changes. Refine ANGLE implemnetation
> to delay the render buffer change.
>
> Bug: angleproject:375528202
> Change-Id: Ida7736a09e3a83223a529dbfad48e0f952f91a38
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5982241
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:375528202
Change-Id: I38330d99a9e6987ad3f97b4a36c34029acb211b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055500
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2d71fe0d
|
2024-11-04T14:15:34
|
|
Check formats compatibility first in CopyImageSubData validation
During validation for CopyImageSubData, first check if the src and
dst formats are compatible. Before this patch, the check was put
after region checking. If the formats are not compatible, then the
block size used during region check is not reasonable.
Bug: angleproject:377144455
Change-Id: I3245ae1351e127cb70d0d75d75ca34f0106d12b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5982240
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
6a91b590
|
2024-12-06T23:47:36
|
|
Vulkan: Improve CommandQueue concurrency
This is a follow up for:
Add a new mutex in CommandQueue to protect Vulkan Command Pool
crrev.com/c/angle/angle/+/6020895
There is still scenario, when thread that checks or waits for commands
may also wait for other thread to flush its commands:
- Thread 1: performs long command flush -> `mCmdPoolMutex` locked.
- Thread 2: releases commands -> `mMutex` locked while blocking on
`mCmdPoolMutex`.
- Thread 3: checks for completed commands -> blocks on `mMutex`,
essentially waiting for the command flush from "Thread 1".
To fix the above, `mMutex` is split into `mCmdCompleteMutex` and
`mCmdReleaseMutex`. This will solve blocking of "Thread 3" in case
if "Thread 2" releases commands.
With this change, `mCmdCompleteMutex` is only used to check and wait for
commands, while not blocking other mutexes (except in `init()`,
`destroy()`, and `handleDeviceLost()`), eliminating possibility of
blocking.
`mCmdReleaseMutex` is only used to release finished batches, while also
temporarily locking the `mCmdPoolMutex` to release the commands,
therefore this operation may wait for commands flush in other threads
(this is OK - Vulkan limitation).
`mQueueSubmitMutex` is used for submission and performance counters.
During the submission all mutexes may be temporarily locked:
`mCmdPoolMutex` to get commands, `mCmdCompleteMutex` to finish batch,
and `mCmdReleaseMutex` to release batches.
Bug: b/362604439
Change-Id: Ibb7f3a733722a2e202475023742af5e1eaa06826
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6067346
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e0fafcdf
|
2024-12-10T17:46:44
|
|
add missing includes for the build with use_libcxx_modules
This is to fix build error when we set use_libcxx_modules=true in
chromium build.
Bug: chromium:40440396
Change-Id: Ic1f2655b91eaf949150d61a9a42c0ee0221afac9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6084012
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
574dc343
|
2024-12-06T23:27:41
|
|
Vulkan: Remove mMutex -> mQueueSubmitMutex relay
This is the preparation before the next CL:
Vulkan: Improve CommandQueue concurrency
crrev.com/c/angle/angle/+/6067346
This change address following problems:
Problem 1:
- Thread 1: performs long command flush -> `mCmdPoolMutex` locked.
- Thread 2: performs submit commands -> `mMutex` locked
while blocking on `mCmdPoolMutex`.
- Thread 3: checks for completed commands -> blocks on `mMutex`,
essentially waiting for the command flush from "Thread 1".
Note: "Thread 2" may still lock `mMutex` and then block on
`mCmdPoolMutex` from the possible `releaseFinishedCommandsLocked()`
call. This will be addressed in the follow up.
Problem 2:
- Thread 1: performs submit -> `mQueueSubmitMutex` locked.
- Thread 2: also wants to submit -> `mMutex` locked while blocking on
`mQueueSubmitMutex`.
- Thread 3: calls some command -> blocks on `mMutex`, essentially
waiting for the command submission in "Thread 1".
Since `mMutex` is no longer locked in the beginning of the
`queueSubmit()` method and there is no lock relay, the
`mQueueSubmitMutex` is locked at the beginning of the method instead.
This way "Thread 2" will not block the `mMutex`, allowing "Thread 3" to
execute any command (except submission) without blocking.
Change also fixes race condition in `CommandQueue::waitIdle()`. Call to
`mInFlightCommands.back()` must be protected by the `mQueueSubmitMutex`
because it accesses `mEndIndex` which is updated in `push()`.
Bug: b/267682377
Bug: b/362604439
Change-Id: If0b82f3e35aacf080327531b22d832dd12160448
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6078263
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
560138ab
|
2024-11-27T13:25:49
|
|
CL/VK: Fix Pipeline Barriers for Enqueue Image Commands
Using pipeline barriers, this ensures completion of
calls before and after any enqueue image command.
Bug: angleproject:381214485
Change-Id: Idcc5bfc738a2cb67ba9891c2109617ffb7d8bfa8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055704
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
d8f6df3e
|
2024-12-09T09:20:40
|
|
Vulkan: Fix assertion in RefCountedEvent::releaseImpl
RefCountedEvent uses non-atomic uint32_t for reference counting, so it
is not thread safe. To ensure we do not use it in a thread unsafe way,
there is an assertion I added in RefCountedEvent::releaseImpl that the
release call is not come from async command queue thread (all release
calls are expected come from context thread which should be protected by
context share group lock). A while ago dynamic rendering is implemented.
With dynamic rendering you can't do final layout change in render pass.
So the final layout change to Present is added to primary command buffer
at the end of RenderPassCommandBufferHelper::flushToPrimary(). And if
async command queue is enabled, that flushToPrimary is called from async
command queue thread, which triggers the assertion I added in
RefCountedEvent::releaseImpl(). This CL releases mCurrentRefCountedEvent
for this specific situation (present image + dynamic rendering +
asyncCommandQueue) so that we do not hit the assertion. The only
downside is that it will force to use pipelineBarrier for this specific
situation. But no one ships with asyncCommandQueue enabled, so there is
no real concern here as well.
Bug: angleproject:382580875
Change-Id: I042e3906db7f5bb7acb299997f8fc7e21b8350b6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072350
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cbf4e5f8
|
2024-12-09T09:16:12
|
|
Update libXNVCtrl metadata
Date from:
https://cgit.freedesktop.org/~aplattner/nvidia-settings/commit/?id=ffa5183362ed4ace5b1cfd031a272f72e7d68c1b
Bug: chromium:378273293
Change-Id: Ie5452d0e6388c57210d530424502a24aa20e2750
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6075519
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
fb743105
|
2024-11-26T14:37:39
|
|
Add stubs for EGL_EXT_surface_compression
This patch adds stubs for EGL_EXT_surface_compression to
ANGLE, including new API eglQuerySupportedCompressionRatesEXT and
adding EGL_SURFACE_COMPRESSION_EXT in EGLQuerySurface and
EGLCreateWindowSurface/EGLCreatePlatformWindowSurface.
Bug: angleproject:375496226
Change-Id: I1962a11e8e3e5eb2cd5b13c5ba0f685781dfd015
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6073354
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eee895e1
|
2024-12-09T08:32:34
|
|
Tests: Add Return to Monkey Island trace
Test: angle_trace_tests --gtest_filter="*return_to_monkey_island*"
Bug: b/383027719
Change-Id: Idc31426199888e7645c2c644bea611f3cc98f202
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6080212
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
70c62566
|
2024-12-06T15:20:49
|
|
Vulkan: SharedFence is now AtomicSharedPtr<RecyclableFence>
This is the preparation before the next CL:
Vulkan: Improve CommandQueue concurrency
crrev.com/c/angle/angle/+/6067346
The `SharedFence` was replaced with `AtomicSharedPtr<RecyclableFence>`
because previous implementation reference counting is not thread safe
which will be required in the next CL, where fence may be released
during unlocked wait or release commands using different mutexes.
Additionally cleanup unnecessary use of `vk::` namespace.
Bug: b/362604439
Change-Id: Icc61dc093ba0a1e350f1a02eb1ba209a2c58c603
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6074131
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
95756ae2
|
2024-12-04T15:47:19
|
|
Expose VK_EXT_image_compression_control_swapchain
To implement EGL_EXT_surface_compression,
VK_EXT_image_compression_control_swapchain should be exposed.
With this extension, we can put VkImageCompressionControlEXT
to the pNext of VkSwapchainCreateInfoKHR
Bug: angleproject:375496226
Change-Id: I3f62040be3ba3e5cc051164cb9ace1934e61dead
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6073353
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e6c8f06a
|
2024-11-29T00:00:00
|
|
Metal: Remove line markers from internal shaders
Line markers generated by Clang preprocessor are
platform-dependent and cause extra git noise.
Metal shader compiler does not need them anyway.
Fixed: angleproject:382564808
Change-Id: I792a523ac9269a097c7f52a4cd64a24ed6145567
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6074518
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
244c0514
|
2024-12-07T23:06:03
|
|
Tests: Add Balatro trace
Test: angle_trace_tests --gtest_filter="*balatro*"
Bug: b/382914040
Bug: b/382960265
Change-Id: Iebebae9dc2da1b1f20f6e9c184130ebfd544ae52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6077333
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
973c37d1
|
2024-12-08T22:43:32
|
|
Traces: Fix screenshot pixel pack state
Without this fix, if the trace had non-default
pixel pack state, our screenshots were broken.
This just backs up the current state, sets defaults,
then restores them.
Test: return_to_monkey_island screenshots
Bug: b/383027719
Change-Id: I8eaa1d58cdf34fbbaefdf4bbb054bff3fd8a5e9b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6079310
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
f5196a27
|
2024-11-29T00:00:00
|
|
Fix normalizedToFloat for signed types
* Ensured that INT_MIN is converted to -1.
* Fixed max value computation when the
input bit width is not type-aligned.
* Cleaned up D24X8::ReadDepthStencil
to match the updated semantics.
* Added tests for all variants.
Fixed: angleproject:352963106
Change-Id: I8b9f60d3364331567ad3b55276666bb416c3c6ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072233
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
22c457a6
|
2024-12-06T16:07:54
|
|
Tests: VulkanMemoryTest OOM fallbacks check >= instead of ==
OOM tests check deviceMemoryImageAllocationFallbacks in a loop, assuming
that +1 will be reached. Maybe we are skipping over +1 somehow.
Check for >= instead.
The loops are followed by EXPECT_EQ, so if this happens the test would
still fail.
Bug: angleproject:382094011
Change-Id: Icfc93954b4a7ba30e24ae087d7a0c03d640e85b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6077964
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
e82a2eab
|
2024-11-28T00:00:00
|
|
Support multisample 2D array textures on ES 3.0 contexts
Supported via OES_texture_storage_multisample_2d_array
enabled together with ANGLE_texture_multisample.
Drive-by:
Fixed exposure conditions in the OpenGL
backend to match the implementation.
Fixed: angleproject:382298321
Change-Id: I21b037aac7bebc35df267e9dd468088ebce35e71
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6075241
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
a45099fd
|
2024-11-04T18:12:54
|
|
Tests: offscreen trace replay uses a single EGL context
diablo_immortal changes the context by calling eglMakeCurrent which
causes a failure during offscreen -> onscreen blit. Restore the context
to the original one during offscreen handling.
Bug: b/370089935
Change-Id: Ie501a66b14beef5b27b8f16ff63b6fd3f3c0a338
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5990995
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
c174aa70
|
2024-12-05T15:36:18
|
|
Trace perf: add a basic fps limiter
Adds sleeps based on each 4 frames timing (4 instead of just last frame
makes fps a bit closer to requested)
Example:
--fps-limit=30
*RESULT TracePerf_vulkan.wall_time: offscreen_bubble_shooter_and_friends= 33.3556469900 ms
*RESULT TracePerf_vulkan.wall_time: bubble_shooter_and_friends= 33.4376432467 ms
--fps-limit=50
*RESULT TracePerf_vulkan.wall_time: offscreen_bubble_shooter_and_friends= 20.0218095000 ms
*RESULT TracePerf_vulkan.wall_time: bubble_shooter_and_friends= 20.0624947200 ms
--fps-limit=100
*RESULT TracePerf_vulkan.wall_time: offscreen_bubble_shooter_and_friends= 10.1298787483 ms
*RESULT TracePerf_vulkan.wall_time: bubble_shooter_and_friends= 10.1781205983 ms
--fps-limit=200
*RESULT TracePerf_vulkan.wall_time: offscreen_bubble_shooter_and_friends= 5.1289075067 ms
*RESULT TracePerf_vulkan.wall_time: bubble_shooter_and_friends= 5.1571364367 ms
--fps-limit=400
*RESULT TracePerf_vulkan.wall_time: offscreen_bubble_shooter_and_friends= 2.6172564224 ms
*RESULT TracePerf_vulkan.wall_time: bubble_shooter_and_friends= 2.7648291614 ms
Bug: b/376300037
Change-Id: I63ef75fe342b149336c0e274bd9cbf6c3aa34c23
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072435
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
3d32b3c1
|
2024-12-03T16:32:59
|
|
Vulkan: Remove vk::BindingPointer
BindingPointer is no longer used, thus deleted in this CL.
Also made unique() only available when assert is enabled since it is not
thread safe to make decisions based on reference count. We only used for
assertion anyway.
Bug: angleproject:372268711
Change-Id: Ib86faefc0608e730bfa1ebf0efc520b04cf5f365
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6045024
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
26414249
|
2024-11-28T00:00:00
|
|
Remove GetTexLevelParameter* from ANGLE_texture_multisample
These functions are always provided by
the GL_ANGLE_get_tex_level_parameter
frontend extension.
Fixed: angleproject:382291448
Change-Id: I59b4ccc56478f2e0931d1f5bd665cfdd5a34391e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072222
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
94515733
|
2024-11-27T22:16:44
|
|
Vulkan: Remove release commands from checkOneCommandBatchLocked
This is a follow up for:
Add a new mutex in CommandQueue to protect Vulkan Command Pool
crrev.com/c/angle/angle/+/6020895
`SyncHelper::getStatus()` may call
`CommandQueue::checkOneCommandBatchLocked()` which in turn may call
`releaseFinishedCommandsLocked()` if `mFinishedCommandBatches` is
already full. This requires locking the
`CommandPoolAccess::mCmdPoolMutex` mutex. This may delay API execution
even when "timeout == 0", which is against EGL spec.
Bug: b/362604439
Change-Id: Icf8f3657b65f2e435930adb12266a100dc861a93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6048803
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
e42047f0
|
2024-10-25T13:50:28
|
|
Vulkan: Disable DescriptorSet cache for SwiftShader
Performance with swiftShader is not critical and cache code path not
making much difference for SwiftShader renderer anyway. This CL disables
descriptor set cache for SwiftShader mainly to ensure the code path gets
test coverage on CI bots. This code path also ensures that we are
tagging ResourceUse on DescriptorSetHelper properly after every use.
Otherwise, it is very hard to test with cache enabled code path since
object usually won't get destroyed due to cache and any bug associated
with this is going to be very hard to debug. This CL has catch such bugs
during the descriptor set cache work.
Bug: angleproject:372268711
Change-Id: Iee1028f9378cf4f537d897e08746d5cf958f225a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6047805
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
045f2818
|
2024-12-03T09:55:39
|
|
End2end test for GL_MAX_SHADER_STORAGE_BLOCK_SIZE validation
Bug: angleproject:381742474
Change-Id: Icae7b2705f5749bc070e096fa045e68bb061b530
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6065459
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
473798bf
|
2024-11-28T00:38:36
|
|
WGSL: @align appropriate struct members in uniforms.
Structs used in the uniform address space need to have certain
members aligned according to the uniform address space layout
constraints (substantially similar to std140).
This CL adds @align annotations where necessary, in structs used
in the uniform address space. Strictly speaking, it's okay to apply
@align annotations to all structs used in the WGSL program, but this
CL uses a pre-pass AST traverser to records all the structs used
in the uniform address space. This is to avoid more unreadable
generated code, and when more transformations are applied to
these structs in future CLs, less generated code overall.
After this, the only types that can't yet be used in a uniform
are matCx2, arrays with stride not divisble by 16 (except when the
array element type is a struct), and bools.
This is #1 in struct translation in
https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.rudfrn2o6jv1
Bug: angleproject:376553328
Change-Id: Ibff3414043a6ecb4a01ef8e3e71dad9c1066ddfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056951
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Liza Burakova <liza@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
09578c42
|
2024-11-27T19:39:09
|
|
Vulkan: Cleanup CommandPoolAccess implementation
This is a follow up for:
Add a new mutex in CommandQueue to protect Vulkan Command Pool
crrev.com/c/angle/angle/+/6020895
Change simplifies `CommandPoolAccess` implementation as well as removes
source of bugs when need to know/remember what method from
`CommandPoolAccess` to use in order to collect/destroy the primary
command buffer.
Additionally, `CommandBatch` converted into a class to avoid invalid
use. The "retire" word replaced with "release" in methods such as
`releaseFinishedCommands()`.
Bug: b/362604439
Change-Id: Iaa72c55458604e5ea8ea5a402e437129a5c9180a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056019
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
4b84ee4c
|
2024-12-03T16:21:38
|
|
Vulkan: Implement GL_EXT_EGL_image_storage_compression
Bug: angleproject:352345943
Change-Id: I82a54fa2515254a1045f512818ca23a540cd7a6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6065464
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
739bcef0
|
2024-12-03T17:58:34
|
|
Vulkan: Rework finishOneCommandBatchAndCleanup
This is a follow up for:
Vulkan: Fix finishOneCommandBatchAndCleanupImplLocked
crrev.com/c/angle/angle/+/6055419
The original `finishOneCommandBatchAndCleanup()` was not optimal in a
sense that it is always finish a batch, when cleaning existing garbage
may be sufficient. Also, because there was no feedback from the
`cleanupGarbage()`, this method may just end up finishing one batch
without cleaning any garbage, causing clients to "think" that there is
no more garbage to clean. Additionally, `cleanupGarbage()` was called
under the `CommendQueue::mMutex` lock, causing uncessary blocking.
This change replaces this method with new `cleanupSomeGarbage()`. It
solves all problems of the original method described above. It no longer
has the `retireFinishedCommandsLocked()` call, because it is not
necessary in scenarios where `cleanupSomeGarbage()` is used.
In order to implement the new method, output feedback parameter was
added to the `cleanupGarbage()` as well as to all methods that it uses.
Bug: b/280304441
Change-Id: I7078899838609a0c3e5edbc4f507c2fe4364380a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6063126
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
74609065
|
2024-11-27T16:09:44
|
|
Vulkan: Fix finishOneCommandBatchAndCleanupImplLocked
Fix the `finishOneCommandBatchAndCleanupImplLocked()` to always do
cleanup regardless if there is something to finish. This method is
designed not only to free space in `mInFlightCommands` but also to
cleanup already retired commends (in `mFinishedCommandBatches`) and
renderer's garbage. In case if `mInFlightCommands` is empty cleanup was
skipped - which is incorrect.
Change removed `Impl` from the name since it is already have `Locked`.
The `finishOneCommandBatchAndCleanup()` is updated to simply call the
locked version with the mutex lock held.
Change also improved `FixedQueue` assertions (always check that
`mSize <= mMaxSize`).
Bug: b/280304441
Change-Id: I67bd7c35b164b84e9c07306a5bf48b0adefdfa5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055419
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
100c0b8c
|
2024-11-04T13:58:00
|
|
Preserve mMinSampleShading value when SAMPLE_SHADING enable is toggled
Preserve mMinSampleShading value when SAMPLE_SHADING enable is toggled.
Initial value of MIN_SAMPLE_SHADING_VALUE is zero and that value
should not be changed during glEnable(SAMPLE_SHADING_OES).
Bug: angleproject:376174077
Change-Id: Iea06d7480167eff5722c2d5eef23287e8bb956f8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5981462
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
224f836c
|
2024-12-04T09:35:09
|
|
Vulkan: Update setupDispatch comment
The comment was wrong and a source of confusion.
Bug: angleproject:382090958
Change-Id: I7b1a3d5f3b1c86539164d346e320d30b61254f2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6069354
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
cc841237
|
2024-11-29T13:45:50
|
|
Accept framebuffer modifications while PLS is active
The only way for a WebGL implementation to know if PLS is actually
active is to call glGetIntegerv(PIXEL_LOCAL_STORAGE_ACTIVE_PLANES_ANGLE)
(because glBeginPixelLocalStorageANGLE() can fail). So the original
behavior of not allowing glBindFramebuffer() et. al. while PLS was
active created a state scenario that was expensive for the browser to
track.
Instead, just allow glBindFramebuffer() et. al., and implicitly disable
PLS if they are called while it's active.
Bug: angleproject:40096838
Change-Id: Ibd303f9f9950fb5b7f1add2d41882e4379c51e62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6060301
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
57ccab32
|
2024-12-04T16:26:15
|
|
Skip dota_underlords on Windows NVIDIA
Produces flaky images on on GTX 1660 driver 31.0.15.4601
Bug: angleproject:369533074
Change-Id: I7cfde430deeec2e67549803af425087716ee675e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6070070
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
a504b6a2
|
2024-11-25T15:59:05
|
|
Support GL_OES_required_internalformat
Enable GL_OES_required_internalformat GLES extension.
Bug: angleproject:364069034
Change-Id: Ia57548469abff189472aa20b13ca99179c45f2c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038448
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Panfeng Hou <panfeng.hou@arm.com>
|
|
5951cac9
|
2024-12-04T04:37:50
|
|
Update xxHash metadata
Populating version as 0.8.2 based on:
https://github.com/Cyan4973/xxHash/commit/0f2dd4a1cb103e3fc8c55c855b821eb24c6d82c3
Bug: chromium:365320508
Change-Id: Ieec25b6fafc32c98bc29efb1e6c32a5933f30af9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6069746
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jiewei Qian <qjw@chromium.org>
Auto-Submit: Jordan Brown <rop@google.com>
Reviewed-by: Jordan Brown <rop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0bb109aa
|
2024-11-28T00:00:00
|
|
Fix validation for 2D multisample array textures
* Fixes:
* TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY query must
be rejected if the functionality is not enabled.
* GetInternalFormativ must accept TEXTURE_2D_MULTISAMPLE_ARRAY
on unextended OpenGL ES 3.2 contexts.
* Added validation to the OpenGL ES 3.2 TexStorage3DMultisample
entry point.
* Cleanups:
* Removed OES suffix from the enum conversion.
* Incorrect extension name in the error message.
* Do not create a 2D multisample array zero texture object
if the backend does not support the functionality.
* Replaced redundant FramebufferTexture validation with an assertion.
* Do not allocate texture binding vectors for 2D multisample array
textures if the backend does not support the functionality.
* Aligned the 2D multisample array texture target assert in
RecordBindTextureTypeError with the actual error condition.
Fixed: angleproject:381270278
Change-Id: Idbbc86e2efe1bbc25d9570d515b67c1a32255d99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6063068
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
75a64561
|
2024-12-02T20:06:29
|
|
restricted_trace_perf: Windows fixes
* Drops some unavailable (and unused) imports
* Allows specifying --angle-version to avoid git failures
Flag created by solti@google.com in http://crrev/c/6037489
Bug: b/376300037
Change-Id: I0c63e966c60998848cdbc8f7a9c414adc0e00d14
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6067184
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
4262c8e4
|
2024-11-22T15:03:29
|
|
Tests: Add CompressBlob()/DecompressBlob() tests
Test: angle_unittests --gtest_filter=DecompressTest*
Bug: angleproject:42263322
Change-Id: I46880601e1fabde5bc56412b3f6619bd9fe4e907
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039242
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
11495e55
|
2024-11-15T18:46:17
|
|
Perf tests: restricted_trace_perf.py uses android_helper helpers
Bug: b/376300037
Change-Id: Ie4fba3d9300fa3b96f269303f06dee3630f068c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6022181
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
104d4e4a
|
2024-11-15T20:44:39
|
|
Vulkan: Improve usage of ErasePipelineCacheVkChunks method
`ErasePipelineCacheVkChunks()` is now also used to erase any possibly
trailing chunks from the current slot. This is done to free blob cache
memory and to avoid parsing these chunks in the future and generating
false-positive "chunk header corrupted" errors.
Normally, new pipeline data is always larger than already saved, but in
case of Vulkan driver update existing data may be ignored, so the cache
data will be generated from scratch. This change will help erase old
data from the blob cache.
Bug: angleproject:42263322
Change-Id: I021abce40c4255b443babed87ed82b273d526ec0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854708
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2f595f56
|
2024-12-03T10:27:04
|
|
Update third_party metadata
This is to address the incomplete chromium dependency
metadata issue.
Bug: b/365321061
Bug: b/365320354
Change-Id: I8c62aef170170cd7f0e07f18e01a0787479f1a30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6064948
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c31a926b
|
2024-12-02T15:12:20
|
|
Refine test - TextureFixedRateCompressionTest.Invalidate
The test failed on AP1A.240405.002 Vulkan Pixel6, query compression
rate instead use passed in value.
Bug: angleproject:352364583
Change-Id: I6f112ceb85d8e3699f050a1dba8be9a595c83e99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6059344
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
fa70c4cb
|
2024-02-02T13:59:06
|
|
CL/Vulkan: Implement the buffer rect enqueues
This change implements the buffer rect copy using a series of memcopies.
The CL buffer rect doesn't map cleanly to the Vulkan copy buffer
command due to the presence of pitches, and implementing as such will
introduce more barriers in the command stream. For now we do process
this command at call entry point.
Bug: angleproject:379764609
Change-Id: I89a9032a4bbfa48899c448eb131a5ce048e8fd60
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6034035
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e3427ac7
|
2024-12-03T16:40:32
|
|
Add missing README.chromium fiends to ANGLE and DEPS
Bug: chromium:378273739
Bug: chromium:365319754
Bug: chromium:378273453
Bug: chromium:365320292
Change-Id: I2faa54c6d796ebe86537e633fdfd8aeb3c0898a7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6062491
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cc5218af
|
2024-12-02T16:06:10
|
|
ANGLE will crash when the buffer is NULL in eglCreateImageKHR
When creating egl image with android native buffer, and the buffer
pointer is NULL, ANGLE will crash. Because the type of pointer in EGL
and vulkan is different. In EGL, the type of this pointer is
ANativeWindowBuffer, But In vulkan it is AHardwareBuffer, which has an
offset compared with AHardwareBuffer, so it will access invalid address.
Bug: angleproject:379764621
Change-Id: Ifb5d4a81dea85eb23d4e3f82c37f13c7e4809ee5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6061898
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
da292057
|
2024-12-03T10:20:17
|
|
Update third party metadata
Bug: chromium:378273470
Bug: chromium:365321119
Bug: chromium:365320508
Bug: chromium:378273216
Change-Id: Ie24f00112a8f04ff9acdf6e4618b79e082529636
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6062488
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
7adbb3e8
|
2024-11-26T17:06:07
|
|
Vulkan: Remove explicit destroy calls
Since now SharedPtr will automatically call destroy(device) when last
reference goes away, there is no need for explicitly calling
destroy(device) any more.
Bug: angleproject:372268711
Change-Id: I208b17cf7e090babd51d6f337c20fdfd74c75b6b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6052886
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
b7e0a250
|
2024-11-25T13:36:02
|
|
Add tests for RGB8 and RGBA8 renderbuffer usage
* Added simple tests for RGB8 and RGBA8 renderbuffer usage for
GLES1 and GLES2+.
Bug: angleproject:352352894
Change-Id: Ie410c57ab204c2afad3f53c37578865bd9e9307f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6050343
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
65d674b0
|
2024-12-02T18:36:11
|
|
Vulkan: Must run UnlockedTailCall from flush and finish
`glFlush` and `glFinish` may call `WindowSurfaceVk::swapImpl()`
implicitly when the current Window Surface is in the single buffer mode.
The `WindowSurfaceVk::swapImpl()` in turn may add unlocked tail call in
order to perform CPU throttling. It seems, that CPU throttling is only
possible if also enable the `EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID`
attribute (using `VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR`).
Without this attribute (`VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR`)
`vkQueuePresentKHR()` performs implicit waiting for GPU, making ANGLE's
throttling uncessary (the serial is already finished).
This fix allows running the tail call from `glFlush` and `glFinish`
(because these APIs are not performance critical). Alternative solution
may instead perform the CPU throttling immediately if the
`WindowSurfaceVk::swapImpl()` is called from the
`WindowSurfaceVk::onSharedPresentContextFlush()`.
Additionally, added "ASSERT(!any())" at the beginning of each entry
point. This is to catch scenarios, if some API adds the unlocked tail
call and for some reason exit without checking the assert of running
the call.
Test: angle_end2end_tests --gtest_filter=EGLAndroidAutoRefreshTest.SwapCPUThrottling/ES3_Vulkan_NoFixture
Bug: angleproject:42266581
Change-Id: I418c552f6e95b4cfc01db738c9989533377f1050
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6063719
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
d81834b6
|
2024-11-26T15:25:35
|
|
Vulkan: Store VkDevice in vk::SharedPtr
So that we don't need to have two versions of destroy() APIs. In
previous CLs I had to add another version of destroy() that does not
take device argument due to SharedPtr may calls destroy when last
reference count goes away. Because we do not have device information at
that time, destroy() API was added but mostly just doing assertion that
Vulkan object has been explicitly destroyed. With this CL, we now stores
device in the SharedPtr so that we no longer need two destroy() APIs.
The explicit destroy(device) call will be removed in the next CL.
Bug: angleproject:372268711
Change-Id: Idcacbc3a922e17ac3d0f6056466b8f3aa084b02e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6052096
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7070a9e9
|
2024-11-20T00:21:16
|
|
Remove draw buffer validation clauses from PLS
It was cumbersome to implement all this validation browser side for
WebGL.
Rather than making it an error to update blend and color mask on
reserved PLS draw buffers, glBeginPixelLocalStorageANGLE() can just
implicitly disable blend, and enable the color mask on overridden draw
buffers. Later calls to enable blend or change the color mask on
overridden planes are silently ignored until
glEndPixelLocalStorageANGLE().
Bug: angleproject:40096838
Change-Id: Ic7e1c5113e7d3fad3b80d0178075df646540d743
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6045421
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
f7cac0bb
|
2024-03-07T18:05:27
|
|
Start Win NVIDIA experiment
On Windows 10 22H2 with 31.0.15.4601 driver.
Suppress test failures on the new platform.
Use-Permissive-Angle-Pixel-Comparison: True
Bug: chromium:40805707, angleproject:42267037, angleproject:381211730
Bug: angleproject:377923479
Change-Id: I1b457e11de10daa081bb0dac9f564b6cce97164a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5352750
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
f51170b3
|
2024-11-21T16:30:40
|
|
Enable GL_KHR_texture_compression_astc_hdr
Vulkan supports GL_KHR_texture_compression_astc_hdr,
so this extension can be enabled in Angle.
Bug: angleproject:379186304
Change-Id: I438a120c3f884a7eefcd883ad71abf68f81cb473
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038457
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d57b1d30
|
2024-11-28T11:09:53
|
|
Vulkan: Support GL_OES_required_internalformat
Only export 'GL_OES_required_internalformat' in GLES extension.
Bug: angleproject:364069034
Change-Id: I6198b7b79fc2853c7585ebff183016ee110a25e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055198
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e7eb8e27
|
2024-11-29T13:10:18
|
|
Skip TextureFixedRateCompressionTest.Invalidate on Pixel 6
Fails on AP1A.240405.002 Vulkan
Bug: angleproject:352364583
Change-Id: Ie9d1e5998cb8692c68fe015dc76ee629b2e2f70f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055168
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
a2d76f03
|
2024-11-28T00:00:00
|
|
Add GetTexLevelParameterTest.Levels end2end test
Bug: angleproject:376497150
Change-Id: Id14663f6fb1fd64edc439e695953d4a4a3b9f853
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056029
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b31f367a
|
2024-11-28T16:11:33
|
|
Vulkan: Keep old VVL suppression until roll into Chromium
Bug: angleproject:336652255
Change-Id: Id12e86862cde613cbf3c87557532b2bf23da1838
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056751
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
3f312d98
|
2024-11-04T14:04:50
|
|
ES31: GetTexLevelParameter{if} validation for TEXTURE_2D_MULTISAMPLE
GL_INVALID_VALUE is generated if target is GL_TEXTURE_2D_MULTISAMPLE,
GL_TEXTURE_2D_MULTISAMPLE_ARRAY, or GL_TEXTURE_BUFFER, and level is
not zero.
Bug: angleproject:376497150
Change-Id: Ib05ef30a04699e590804d1059387a6920c38971c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5982239
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5d3d299d
|
2024-11-25T16:35:51
|
|
Expose the required GLES1.0/1.1 extensions in ANGLE
Exposed below extensions:
GL_OES_texture_mirrored_repeat
GL_OES_blend_subtract
Bug: angleproject:380704155
Change-Id: Ib095f9bfaabda92bb2c588d633f1512e118f066e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6038450
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e10220f8
|
2024-11-28T18:24:35
|
|
Manual roll vulkan-deps from 3c7156644de7 to 0e28d467e76d (59 revisions)
Manual roll requested by syoussefi@google.com
https://chromium.googlesource.com/vulkan-deps.git/+log/3c7156644de7..0e28d467e76d
Also rolling transitive DEPS:
https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/1f1ef7560399322558793d91a53b34cdd34f4fe1..0099ed6ad09a78b083c93be9369791dd72cf8a33
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/45b314049d6262c850cc873c8f9a30f41a1e0c13..36d5e2ddaa54c70d2f29081510c66f4fc98e5e53
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/ea1d8cd9814852428d25d3ea113683a6c9686afb..7d5bc35197be75e10000f14ea9eb3954ca2b0aab
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/f864bc6dfe6229a399566e979c16795386d0f308..9dff1f571ce25b92639854b89b28539602b6b97b
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/4cd2a86fa6a88abfcf44a7630212fc375fbe0fe5..2534c1e2327990e55f51b8a1f8328085e8e3ff31
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/df2ac1bb61f09a80db979d7108adf07b6fe55913..a2224abf350f61211462a33e5b540201fa17de0d
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/c31e717dcd817279e9e90516612f9dbfc84b0e51..b538fb5b08513aa78346cd414ad5e576a2a3e920
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/fdbdd359fb2bbb50352e84b259171813957d1ee3..b61aa3f59711c9a45e6bac13f70c61dc9e4650c8
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 angle-team@google.com,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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Bug: None
Tbr: syoussefi@google.com
Change-Id: Ieecaf46ecf017defffaca78bb003b0b7dcf094f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6058269
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
01dee1cb
|
2024-10-14T15:04:28
|
|
Add implementation for GL_EXT_texture_storage_compression
Bug: angleproject:352364583
Change-Id: I3dab4c68d5d0206d681e165e991217bd3de8eeb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6011055
Auto-Submit: Neil Zhang <Neil.Zhang@arm.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8b7bb82c
|
2024-11-28T13:20:52
|
|
Vulkan: Disable dynamic vertex input state on Qualcomm
Observed bugs on S23.
Bug: angleproject:381384988
Change-Id: I9a8cd754de23f31c4bd1078f0c52f66111a8fc45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6055889
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
0f9c146b
|
2024-11-28T09:47:35
|
|
Roll Chromium from c957bc3555b2 to b640856c0ed4 (1228 revisions)
Update VK-GL-CTS's _XOPEN_SOURCE version on Apple from 600 to 700 due to
https://github.com/llvm/llvm-project/issues/117630
https://chromium.googlesource.com/chromium/src.git/+log/c957bc3555b2..b640856c0ed4
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-angle-autoroll
Please CC angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in Chromium:
https://bugs.chromium.org/p/chromium/issues/entry
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://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Changed dependencies
* build: https://chromium.googlesource.com/chromium/src/build.git/+log/77bbb5dc9c..7ed11c6746
* buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/38a60f7635..9a87238031
* testing: https://chromium.googlesource.com/chromium/src/testing/+log/f1ccfe587d..b05f90caa7
* third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/be9e355580..a79aaef505
* third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/e4eee387b5..52438668cc
* third_party/android_build_tools/error_prone/cipd: nAUL9xKY6JWQyjoK2O_mKTqLakmTU69EX-FROc-rzNEC..n2Qwqs0Jr17AMpoYGTDACFHIM0aPsdm8g3X0jBjfDQoC
* third_party/android_build_tools/lint/cipd: qft_MiuWKisqUw9hZCFTuJKi5jBZaexi7LbGkgRmrpkC..Hd1-tpL2M67CYclO3F_3WjBf70hE_XYr7tEXt0wQyvgC
* third_party/android_build_tools/manifest_merger/cipd: CIvskXU9WjZMXUINb-D8kgUKUDSf6G1G1QmCja7qOa4C..zC9JbLx2HVKIMFxavlF00isXwHx72vIkFlRCLvH0rIkC
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/497f6b7429..6a0960fe97
* third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/584e8366be..bd7f36598e
* third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/291ce60cce..76cb1e3b4a
* third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/9aff6762a3..e6303c7ffe
* third_party/r8/cipd: lrcfrwv2WpEoHAk051sZiwXxKxnNIUTYYEwM3oBDlhMC..GaYs9HP0ijqgwtd-Zv0Ee7R8HCzWR4LUzNNxBoTxdQUC
* third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/92e2247154..cecd4aabb2
* tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/5510558641..1ff4269915
* tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/6834b3fdbb..768236a7b2
* tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/c84318b6c0..d6a5c65a46
No update to Clang.
Bug: angleproject:364069034
Change-Id: I1cff11e0ebb80eae2a1f62be842796cb29e45a8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056956
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
6c1021ec
|
2024-11-22T16:48:45
|
|
Vulkan: Switch DescriptorSetLayout to use AtomicSharedPtr
SharedPtr has better semantics and safer to use. This CL removes direct
exposure of RefCounted object and also allows me to delete
BindingPointer class in later CL.
Bug: angleproject:372268711
Change-Id: I08a0dff3efcf794be843a4a548b9f2609bb9a5e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6044328
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4aaeffd8
|
2024-11-25T11:33:30
|
|
Metal: Limit simulator texture size to 8k
Regressed in commit d44204893a1725a74cd20b332fbb6f595b0975c3.
Bug: angleproject:380712807
Change-Id: Ic5e298412b35451e87b76f70d5b1b253ed1406cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039222
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
2dc072ec
|
2024-11-22T16:14:52
|
|
Vulkan: Switch PipelineLayout from AtomicBind* to AtomicSharedPtr
AtomicSharedPtr/SharedPtr has better semantics and safer to use. This
will allow deleting BindingPointer in later CL.
Bug: angleproject:372268711
Change-Id: Ife20f68b2277a1913b06be0de153770214ac964a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6044326
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
87d61997
|
2024-11-21T14:20:55
|
|
Vulkan: Switch ShaderModule to use SharedPtr
This CL gets rid of many vk::RefCounted<vk::ShaderModule> usage which is
risky due to it allows you to direct manipulate reference count. Switch
to vk::SharedPtr manages the reference counting automatically.
Bug: angleproject:372268711
Change-Id: I14f5c509bcbd9ea7d17101637e033652a68710a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6039117
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
6451a893
|
2024-11-27T16:06:09
|
|
Fix minimum caps for texture gather offsets.
Bug: angleproject:40096373
Change-Id: Ia5480a37eba4efa40cb602d279feaaddfa9c59c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6053597
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Stephen White <senorblanco@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|