|
f2315dbe
|
2024-10-23T13:34:39
|
|
Reland: Vulkan: Update checks for promoted extensions
This relands commit c2219ef9ec03277b6f8ad18d6d1ade41ddf88ba6.
Features that depend on promoted extensions are now enabled when
the extensions are present, OR the version of Vulkan that they were
promoted to is present. This commit checks for Vulkan 1.1 because
that is the version currently supported.
In the reland, the promoted extensions are not added to the list of
extensions to be enabled, because the underlying driver may not have
exposed them as extensions at all.
Bug: angleproject:374483183
Change-Id: I98e004d3fb4ed673984859ab63d40702f877b535
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5955635
Reviewed-by: Jason Macnak <natsu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2dcc80dd
|
2024-10-17T13:59:23
|
|
Vulkan: allocateDescriptorSet to avoid repeated try on same pool
DynamicDescriptorPool::allocateDescriptorSet has a few steps. It first
tries to allocate from the same pool. Then tries to allocate from
mCurrentPoolIndex and then loops all existing pools. This CL keeps the
same basic logic, but avoids repeated tries on the same pool.
Bug: angleproject:372268711
Change-Id: Ic3099ac8c68688fe9afe452f808be29ac9063d51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5926182
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a05fc2bc
|
2024-10-23T13:36:54
|
|
Revert "Vulkan: Update checks for promoted extensions"
This reverts commit 9c1f96b8606a564b565d37208268b9b06efff03e.
Reason for revert: Still fails on Cuttlefish (which uses SwiftShader)
Bug: angleproject:374975259
Original change's description:
> Vulkan: Update checks for promoted extensions
>
> Features that depend on promoted extensions are now enabled when
> the extensions are present, OR the version of Vulkan that they were
> promoted to is present. This commit checks for Vulkan 1.1 because
> that is the version currently supported.
>
> Bug: angleproject:374483183
> Change-Id: I17d7956ac8a604f531e020e77c6f532e616b9dd5
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5954316
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:374483183
Change-Id: I1bef03f99b044bca91950a62e4015630a7c91530
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5956483
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
|
|
9a4c7495
|
2024-10-15T13:05:28
|
|
Vulkan: Add feature flag to enable descriptorSet cache
So that we can disable it to compare the performance difference.
Bug: angleproject:372268711
Change-Id: I02da254e5d58815741080634a2dd005617aa7432
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5936135
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
31c80bbf
|
2024-10-17T10:56:16
|
|
Vulkan: Avoid redundant work in updateFullActiveTextures
ContextVk keeps mActiveTexturesDesc, which gets updated by
UpdatePreCacheActiveTextures(). This is only used for cache lookup. When
there is a cache miss, we end up call updateFullActiveTextures() which
recomputes DescriptorSetDesc again, which is redundant work.
This CL removes mActiveTexturesDesc from ContextVk.
UpdatePreCacheActiveTextures has been changed to be a
DescriptorSetDescBuilder method so that it can directly update the
mDesc. updateFullActiveTextures has been renamed to
updateActiveTexturesForCacheMiss which avoid mDesc calculation.
updateFullActiveTextures is still kept for now which will be used in
next CL when cache is disabled.
Bug: b/372268711
Change-Id: Ic9a0cdaa7cefca5f72b599d26d079cef14888f07
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905766
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
dd54eeec
|
2024-10-11T13:26:46
|
|
Reland "Vulkan: Track GPU progress for individual DescriptorSet"
This is a reland of commit 292102944add2ab30f4aa12a971cac456cc7726b
with the fix of garbage being added back to garbage list.
Original change's description:
> Vulkan: Track GPU progress for individual DescriptorSet
>
> Right now ProgramExecutableVk keeps VkDescriptorSet object, and
> DescriptorSetHelper is created when a cache entry becomes invalid.
> Further, DescriptorSetCache keeps the cache of {VkDescriptorSet,
> RefCountedDescriptorPoolHelper} pair. So we are having three different
> type of objects at different stages of life: VkDescriptorSet,
> DescriptorSetHelper, and {VkDescriptorSet,
> RefCountedDescriptorPoolHelper. This CL makes DescriptorSetHelper at
> creation and at cache and at garbage. With this change, you have a
> reference counted DescriptorSetHelper object (i.e, DescriptorSetPointer)
> during entire life cycle and is passed around between cache and program
> as is. This CL is preparation for the future CL where we may disable
> cache for descriptorSet. The descriptorSet will be added to garbage list
> and reused constantly without go through the cache code. We need to
> track the individual descriptorSet with ResourceUse so that it won't
> reuse until GPU is finished. This CL is making DescriptorSetHelper a GPU
> tracking object so that it will still just work when cache is disabled.
>
> Bug: angleproject:372268711
> Change-Id: I1cfb77cc5069b202d870388fd8809e265cdca90b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918586
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:372268711
Change-Id: Ic920f99cc78cde1e94690bdbee3b885844fa155b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5954701
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
60da450e
|
2024-09-20T17:56:55
|
|
CL: Implicit cmd queue submit on release
From OpenCL spec (3.0):
https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#_flush_and_finish
clReleaseCommandQueue perform an
implicit flush of the command-queue.
Bug: angleproject:8639
Change-Id: I0a3b0f3c602075fd2a6e1ac0310345b3d568df64
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5410931
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
45cc47af
|
2024-10-22T21:41:22
|
|
Revert "Vulkan: Track GPU progress for individual DescriptorSet"
This reverts commit 292102944add2ab30f4aa12a971cac456cc7726b.
Reason for revert: Causing bot failure in later CLs
Original change's description:
> Vulkan: Track GPU progress for individual DescriptorSet
>
> Right now ProgramExecutableVk keeps VkDescriptorSet object, and
> DescriptorSetHelper is created when a cache entry becomes invalid.
> Further, DescriptorSetCache keeps the cache of {VkDescriptorSet,
> RefCountedDescriptorPoolHelper} pair. So we are having three different
> type of objects at different stages of life: VkDescriptorSet,
> DescriptorSetHelper, and {VkDescriptorSet,
> RefCountedDescriptorPoolHelper. This CL makes DescriptorSetHelper at
> creation and at cache and at garbage. With this change, you have a
> reference counted DescriptorSetHelper object (i.e, DescriptorSetPointer)
> during entire life cycle and is passed around between cache and program
> as is. This CL is preparation for the future CL where we may disable
> cache for descriptorSet. The descriptorSet will be added to garbage list
> and reused constantly without go through the cache code. We need to
> track the individual descriptorSet with ResourceUse so that it won't
> reuse until GPU is finished. This CL is making DescriptorSetHelper a GPU
> tracking object so that it will still just work when cache is disabled.
>
> Bug: angleproject:372268711
> Change-Id: I1cfb77cc5069b202d870388fd8809e265cdca90b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918586
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bug: angleproject:372268711
Change-Id: I4d3c34058d100112a098144276b52c0faf8d593a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5955529
Auto-Submit: Charlie Lao <cclao@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
9c1f96b8
|
2024-10-22T12:58:27
|
|
Vulkan: Update checks for promoted extensions
Features that depend on promoted extensions are now enabled when
the extensions are present, OR the version of Vulkan that they were
promoted to is present. This commit checks for Vulkan 1.1 because
that is the version currently supported.
Bug: angleproject:374483183
Change-Id: I17d7956ac8a604f531e020e77c6f532e616b9dd5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5954316
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
99ba07d3
|
2024-03-26T00:58:57
|
|
CL/Vulkan: Implement createImage
Enabling functionality of:
- clCreateImage
Tests-Passing: OCLCTS.test_api get_image<1d|2d|3d>_info
Bug: angleproject:42266936
Signed-off-by: Rafay Khurram <r.khurram@samsung.com>
Change-Id: I0281f092bff13cdd81b87d596fdd15b33dda7e46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5796527
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d774f75c
|
2024-10-21T00:00:00
|
|
Fix Python warning in overlay fonts generator
Fixed: angleproject:358565474
Change-Id: Ide48691fa4d52d063c5c80fc7cdbc16c99a97ed0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5953793
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
29210294
|
2024-10-11T13:26:46
|
|
Vulkan: Track GPU progress for individual DescriptorSet
Right now ProgramExecutableVk keeps VkDescriptorSet object, and
DescriptorSetHelper is created when a cache entry becomes invalid.
Further, DescriptorSetCache keeps the cache of {VkDescriptorSet,
RefCountedDescriptorPoolHelper} pair. So we are having three different
type of objects at different stages of life: VkDescriptorSet,
DescriptorSetHelper, and {VkDescriptorSet,
RefCountedDescriptorPoolHelper. This CL makes DescriptorSetHelper at
creation and at cache and at garbage. With this change, you have a
reference counted DescriptorSetHelper object (i.e, DescriptorSetPointer)
during entire life cycle and is passed around between cache and program
as is. This CL is preparation for the future CL where we may disable
cache for descriptorSet. The descriptorSet will be added to garbage list
and reused constantly without go through the cache code. We need to
track the individual descriptorSet with ResourceUse so that it won't
reuse until GPU is finished. This CL is making DescriptorSetHelper a GPU
tracking object so that it will still just work when cache is disabled.
Bug: angleproject:372268711
Change-Id: I1cfb77cc5069b202d870388fd8809e265cdca90b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918586
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
47c66901
|
2024-10-21T12:47:22
|
|
Vulkan: Set gl_Layer to 0 if the framebuffer is not layered
Bug: angleproject:372390039
Change-Id: I29067c9488e06f6dd2e90f207fecb843267fb77c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5949263
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e869b426
|
2024-10-22T10:04:06
|
|
Revert "Removed checks for promoted extensions"
This reverts commit c2219ef9ec03277b6f8ad18d6d1ade41ddf88ba6.
Reason for revert: Possible cause of boot failures on cuttlefish
Bug: angleproject:374975259
Original change's description:
> Removed checks for promoted extensions
>
> Removed checks for Vulkan extensions that have been promoted into Vulkan
> 1.1, which is already the minimum required version for ANGLE. The
> dependent features now work when the extensions are missing because the
> extensions are no longer necessary.
>
> Bug: angleproject:374483183
> Change-Id: Iad92b33a8e724eaa8f4bfcbe406f5b6b8536d6d8
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5944678
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: angleproject:374483183
Change-Id: I92eb6681c6d1b8f7e2d0832bb4e1cbf4597bd1c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5952279
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f4e776a8
|
2024-10-14T22:41:34
|
|
GLES1: Fix eye distance for fog
Distance should be non-negative, so use abs().
From the spec, OpenGL ES 1.1 ยง3.8. Note the 'abs' symbols.
An implementation may choose to approximate the eye-coordinate
distance from the eye to each fragment center by |z_{e}|.
Bug: b/369665616
Test: angle_trace_tests --gtest_filter="*minetest*"
Change-Id: Ic6c162ba2469600fa6a8c8d61e5bccf5c0cb12d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5933566
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Lina Versace <linyaa@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Lina Versace <linyaa@google.com>
|
|
4bdcdf0d
|
2024-10-16T11:44:49
|
|
Vulkan: Switch RefCountedDescriptorPoolBinding to use SharedPtr
This mostly a clean up. RefCountedDescriptorPoolBinding is replaced with
DescriptorPoolPointer, which is defined as
SharedPtr<DescriptorPoolHelper>. It has more intuitive semantics to use.
Bug: angleproject:372268711
Change-Id: I0397111b5228e896c1d226e00930851319d955a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938947
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c52e8493
|
2024-10-11T14:21:19
|
|
Vulkan: Switch DescriptorPoolPointer to use SharedPtr
To make the reference counting easier to maintain, SharedPtr class is
added to automatically tracking the reference counting and object
creation/destruction. Right now we have BindingPointer class doing
similar things except it does not automatically manage the object
create/destroy, which makes it less robust as well as redundant code to
manage object life cycle. The other problem with BindingPointer is that
it does not work with normal assign/copy operator which made it hard to
read and use. SharedPtr uses exact same API semantics as
std::shared_ptr, which makes the reference counting very easy to use.
The main difference of SharedPtr and std::shared_ptr is that it does not
use any atomic or lock since it assumes user only uses it under thread
safe environment, which ANGLE's backend is.
This CL also changes mDescriptorPools to mDynamicDescriptorPools to make
it clear that it is dynamic descriptor pool not the descriptor pool.
This is also preparation CL for the next CL where we will use SharedPtr
to manage DescriptorSetHelper life cycle, which otherwise a bit
complicated to manually manage.
Bug: angleproject:372268711
Change-Id: I1033d9bf259bbc075a9b374d8a28e1f67d889873
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5926183
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ef55ca0a
|
2024-10-17T14:44:22
|
|
Update copy validation regarding ext textures
* Updated the validation functions for the following function to
accept TEXTURE_EXTERNAL_OES: glCopyImageSubDataEXT()
* Updated unit test CopyTextureTestES3.CopyImageSubDataToEGLImage
* Using TEXTURE_EXTERNAL_OES as target for glFramebufferTexture2D()
requires EXT_YUV_target. Therefore, the texture related to it is
used instead.
Bug: angleproject:361372990
Change-Id: I905d4cf89522ae3158516b42b15705d1044c6e97
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5940404
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
a19f0947
|
2024-10-17T22:42:30
|
|
Vulkan: Cache depth- and stencil-only views
Existing depth/stencil blit and resolve paths created temporary depth-
and stencil-only views. For
GL_ARM_shader_framebuffer_fetch_depth_stencil, such views are needed as
well.
In preparation for that extension, this change adds depth- and
stencil-only views to ImageViewHelper and allows them to be retrieved
through RenderTargetVk. The blit and resolve paths are consequently
simplfied as a side-effect.
Bug: angleproject:352364582
Change-Id: Ia822efb44ca7c82f63afce904eb19dd1bed02ff5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938149
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
c2219ef9
|
2024-10-20T04:49:44
|
|
Removed checks for promoted extensions
Removed checks for Vulkan extensions that have been promoted into Vulkan
1.1, which is already the minimum required version for ANGLE. The
dependent features now work when the extensions are missing because the
extensions are no longer necessary.
Bug: angleproject:374483183
Change-Id: Iad92b33a8e724eaa8f4bfcbe406f5b6b8536d6d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5944678
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4aa12e9e
|
2024-10-07T00:00:00
|
|
Metal: Remove macOS 11.0 availability checks
Chromium now requires at least macOS 11.0.
This also implies MSL 2.3 support.
Bug: angleproject:371829506
Change-Id: I6aaf4d9775bfe58747df28173d3931aa11fa8d25
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912903
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
182aa407
|
2024-08-14T19:52:30
|
|
Reland "Metal: translate IOSurface pbuffer's GL_RGB to RGBX/BGRX format."
This is a reland of commit f102d75a39ec8980a617c179034c24f337b12d1c
Nothing changed, it's just that the root cause was already fixed in
https://chromium-review.googlesource.com/c/angle/angle/+/5937060.
Original change's description:
> Metal: translate IOSurface pbuffer's GL_RGB to RGBX/BGRX format.
>
> Currently when IOSurface is bound to a pbuffer with GL_RGB internal
> format, we asign angle format=B8G8R8A8_UNORM/R8G8B8A8_UNORM to it.
> And then disable alpha write to the respective MTLTexture.
>
> However, when an implicit MSAA texture is created for the above
> pbuffer, it will be assigned B8G8R8A8_UNORM/R8G8B8A8_UNORM angle format
> but has no knowledge about alpha write disable. Consequently, when a
> render pass uses this implicit MSAA texture, its alpha channel won't be
> cleared properly and would contain garbage values.
>
> In order to avoid the above bug, we should use
> B8G8R8X8_UNORM/R8G8B8X8_UNORM angle format for the IOSurface pbuffer.
>
> This will fix the render corruptions found in chromium:358957665.
>
> Bug: angleproject:42261786
> Bug: chromium:358957665
> Change-Id: I8aa1e24ace2de80dd08e21711445515ba4b339ff
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5788801
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Bug: angleproject:42261786
Bug: chromium:358957665
Change-Id: I1e090886ed493eafce35d2ba98010c3be7bc16c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5937061
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
2b329ee4
|
2024-10-18T01:37:10
|
|
Metal: fix memory leaks in Texture::getStencilView
The leaks were because we stored a strong ref to the texture itself in
mStencilView member if the texture already has a stencil format. This
caused a circular reference preventing the texture from being released.
This indirectly caused MSRTT's memory leaks in chromium:374072906 due to
MSRTT using getStencilView for blitting step.
Bug: chromium:374072906
Change-Id: I8ced300c2da2de1282c623780dd1affd9d45fb05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5937060
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Auto-Submit: Quyen Le <lehoangquyen@chromium.org>
|
|
78f146e3
|
2024-10-14T00:00:00
|
|
Remove EAGL support
Fixed: angleproject:362530620
Change-Id: I6157655a7ad5b1e30c5d0a155d3ae3e8a81997e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938872
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
|
|
5b96316b
|
2024-10-17T14:00:41
|
|
Revert "Metal: translate IOSurface pbuffer's GL_RGB to RGBX/BGRX format."
This reverts commit f102d75a39ec8980a617c179034c24f337b12d1c.
Reason for revert: Suspecting this caused an GPU memory regression on Mac.
Bug: chromium:374072906
Original change's description:
> Metal: translate IOSurface pbuffer's GL_RGB to RGBX/BGRX format.
>
> Currently when IOSurface is bound to a pbuffer with GL_RGB internal
> format, we asign angle format=B8G8R8A8_UNORM/R8G8B8A8_UNORM to it.
> And then disable alpha write to the respective MTLTexture.
>
> However, when an implicit MSAA texture is created for the above
> pbuffer, it will be assigned B8G8R8A8_UNORM/R8G8B8A8_UNORM angle format
> but has no knowledge about alpha write disable. Consequently, when a
> render pass uses this implicit MSAA texture, its alpha channel won't be
> cleared properly and would contain garbage values.
>
> In order to avoid the above bug, we should use
> B8G8R8X8_UNORM/R8G8B8X8_UNORM angle format for the IOSurface pbuffer.
>
> This will fix the render corruptions found in chromium:358957665.
>
> Bug: angleproject:42261786
> Bug: chromium:358957665
> Change-Id: I8aa1e24ace2de80dd08e21711445515ba4b339ff
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5788801
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Bug: angleproject:42261786
Bug: chromium:358957665
Change-Id: I29238588f78f2d01c77a317b2a22670a8036d2e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5939455
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
831a52f2
|
2024-10-16T13:46:04
|
|
Hold on to error message in LinkTaskMtl as C++ string.
Make a copy of the incoming C string because the error message might
be dynamically allocated and deallocated by the caller.
Bug: angleproject:370425451
Change-Id: If4aaa93a90a1da8bc60f7839e29b705b0d2864e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938484
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kenneth Russell <kbr@chromium.org>
|
|
2f644ed8
|
2024-10-16T00:00:00
|
|
Implement NULL translator output
Fixed: angleproject:373818287
Change-Id: If862e8e66a043ef968daea91d95717af97e3a0de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5937827
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
323187d9
|
2024-10-11T13:48:51
|
|
Vulkan: Fix color attachment limit with framebuffer fetch
ANGLE incorreclty assumed that the input descriptor limit is at least as
big as the color attachment limit. This is not true on Intel/windows
where 8 color attachments are available but only 7 input descriptors.
With this change, the color attachment limit is dropped to 7 in such a
case so that framebuffer fetch can continue to be supported.
Bug: angleproject:372873263
Change-Id: If836563b47399a23b293b74815f6bccb21aaf47c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5919759
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3fa74223
|
2024-03-26T17:13:52
|
|
Vulkan: Add check for VK_EXT_external_memory_host extension
Tests-Passing: GN Build
Bug: angleproject:42266936
Change-Id: Ie30f1cee939bc8a4b98d37f718e4526156916f05
Signed-off-by: Rafay Khurram <r.khurram@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5796524
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ee914a4
|
2024-03-04T06:54:29
|
|
CL: Add cl_image_format map autogeneration
* Added map JSON files containing CL image formats
* Updated ANGLE format table generator to include CL foramts
Tests-Passing: GN Build
Signed-off-by: hoonee.cho <hoonee.cho@samsung.com>
Bug: angleproject:42266936
Change-Id: I2967ea6d26f69223ffa3ca12d469c05a3844200f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5798054
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
|
|
897a5654
|
2024-10-16T10:32:16
|
|
CL: Rename isSet/isNotSet to intersects/excludes
In particular, `isSet` was checking if _any_ bit was set instead of if
_all_ bits were set. This was a point of confusion.
Bug: angleproject:42266936
Change-Id: I76211a423f304fb4641ceb9cbfbb0bea4ff33ccf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5937411
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e40d8581
|
2024-10-16T10:57:39
|
|
Vulkan: Fix render pass revival vs framebuffer fetch and DR
Bug: angleproject:352364582
Change-Id: I86548251fc1dec75031a23e3461bf296c852919c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5937412
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
7beb008d
|
2024-10-16T10:04:43
|
|
Vulkan: Disable dynamic rendering on Nvidia
Bug: angleproject:372883691
Change-Id: I71b45ea67a725a5a55d69b17329866000a1f37e3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938740
Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
37dd8e92
|
2024-09-20T17:49:11
|
|
WebGPU: Stream client arrays
Add support for vertex attributes and index data without buffer
backings. Stream the data to buffers at draw time.
Bug: angleproject:368602384
Change-Id: I697b7882cdebf0dfab08fcffabd2d36048920547
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5878137
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
68ba532b
|
2024-10-09T14:38:01
|
|
Add validation for ObjectLabel
The validation of ObjectLabel is empty.
Move the validation in ValidateObjectLabelKHR to a new
ValidateObjectLabelBase (except the extension check), and make
ValidateObjectLabel and ValidateObjectLabelKHR both call
ValidateObjectLabelBase after the version/extension check.
An end2end test is added
Bug: angleproject:360903471
Change-Id: Iabfd3c16c5423b2ab2fe5e417fe75eed00237c92
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5919129
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0dbe85f3
|
2024-10-15T13:54:36
|
|
Increase the size of vector WriteImages to max
ANGLE limits the size of vector which represents the write images when
resolving images. So when blit a multisample buffer to mrt, the sum of
write images is more than 1 and app will abort while checking the size
of the vector.
This patch increases the size of vector WriteImages to max.
Add end2end test to test blit multisampled framebuffer to MRT
framebuffer.
Bug: angleproject:361369302
Change-Id: I2d892bcd3411f2bca2ff514f6f0b6055d872668a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5872512
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
91391c06
|
2024-10-02T16:07:02
|
|
Vulkan: Vertex attribute hole crash workaround
* Added condition to bypass reading from a streaming attribute
if the source pointer is null.
* Added unit test that crash if a vertex pointer is not defined
for an enabled vertex attribute.
* VertexAttribPointerCopyBufferFromInvalidAddress
* Credit for the original test: tingwei.guo
Bug: angleproject:359729255
Change-Id: I2592fed66f0eba8c7003ec02cc8ca802833f23b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5899978
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a1584f49
|
2024-10-11T21:17:32
|
|
Vulkan: Qualify framebuffer fetch with "Color"
In preparation for depth/stencil framebuffer fetch, many framebuffer
fetch symbols are affixed with Color to indicate that they pertain to
color framebuffer fetch logic.
Bug: angleproject:352364582
Change-Id: I86000ada5e6ef47387dec0b6a3fca589d816cdc2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5926593
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
1608d0be
|
2024-10-10T16:53:15
|
|
Vulkan: Isolate framebuffer fetch no-RP-break optim from DR
Prior to [1], changes to framebuffer fetch usage by shaders caused a
render pass break. This was due to a limitation of render pass
compatibility rules. It also caused other headache, such as needing to
clear the render pass cache, recreating pipelines etc.
[1]:https://chromium-review.googlesource.com/c/angle/angle/+/3697308
In [1] an important optimization was implemented for tiling GPUs where
ANGLE permanently switched to framebuffer fetch mode on first
encountering framebuffer fetch use. From that point on, ANGLE would
always make every render pass framebuffer fetch compatible.
In reality, the render pass break was unnecessary, which became apparent
with dynamic rendering (for example that whether the render pass
includes input attachments has no bearing on a pipeline that doesn't use
input attachments at all). In [2], dynamic rendering kept the render
pass break + permanent switch behavior for simplicity.
[2]:https://chromium-review.googlesource.com/c/angle/angle/+/5637155
This change untangles the optimization done for legacy render passes
from dynamic rendering, allowing dynamic rendering to start every render
pass without framebuffer fetch and enable it later if a framebuffer
fetch program is used.
This is in preparation for supporting depth/stencil framebuffer fetch,
where a perma-switch is troublesome (for example in combination with
read-only depth/stencil feedback loops).
Bug: angleproject:352364582
Change-Id: I31221cf22a28d58b9b2bf188e9c0b786cd0fe3d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5923120
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
8f367854
|
2024-10-13T13:45:17
|
|
Vulkan: Refactor ImageCopy shader
- Refactor common shader code into "ImageCopy.inc"
- Add ImageCopyFloat shader that supports only float src and dst formats
- Perform YUV and multisampled image copies with ImageCopyFloat
Bug: angleproject:372059358
Change-Id: I34bbaf49f98920494d9ed9e1fd290b413a89ea13
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5927276
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
78a694a1
|
2024-10-10T14:08:31
|
|
Bugfix for ms_to_ss in dynamic rendering
VkMultisampledRenderToSingleSampledInfoEXT should be added into
VkRenderingInfo.pNext when using dynamic rendering pass.
Bug: angleproject:370153437
Change-Id: If9377362d95c60e610ec978eb684918de9807342
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5922915
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ab1cdd22
|
2024-10-03T00:00:00
|
|
Translator: Support EXT_texture_query_lod
No backend support yet.
Bug: angleproject:368275901
Change-Id: I10bbc03feca485908315633cbc0f955e82994657
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5920240
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
68de0042
|
2024-10-08T05:41:37
|
|
Vulkan: Support glCopyTexImage2D from MSAA default framebuffer
Add support for glCopyTexImage2D when the source is an MSAA
default framebuffer by enhancing UtilsVk::copyImage(...) to
support multisampled source images.
Bug: angleproject:372059358
Tests: MultisampleTestES3.CopyTexImage2DFromMsaaDefaultFbo*
Change-Id: I9b5d39f6f75ca8056f8be18b1e68eb0161c99903
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5914629
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
028bb1cb
|
2024-10-03T00:00:00
|
|
Add EXT_texture_query_lod stubs
Bug: angleproject:368275901
Change-Id: I34ab23630bc6c3d720acefa97e4c324f41fa61cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5922877
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b724eb0e
|
2024-10-10T16:51:11
|
|
Vulkan: Fix assert with overlay and not dynamic rendering
The render pass started by UtilsVk for the overlay was not marked as
belonging to the default framebuffer, causing an incorrect assertion
failure where the final image layout was to be set to PRESENT_SRC.
Bug: angleproject:42267038
Change-Id: I6e7a9357378d6f9a6e907e0ba25fb64dc8f7540e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5923119
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
62f33a5c
|
2024-10-09T16:06:54
|
|
Vulkan: Make retainResource for descriptorSetPool consistent
Right now the cache hit and cache miss case are handled differently.
This CL makes it consistent. Now Caller of
DynamicDescriptorPool::getOrAllocateDescriptorSet will handle this
retainResource call regardless of cache hit or miss.
Bug: b/372268711
Change-Id: I11e47ab9e56a24eb68a0231c5e553ab6b8833c82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5921640
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
ae5c3b96
|
2024-10-08T17:02:21
|
|
Boilerplate for GL_ARM_shader_framebuffer_fetch_depth_stencil
Bug: angleproject:352364582
Change-Id: I94c670db5546564a6f60bb513a6d7f3f5bd5778c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5916771
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
3e8d09a1
|
2024-10-08T17:01:02
|
|
Vulkan: Enable FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM
ANGLE correctly handles MRT with gl_LastFragColorARM, this property
should have been set to true.
Bug: b/269233744
Change-Id: Iaa554df57292fcc5c12281e2e098b6451f63d5e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5916770
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
c9606f00
|
2024-10-07T10:15:14
|
|
Fix extensions moved to core in GLES 3.2
The GL_EXT_texture_cube_map_array, GL_EXT_texture_buffer, and
GL_OES_texture_storage_multisample_2d_array extensions were moved
into core in ES3.2, but validation still required enabling
extensions. Added 3.2 as a sufficiency.
Test: angle_end2end_tests --gtest_filter=*CompressedTexImageCubeMapArray*
Bug: b/371940347
Change-Id: Ie73a76087b6b52775d44ae79efd7f48e9fc90eb9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912120
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mark ลobodziลski <mark@lunarg.com>
|
|
ba292370
|
2024-10-08T19:58:29
|
|
Vulkan: Disable imageless framebuffers on Qualcomm and PowerVR
* Qualcomm with imageless framebuffers, vkCreateFramebuffer
loops forever
* PowerVR with imageless framebuffer spends enormous amounts of time
in framebuffer destruction and creation. ANGLE doesn't cache
imageless framebuffers, instead adding them to garbage collection,
expecting them to be lightweight.
Tests: dead_cells, chrono_trigger, batman_telltale
Bug: b/369693310, b/372273294
Change-Id: I43714154661c4415ec10511ed096da7c23a9a8ef
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918740
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
878e1c92
|
2024-10-07T16:34:54
|
|
Vulkan: Fix line-loop draw arrays after elements
Currently, when drawing line-loop arrays in Vulkan, an index
buffer is created to assist in drawing (since Vulkan does not
natively include a line-loop draw mode). However, when LL array
draw calls are mixed with non-LL element draw calls, it can lead
to some rendering issues due to the fact that the proper index
buffer is not obtained.
* In VertexArrayVk::handleLineLoop(), if the cached indices are the
same as the last draw, the same index buffer is obtained from the
LineLoopHelper object.
* (Using the newly added getCurrentIndexBuffer())
* Added unit test in which a triangle element draw is places between
two LL array draws. Before the fix, the second LL draw would result
in an incorrect line draw.
Bug: chromium:40911000
Change-Id: Ibba9a0cb2b77a2b6ae2c1e9230afe3d16b70cb63
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908694
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
aa61c076
|
2024-10-08T12:14:13
|
|
Autogen files for GL_ARM_shader_framebuffer_fetch_depth_stencil
Bug: angleproject:352364582
Change-Id: I3e736195be3a21c2ae48b4ab2922f9ae7bfcbf32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5916185
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
aec90a8d
|
2024-10-07T10:56:24
|
|
Fix ignoring blit bits when attachments are missing
GLES requires that the bits provided to glBlitFramebuffer are silently
ignored if either the read or draw framebuffer is missing the
corresponding attachment.
In WebGL, this is forbidden. ANGLE was forbidding this because of
WebGL, but a recent CTS test revealed that we shouldn't be doing that
when !WebGL.
Bug: angleproject:370917919
Change-Id: I202fbf665d8a102f0aea72709b80dfdabeb71a2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912614
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
166b72c9
|
2024-09-30T19:07:26
|
|
GL_ANGLE_blob_cache implementation.
Bug: chromium:370538323
Change-Id: Ic51a951e78b48b315e36f518bcc39ff2d54660a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5900761
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
492cf265
|
2024-09-27T13:44:22
|
|
Stubs for GL_blob_cache_angle
Bug: chromium:370538323
Change-Id: Ib56b28c24305db8931f382b16a24975b7277fa7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5900760
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c99f1106
|
2024-10-05T17:21:37
|
|
Debug: Allow forcing GL_RENDERER and GL_VENDOR
It can often be useful to force the GL_RENDERER and GL_VENDOR strings
to values recognized by applications.
Bug: b/371749458
Change-Id: I045a76e733e1b59ad257caceed396847abf3d7fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5910908
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
cd10ad46
|
2024-09-30T00:00:00
|
|
Metal: Rework allowSamplerCompareGradient feature
* AMD drivers may fail when a sample_compare function is
used with explicit derivatives. To avoid such failures,
the effective level is computed from the texture size,
passed derivatives, and texture coordinates, if needed.
The level value is then used for sample_compare instead
of the explicit derivatives.
* Apple2 GPUs do not support setting texture sampler compare state
via Metal API. As a result, all sample_compare functions including
those without LOD options do not work on Apple2 GPUs. This feature
was attempting to incorrectly emulate a subset of sample_compare
functions with a hard-coded compare state.
There are no plans to support shadow samplers on Apple2 GPUs,
as it would require non-trivial emulation, so this feature is
no longer relevant for that platform.
* Metal on macOS 10.15 only supports constant zero as
the level parameter for sample_compare functions.
Ignoring the passed derivatives and using zero LOD on old OS
versions is a better fallback than dropping the derivatives
altogether because many applications use the derivatives to
set the level to zero anyway.
Bug: angleproject:365066518
Bug: angleproject:368059227
Change-Id: I4028421b785ae49328b72658e0a9783275461779
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5903970
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
b3d85cce
|
2024-09-30T14:28:35
|
|
Vulkan: Consolidate write colorspace override states
ColorspaceState struct is now used to cache write colorspace related
states to determine the colorspace of Vulkan draw image views.
ImageViewHelper methods are called during initialization and when
colorspace related states are toggled dynamically which in turn process
these states and determine the final write colorspace.
We can now fully support rendering to EGLImages, with colorspace
overrides, via texture or renderbuffer EGLImage targets
Bug: angleproject:40644776
Tests: ImageTest*Colorspace*Vulkan
MultithreadingTestES3.SharedSrgbTextureMultipleContexts*Vulkan
ReadPixelsPBOTest.SrgbUnorm*Vulkan
Change-Id: I2be2cd3b5b2b4ac8ecb803c34cde2b846cbd1cbe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5901256
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
b38cc7fa
|
2024-09-30T12:43:09
|
|
Vulkan: Consolidate read colorspace override states
ColorspaceState struct is now used to cache read colorspace related
states to determine the colorspace of Vulkan read image views.
ImageViewHelper methods are called during initialization and when
colorspace related states are toggled dynamically which in turn process
these states and determine the final read colorspace.
Bug: angleproject:40644776
Tests: ImageTest*Colorspace*Vulkan
SRGBTextureTest.SRGB*TextureParameter*Vulkan
SRGBTextureTestES3.SRGBDecodeTexelFetch*Vulkan
Change-Id: I16b3666cd80865936b826dc0738fc9210dabeda9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5901255
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
605c2f85
|
2024-09-27T12:00:58
|
|
Vulkan: Bugfix in FramebufferVk::blit(...)
If any color attachment of GL_DRAW_FRAMEBUFFER is already in use in the
currently started renderpass, don't reuse the renderpass for blit.
Bug: angleproject:40644776
Tests: Texture2DTestES3.UnitTest_DMSAA_dst_read*
Change-Id: Ib4266fc65d0ac7151f362f263e9e706adb1231ce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5895158
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
f9709279
|
2024-09-20T16:02:56
|
|
CL/Vulkan: Add support for printf builtin processing
The support for printf builtin in clspv enabled through the SPIR-V
non-semantic clspv reflection instructions - PrintfInfo and
PrintfBufferStorageBuffer [1]. The printf buffer is setup with a
separate descriptor layout and the pipeline layout is updated
accordingly.
Also, printf is enabled as default option now for clspv.
[1]: https://github.com/KhronosGroup/SPIRV-Registry/blob/master/nonsemantic/NonSemantic.ClspvReflection.html
Bug: angleproject:369724757
Change-Id: I20b245eb0fea69941bd1aeb42534f8b729ec17e8
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893958
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b61f9f9e
|
2024-10-04T11:07:23
|
|
Vulkan: Add operator<< for descriptorSet for debugging
Right now it is using streamOut() function which is hard to use with
WARN(). This replaces the streamOut function with standard c++
operator<< so that we can use in WARN()/INFO() along with other logs for
debugging.
Bug: b/368566032
Change-Id: Iec98b4c59f360cbbfb8fbdd85d5d1150fcca8f4a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908773
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d147a2ca
|
2024-10-04T10:45:55
|
|
Vulkan: release descriptorSets from TextureVk::refreshImageViews
When texture has to refresh its imageViews, the existing descriptorSet
cache will become obsolete (because the cache key contains view's
uniqueSerial). This CL proactively releases all cache so that we don't
keep these invalid cache any more.
Bug: b/368566032
Change-Id: I82a221b8b8fd072ee3a52b11264addba385526d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908772
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eb4eaea9
|
2024-10-03T17:15:21
|
|
Vulkan: Improve SharedCacheKeyManager::addKey performance
This function walks a vector of keys. When there are many keys this
could be slow. Also when we have to grow the vector size, it involves
memory reallocation which means copy the data from old storage to new
storage. This CL changes mSharedCacheKeys to use std::deque instead of
vector which solves storage reallocation problem. It also adds
angle::BitSet64<64> to track all available (i.e., empty) slots in
mSharedCacheKeys so that we don't have to loop most of time. You only
loop all keys once to find all empty slots and then subsequent addKey()
call will be O(1) until all empty slots are used.
Bug: b/368566032
Change-Id: I4d32b461761f1cd64380f5527883b84357bb44c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908690
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a921694b
|
2024-09-30T00:00:00
|
|
Metal: Support EXT_texture_shadow_lod
Bug: angleproject:365108862
Change-Id: Ieb0b53253c5d9091e0c74baccf808622d9578d5f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5907407
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
d550d96f
|
2024-09-30T00:00:00
|
|
Metal: Remove allowSamplerCompareLod feature
* Apple2 GPUs do not support setting texture sampler compare state
via Metal API. As a result, all sample_compare functions including
those without LOD options do not work on Apple2 GPUs. This feature
was attempting to incorrectly emulate a subset of sample_compare
functions with a hard-coded compare state.
There are no plans to support shadow samplers on Apple2 GPUs, as it
would require non-trivial emulation, so this feature is not needed.
* Metal on macOS 10.15 only supports constant zero as
the level parameter for sample_compare functions.
Ignoring the requested level and using zero on old OS versions is a
better fallback than dropping the parameter altogether because many
applications set the level to zero anyway.
Bug: angleproject:365066518
Bug: angleproject:368059227
Change-Id: I2cdc0bda5842842d62ad5663427da7f1f37bddda
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5907619
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
c94c37c1
|
2024-09-23T17:22:27
|
|
WebGPU: Skip ReadPixels if texture creation failed
If texture creation failed due to an unsupported format,
ReadPixels would crash calling a null conversion function.
Mark this case as UNIMPLEMENTED for now.
Bug: angleproject:42266974
Change-Id: Ifa34d9db3d0d14e8e382c2323b4e70d2b1a7d2a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5889090
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cd7f2949
|
2024-10-03T14:14:41
|
|
GL: Workaround constructor bug on Nvidia
Bug: chromium:328015191
Change-Id: Id581d4eef63860c213313d2d2faaa316685904b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905821
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b16d105f
|
2024-10-03T10:25:32
|
|
Remove Desktop GL front-end support
For Desktop GL applications, please use Zink!
Bug: angleproject:370937467
Change-Id: Ie734634bb62a2e98c80e1b32d8b3d34624da3c04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905428
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6024e9c0
|
2024-10-02T08:01:43
|
|
Manual roll VK-GL-CTS from 65470ff2e321 to 179dd9f858f0 (27 revisions)
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/65470ff2e321..179dd9f858f0
2024-09-30 lorenzo@khronosgroup.org Fix build
2024-09-30 mark@igalia.com Support standalone executable builds on
Android
2024-09-30 javed@igalia.com Add tests for draw count clamping with null
index buffer
2024-09-30 piotr.byszewski@mobica.com Capture replay tests for
VK_EXT_descriptor_buffer
2024-09-30 javed@igalia.com Add tests vkCmdDrawIndexedIndirectCount draw
count clamping
2024-09-30 rgarcia@igalia.com Add R8 and R16 large image tests in host
image copy test group
2024-09-30 ziga@lunarg.com Add missing linked shader object test case
2024-09-30 tapani.palli@intel.com Fix issues with GLX reset notification
strategy
2024-09-30 kamil.goras@mobica.com Split
KHR-GLES32.core.tessellation_shader.vertex.vertex_spacing
2024-09-30 jimblackler@google.com Handle resize events in EGL bounding
box tests.
2024-09-30 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.9
into vk-gl-cts/main
2024-09-30 lorenzo@khronosgroup.org Merge remote-tracking branch
'vk-gl-cts/dev/VK_EXT_depth_clamp_control' into main
2024-09-30 lorenzo@khronosgroup.org Update Vulkan spec to 1.3.296
2024-09-30 lorenzo@khronosgroup.org Merge remote-tracking branch
'vk-gl-cts/dev/VK_KHR_compute_shader_derivatives' into main
2024-09-20 lorenzo@khronosgroup.org Update SPIRV-Tools, SPIRV-Headers,
glslang, Vulkan-Docs, Vulkan-ValidationLayers external sources
2024-09-19 piotr.byszewski@mobica.com Check limits before running
mapping_to_large_index DRLR test
2024-09-19 ziga@lunarg.com Test pipeline without render pass or
VkPipelineRenderingCreateInfo
2024-09-19 piotr.byszewski@mobica.com Remove invalid dynamic rendering
local read tests
2024-09-19 piotr.byszewski@mobica.com Fix pipeline binary graphics tests
2024-09-19 piotr.byszewski@mobica.com Fix pNext chain loop in FSR tests
2024-09-19 kamil.goras@mobica.com Split KHR-Single-GL46.arrays_of_arrays
2024-09-19 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS
(glGetUniform), PART 11
2024-09-19 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS
(scissor_blit), PART 12
2024-09-19 marcin.zajac@mobica.com Suballocated DRM images
2024-09-19 piotr.byszewski@mobica.com Test feedback loop with dynamic
rendering local read
2024-09-19 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.9
into vk-gl-cts/main
2024-09-18 jimblackler@google.com Fix error in test logging in all
CtsDeqpTestCases
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,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
Change-Id: Idbc50f78119327844e1488db25d58c1c588f9ff6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5903935
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
b5d548bb
|
2024-09-20T17:06:54
|
|
CL/Vulkan: Update map interface for CLMemoryVk
Clean up the map interface of the CLMemoryVk to account for any offsets.
Bug: angleproject:369724757
Change-Id: I12c7bf2f7f94cd7fbf57a8ee10748d2275a2ba70
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893956
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0a452697
|
2024-09-19T16:33:26
|
|
CL/Vulkan: Enable support for multiple descriptor set handling
The clspv transcompiler can generate multiple descriptor sets depending
on the kernel e.g. printf storage buffer is setup in a separate
descriptor set, and kernel arguments in a separate descriptor set. This
change enables setting up of multiple descriptor sets and appropriately
bind them.
Also, creation of descriptor set and pipeline layout are deferred to
kernel enqueue time as it is quite possible that kernels are built in a
batch before their use.
Bug: angleproject:369724757
Change-Id: I80eb93f4a3b8afc7461c299cc283526cc4b872fa
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893955
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
371539c3
|
2024-09-19T16:26:44
|
|
CL/Vulkan: Move descriptor set and pipeline layout cache to context
Move the descriptor set and pipeline layout caches to context so that
cache is shared across programs.
Bug: angleproject:369724757
Change-Id: I517d0cc712adb3f8b91d68e5bca8d3ac3ddb39ff
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893954
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
be8cc064
|
2024-10-02T15:12:42
|
|
DisplayWgpu: Remove wgpu::FeatureName::SurfaceCapabilities
This feature used to allow querying the wgpu::TextureUsage allowed with
a wgpu::Surface. This is no longer necessary to have as an extension
since wgpu::Surface supports this capability by default (after it was
made a replacement of wgpu::SwapChain).
Remove the now useless mention of this feature that was blocking the
removal of the feature's code from Dawn.
Bug: b/42241264
Change-Id: Ia097f2f6077fa655a2b4b495cdcf3f1fa5f23d55
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5904059
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
435bd0a9
|
2024-10-02T16:37:06
|
|
ssci: use canonical date format
Bug: chromium:370881022
Change-Id: Ie8a310b11517fd1be7f95f246bcb9cfe48d95791
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5903336
Auto-Submit: Jiewei Qian <qjw@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cc44090d
|
2024-09-18T12:28:53
|
|
Vulkan: Add an extra descriptor set index
In the case of CL, the clspv transcompiler can generate upto four
descriptor set indices, so add an extra index to vk::DescriptorSetIndex.
Also, adding aliases for CL specific naming.
Bug: angleproject:369724757
Change-Id: I45ef8a6d9246c7863ebc6edf08479bc7c661c151
Signed-off-by: Gowtham Tammana <g.tammana@samsung.com>
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893953
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
0040cda1
|
2024-09-25T18:16:36
|
|
Vulkan: Invalidate host visible non-coherent buffers on mapping
We can not trust the cache during CPU readback when the buffer
memory type is non-coherent.
Bug: b/366134076
Change-Id: I89920cfa468ee0be0feb607fea9d60bc0732191f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5890707
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Imran Ziad <imranziad@chromium.org>
|
|
67a5ea45
|
2024-09-23T16:09:12
|
|
Vulkan: Fix the error from multiple lineloop draws
Since Vulkan does not support line-loop draws natively, such a
draw call requires the conversion of the related buffers to prepare
them for this operation. For glDrawElementsIndirect(), the index
and the indirect buffers would need conversion.
However, what currently happens in this case is that the original
buffer pointer is overwritten after the conversion, removing the
link to the original buffer. Therefore, if there is a second line-loop
call just after the first, it will try to use the converted buffer as
the new source, which leads to errors due the buffer already being in
use.
The index buffer for the draw is bound when the related dirty bit is
handled. Therefore, instead of using the draw index buffer directly
for handling the line-loop scenario, we can use the index buffer in
the form of a local pointer passed between functions. Then, in order
to reconcile line-loop with the other cases, the draw index buffer is
set just before setting up the indexed draw.
* Functions handling line-loop draws do not modify the element array
buffer in VertexArrayVk directly, but use local buffer pointers to
pass the current element array pointer to further processing and
drawing.
* Added mCurrentElementArrayBuffer for ContextVk to be bound to the
index buffer to used for draw instead of the one from its vertex
array object.
* Before the indexed draw, mCurrentElementArrayBuffer is set to the
last destination index buffer.
* Added unit test that makes a line-loop draw and then a non-LL call
using the same element array.
Bug: angleproject:360758685
Change-Id: I6d6328f6326c1a1f9f80e5ef346aa077c867d344
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5878764
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
e06b07a9
|
2024-09-27T18:17:16
|
|
Vulkan: populate ycbcr conversionDesc for yuv VkFormats
For this case, the external format has a vulkan equivalent VkFormat and
is YUV, so conversionDesc needs to be populated.
YcbcrConversionDesc::update() expects externalFormat to be 0 in this
case since it has an equivalent.
Bug: b/368429977
Bug: b/352595520
Change-Id: Ifdae7a539555d78bbbf9d11cdbb946cb815c7709
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5896250
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
7c811715
|
2024-09-25T11:09:44
|
|
Vulkan: fix crash when clearing stencil with ClearBuffer
Follow up to [1] which fixed a crash with glClear, but the bug remained
with glClearBufferiv. This change refactors the "is stencil write
masked out" query to always take the framebuffer's stencil bit count
into account (practically always 8), which also happens to make the rest
of the code checking this query more accurate in the presence of
nonsense masks where the bottom 8 bits are 0.
[1]: https://chromium-review.googlesource.com/c/angle/angle/+/3315158
Bug: chromium:40207259
Bug: angleproject:42266334
Change-Id: I68a6b0b75c67ed2cdc8c4d03b243efe5495efce1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5889788
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
05c62ebc
|
2024-09-24T13:41:57
|
|
Fix check for whether stencil write is masked out
The stencil write mask is the only thing that decides what bits get
written to. Previously, this was masked with the reference bitmask to
determine if any bits get written to, which is incorrect.
The effect of this was that the Vulkan backend would use the READ_ONLY
layout for the depth/stencil attachment even though stencil could have
been written to the attachment.
Bug: angleproject:42266334
Change-Id: Ice6a35f4691fc8e09c7d5e1db6439c3079dfa039
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5887905
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
994bbbfc
|
2024-09-23T23:30:10
|
|
Vulkan: Don't require renderability in AHBs
If the AHB usage includes GPU_FRAMEBUFFER, in practice it should be
impossible for the corresponding Vulkan format to not be renderable.
However, to guard against potential driver bugs, renderability is still
checked if the AHB usage includes that bit.
Bug: b/368429977
Change-Id: Iae23432c369cd933f14c143f67c08720d76009fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5881904
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2af09236
|
2024-09-24T13:55:04
|
|
Vulkan: Enable monolithic pipelines on Intel Windows
The hang issue is fixed and not reproduced on Intel
Windows drivers 101.5379 and later.
Bug: angleproject:369043994
Change-Id: Ic395ca47e65fa6467baf09e54b7e24c0d7d71ad3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5885989
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
966739ac
|
2024-09-19T23:49:06
|
|
Drop PLS support for EXT_shader_pixel_local_storage
Supporting this backend drastically increased the complexity of the
codebase, with little return. We don't support memoryless attachments on
the web anyway, and since this extension requires us to literally draw
the load/store operations, input attachments on Vulkan perform better.
Once this implemention is completely removed, we will delete the PLS
allow list, which isn't required for the other PLS implementations.
Bug: angleproject:7279
Change-Id: Ibb036d36cbd33467e7a94398ce171cda7349e4f4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5874412
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
036e3ff1
|
2024-09-23T00:00:00
|
|
Remove Framebuffer::usingExtendedDrawBuffers
This function is unused.
Bug: angleproject:369533073
Change-Id: I604a032442ff04fc23b5bc72deebaf94cc2878c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5889566
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
6cd8a2db
|
2024-09-20T14:01:17
|
|
WebGPU: Use SurfaceTexture instead of SwapChain.
The SwapChain api is deprecated.
Bug: angleproject:342213844
Change-Id: I664d09eb0a0e8bca2ad73d9362f1f754f4dfbc7b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5873858
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
|
|
eaffa034
|
2024-09-24T20:56:04
|
|
Revert "Vulkan: Consolidate colorspace override states"
This reverts commit bffcd235ba6c031603d798daaa98f1cf9a3f3e46.
Reason for revert: Breaks Android test `org.skia.skqp.SkQPRunner#UnitTest_DMSAA_dst_read`. Details:
https://b.corp.google.com/issues/369388539.
Original change's description:
> Vulkan: Consolidate colorspace override states
>
> ColorspaceState struct is now used to cache colorspace related states
> and used to determine the colorspace of Vulkan image views.
> ImageViewHelper methods are called during initialization and when
> colorspace related states are toggled dynamically which in turn process
> these states and determine the final read and write colorspaces.
>
> We can now fully support rendering to EGLImages, with colorspace
> overrides, via texture or renderbuffer EGLImage targets
>
> Bug: angleproject:40644776
> Tests: ImageTest*Colorspace*Vulkan
> MultithreadingTestES3.SharedSrgbTextureMultipleContexts*Vulkan
> SRGBTextureTest.SRGB*TextureParameter*Vulkan
> SRGBTextureTestES3.SRGBDecodeTexelFetch*Vulkan
> ReadPixelsPBOTest.SrgbUnorm*Vulkan
> Change-Id: I1cc2b5bd834b519b83deab4d80a2fcaabeb271d6
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5841290
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Bug: angleproject:40644776
Change-Id: I5bf6cf2ed0c8ec22fc02d8c3da92673ee85fe002
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5888506
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
1798e1f0
|
2024-09-24T10:21:53
|
|
GL: Avoid infinite loops clearing GL errors
When a GL_CONTEXT_LOST error is generated, every subsequent call to
glGetError will also return GL_CONTEXT_LOST. Avoid this by early
returning.
The error will be picked up later by the HandleError call.
Bug: chromium:368263759
Change-Id: I132e3ecaf240e90f26060e1188736a3374bf88dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5887225
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
f5f419ec
|
2024-09-04T20:22:20
|
|
Vulkan: Add verify-restore in CompressAndStorePipelineCacheVk()
Change fixes following problem:
When blob cache is full, but still allows to store the current
pipeline cache data, storing next chunk may trigger eviction of
already stored items. Depending on the blob cache implementation,
eviction process may choose to evict chunks from the current pipeline
cache data. As the result: blob cache will not contain all chunks.
Solution:
The `StorePipelineCacheVkChunks()` function now check what chunks
exist in the blob cache (if `lastNumStoredChunks` parameter is positive)
and restores any missing chunks if their number is less than
`lastNumStoredChunks`.
First call to `StorePipelineCacheVkChunks()` passes zero (0) to the
`lastNumStoredChunks`, which will skip the check and store all chunks
unconditionally.
If "verifyPipelineCacheInBlobCache" feature is enabled, the
`StorePipelineCacheVkChunks()` will be called again to restore possibly
missing chunks.
If "hasBlobCacheThatEvictsOldItemsFirst" feature is disabled,
the function will be called repeatedly in a loop (opposed to only once),
until all chunks are present or until number of missing chunk stops
decreasing.
Bug: angleproject:4722
Change-Id: Ibbbdb2f878d6aafd7ab5586fc654e2b9be900a9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5837042
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
0b610712
|
2024-09-20T12:00:17
|
|
WebGPU: Sync index buffers, add indexed draw calls
Bug: angleproject:368600230
Change-Id: Ibf1c4921635b525b7650e70ce7dc939e2bad2ebb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5828229
Reviewed-by: Liza Burakova <liza@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b563ede4
|
2024-09-20T20:30:21
|
|
WebGPU: initDefaultUniformBlocks outside of an ASSERT
initDefaultUniformBlocks was not being called in release builds and
crashing when attempting to read the uniform layout info.
Bug: angleproject:42267100
Change-Id: I9e13ffee1260e4f30aed24c7bfa9e767639a5c2b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5878925
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a6ec0bb9
|
2024-09-23T10:50:28
|
|
Vulkan: Fix recursion in ensurePipelineCacheInitialized()
If the initial data was loaded from the blob cache, this function called
getPipelineCacheSize() to initialize mPipelineCacheSizeAtLastSync.
However, that function itself lead back to
ensurePipelineCacheInitialized(), causing a recursion. This was
previously undiscovered as the conditions that would lead to the global
pipeline cache needing a lock were yet to materialize in the wild.
Since the preferMonolithicPipelinesOverLibraries feature was made more
widely enabled in [1] and consequently a race condition was fixed in
[2], this recursion was discovered as a deadlock due to the mutex use.
While this change avoids the recursion, it simultaneously optimizes the
syncPipelineCacheVk() function by making sure the lock is taken once
intstead of twice when retrieving the pipeline cache size and
subsequently data. This also avoids a previously encountered race
condition where the pipeline cache was modified in between the two
queries and VK_INCOMPLETE was returned from the second call.
[1]: https://chromium-review.googlesource.com/c/angle/angle/+/5870466
[2]: https://chromium-review.googlesource.com/c/angle/angle/+/5872715
Bug: angleproject:42265839
Change-Id: Ic682b3d20ec4411ba180b3bafb807fdde8166d5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5883153
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Steven Noonan <steven@uplinklabs.net>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
fdec6935
|
2024-09-20T16:29:03
|
|
Workaround supportsSurfaceMaintenance1 on Linux with llvmpipe
Presence of multiple ICD appears to confuse the loader and we end up
with support reported but vkGetPhysicalDeviceSurfaceCapabilities2KHR
not actually working (see bug for more detials)
Bug: angleproject:368647924
Change-Id: Idc813b99f873643d067cc4b4e38f1ed5249500b4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5875015
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
1e74ce33
|
2024-09-17T14:44:36
|
|
Reland "Vulkan: Prefer monolithic pipelines everywhere"
This reverts commit 1503a10737e28ac9d1bb98c2f3e369880c63ca43.
Reason for revert: Fixed threading + undo for buggy drivers
Original change's description:
> Revert "Vulkan: Prefer monolithic pipelines everywhere"
>
> This reverts commit e9ab557c744c29088174b6c7bc93692fe7f32dbd.
>
> Reason for revert: kills Windows Intel UHD 770 machines
> http://anglebug.com/42265839#comment34
>
> Original change's description:
> > Vulkan: Prefer monolithic pipelines everywhere
> >
> > Apparently, every vendor prefers this, and
> > graphicsPipelineLibraryFastLinking has no bearing on the driver's
> > preference.
> >
> > Bug: angleproject:42265839
> > Change-Id: Ied8d82e0a9e08fe5efe3f625e2612764f67f9768
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5861024
> > Commit-Queue: Yuxin Hu <yuxinhu@google.com>
> > Reviewed-by: Yuxin Hu <yuxinhu@google.com>
> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
>
> Bug: angleproject:42265839
> Change-Id: I95fa61b2242684b63adc2841b777bde923e34d41
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5868055
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Bug: angleproject:42265839
Change-Id: I007a3efc69e0edc040b0feddcd84e191f68ded9d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5870466
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
bffcd235
|
2024-09-13T14:58:00
|
|
Vulkan: Consolidate colorspace override states
ColorspaceState struct is now used to cache colorspace related states
and used to determine the colorspace of Vulkan image views.
ImageViewHelper methods are called during initialization and when
colorspace related states are toggled dynamically which in turn process
these states and determine the final read and write colorspaces.
We can now fully support rendering to EGLImages, with colorspace
overrides, via texture or renderbuffer EGLImage targets
Bug: angleproject:40644776
Tests: ImageTest*Colorspace*Vulkan
MultithreadingTestES3.SharedSrgbTextureMultipleContexts*Vulkan
SRGBTextureTest.SRGB*TextureParameter*Vulkan
SRGBTextureTestES3.SRGBDecodeTexelFetch*Vulkan
ReadPixelsPBOTest.SrgbUnorm*Vulkan
Change-Id: I1cc2b5bd834b519b83deab4d80a2fcaabeb271d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5841290
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
|
|
167b9e8d
|
2024-09-18T21:51:38
|
|
Vulkan: Fix pipeline cache store vs monolithic pipeline race
The thread that creates monolithic pipelines needs to hold the pipeline
cache lock, as well as the thread that stores the pipeline cache
contents to the blob cache.
Bug: angleproject:42265839
Change-Id: I17cf9d2bb3f27d531f368003cb4ee00007a464fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5872715
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1bed7fdd
|
2024-09-13T15:29:07
|
|
CL/VK: Fix missed PushConstantRegionGroupOffset
Adding missing reflection instruction to parser:
NonSemanticClspvReflectionPushConstantRegionGroupOffset
And add related PC routine during NDRangeKernel.
Bug: angleproject:366412385
Change-Id: I2ffa48dee46a23840390312f20e7103f68daa0c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860310
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cce1497c
|
2024-06-07T15:03:07
|
|
CL/Vulkan: regionOffset as GWO for uniform
clspv states:
region_offset: the sum of the global ID
offset into the NDRange for this uniform
region and the global offset of the NDRange
Since we currently do not support non-uniform at
the moment, we just treat the
PushConstantRegionOffset as the global work offset.
Bug: angleproject:366412385
Change-Id: Ifd9953f21cd7826198b2cfe7d30ddec68ea2c7a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860309
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
741e5355
|
2024-06-07T16:39:53
|
|
CL/Vulkan: Add missing PushConstantNumWorkgroups
Adding support for:
NonSemanticClspvReflectionPushConstantNumWorkgroups
Bug: angleproject:366412385
Change-Id: Id4cfc1ee456d3a7f6d058f3f4a6a580381b2d471
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860308
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8eecc8e9
|
2024-05-30T13:30:08
|
|
CL/Vulkan: Update CL_DEVICE parameters
Update device fields for the following:
- Change address bits from 64 -> 32
- Report OpenCL C version to 1.2
- Change non-uniform wgs support to false
We either did not support nor take full advantage
of these features, thus leading to the omission
or change/downgrade.
Bug: angleproject:366412386
Change-Id: Ia6b361d0285d5a1a88013a49fd747a3d03db9655
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860307
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|