src


Log

Author Commit Date CI Message
Roman Lavrov 3a265f14 2024-10-24T17:34:15 Android tests: raise if --render-test-output-dir doesn't exist For convenience when testing locally, otherwise we get an obscure error later on Bug: angleproject:370089935 Change-Id: I94f52aef90afb600baae45540e0e53f899554ee9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5960260 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Roman Lavrov ec262a32 2024-10-22T12:34:15 Trace tests: offscreen gles1 fix framebuffer binding handling gles1 traces can call glBindFramebufferOES (ex: plague_inc) so we need to intercept that for offscreen gles1 traces. Also OES_framebuffer_object does not provide "read" bindings, only a single framebuffer binding, so we need to special-case binding handling in the gles1 case. Bug: angleproject:370508393 Change-Id: Ia17df21ed67aa8a1e0aa45fe9bb929ce42852ba2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5953095 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Kimmo Kinnunen 12584049 2024-10-21T14:04:55 Make SimplifyLoopConditions testable Add ShCompileOptions::simplifyLoopConditions, so that tests can turn it on. Later edits to simplify loop condition logic are simpler to review when the testing related edits are landed separately. Test the feature by having ESSL as the input and ESSL as the natural output, to reflect how AST changes. To make the test expectations more deterministic across code changes, change SymbolTable::kLastBuiltInId to SymbolTable::kFirstUserDefinedSymbolId. This is simpler as no code needs to know exact last built in id, so we can just ensure that the user defined symbol ids do not clash with the builtin ids. Bug: angleproject:374585769 Change-Id: Iea0efb8ac2878691d0fd5ff5cfe9a49ac754515d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5946724 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Shahbaz Youssefi 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>
Charlie Lao 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>
Cody Northrop 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>
Charlie Lao 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>
Charlie Lao 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>
Roman Lavrov 922147f9 2024-10-22T18:20:44 Trace tests: offscreen sRGB traces use sRGB format Without this offscreen screenshots end up darker. Currently applies to 7 traces, can be found with: % egrep 'DrawSurfaceColorSpace.*0x3089' src/tests/restricted_traces/*/*.json Bug: angleproject:370089935 Change-Id: I4a05782de2e7400fcfcb5757d18acf758749d6ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5953096 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao 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>
Austin Annestrand 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>
Charlie Lao 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>
Andrew Sumsion 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>
Rafay Khurram 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>
Alexey Knyazev 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>
Charlie Lao 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>
Shahbaz Youssefi 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>
Cody Northrop 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>
Lina Versace 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>
Charlie Lao 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>
Charlie Lao 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>
Shahbaz Youssefi bbe68963 2024-10-21T15:11:27 Vulkan: Fix `precise` vs `mat4(...)[index]` Bug: angleproject:374801303 Change-Id: I45550abe406aaaf4d2c5eb5d7d694b2b30ab8e4e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5949528 Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 5c2a2fd5 2024-10-21T16:00:25 Vulkan: Fix `vec4(...).zxwy[index]` The code was actually correct, but included an unnecessary assertion. The code incorrectly assumed `.zxwy[index]` is pre-processed with a lookup table and turned into `[index']`, but it wasn't if the LHS is a constructor. The change just removes the assertion because it was correctly handling that already. Bug: angleproject:40096715 Change-Id: Ib1365f95a255ce3654831af55429361d35c026c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5949527 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 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>
Shahbaz Youssefi 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>
Andrew Sumsion 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>
Alexey Knyazev 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>
Jiaqi Li ff455e8c 2024-10-17T13:19:09 Add tests to check copy image with TEXTURE_EXTERNAL_OES According to spec of EXT_copy_image, GL_TEXTURE_EXTERNAL_OES should be accepted by glCopyImageSubDataEXT. Add two tests to check copy image from gles texture to EGLImage and from EGLImage to gles texture by API glCopyImageSubDataEXT. As ANGLE does not support this currently, skip these two tests on all platforms. Bug: angleproject:361372990 Change-Id: Iceacb2d6af2277a314a215220c3ccdf47665561c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5940214 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Le Hoang Quyen 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>
Stephen White 4b1e58d9 2024-10-17T09:33:53 Fix for float constant precision in the GLSL backend. Increase the precision of floating point values written out via std::ostringstream. 8 digits is not sufficient to represent all floating point values. Note: the reason the locale test was modified is because it was using a value of 1.9, which has no exact fp32 representation. Increasing the precision causes it to print as 1.8999998 instead of 1.9, failing the test. I've adjusted the value to 1.5, since this does have an exact fp32 representation. (However, note that I couldn't get the test to fail when I removed the locale setting, with either 1.9 or 1.5. Perhaps the locale is being handled at a different level.) Bug: angleproject:374013421 Change-Id: Icb79eb9acd562c83d079f2cc2cdba253220e581e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938473 Commit-Queue: Stephen White <senorblanco@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Le Hoang Quyen 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>
Alexey Knyazev 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>
Geoff Lang 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>
Kenneth Russell 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>
Alexey Knyazev 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>
Shahbaz Youssefi 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>
Rafay Khurram 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>
hoonee.cho 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>
Shahbaz Youssefi 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>
Yuly Novikov 8d86ae9f 2024-10-16T14:38:57 Skip flaky end2end test ClearTest.ChangeFramebufferAttachmentFromRGBAtoRGB on Win Intel GL Bug: angleproject:373818282 Change-Id: I92ea2ca5aa5423a13d9912a7da964c315b862ec9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5938873 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 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>
Shahbaz Youssefi 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>
Geoff Lang 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>
Mavis Deng 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>
Alexey Knyazev 9e8b104e 2024-10-14T00:00:00 Do not test OpenGL backend on iOS Added Metal platform to tests that require instantiation. Bug: angleproject:40050022 Bug: angleproject:42264029 Bug: angleproject:42266119 Bug: angleproject:42266226 Bug: angleproject:42266239 Bug: angleproject:42266249 Bug: angleproject:359136169 Fixed: angleproject:373478551 Change-Id: I915f09c7f24acce27bf0d489932645338ac3fbe8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5932659 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Jiaqi Li 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>
Mohan Maiya 059f66be 2024-10-15T10:04:23 Bugfix in UnitTest_DMSAA_dst_read Skip UnitTest_DMSAA_dst_read test if GL_EXT_sRGB_write_control extension is not supported Bug: angleproject:40644776 Change-Id: I4e8ec6d184b033308b7cd33551555d480bdc8107 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5933569 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Amirali Abdolrashidi 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>
Shahbaz Youssefi 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>
Yuly Novikov f1296738 2024-10-15T14:27:43 Skip end2end tests failing on iOS BlitFramebufferANGLETest.BlitWithMissingAttachments/ES2_OpenGL Texture2DTestES3.UnitTest_DMSAA_dst_read/ES3_Metal Texture2DTestES3.UnitTest_DMSAA_dst_read/ES3_OpenGL Bug: angleproject:40644776, angleproject:371987004 Change-Id: I414bfa065faa0bbd20cb7d46d00e30d9d92f7f53 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5933825 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 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>
angle-autoroll e7341113 2024-10-14T23:37:31 Manual roll VK-GL-CTS from 179dd9f858f0 to 5e9887eb393c (20 revisions) Manual roll requested by abdolrashidi@google.com * Added common source files for FragCoordConventionsTests. * Suppressed a failing must-pass test for Pixel 4. https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/179dd9f858f0..5e9887eb393c 2024-10-11 piotr.byszewski@mobica.com Test texture LoD query in combination with base level 2024-10-11 mateusz.bahyrycz@mobica.com Add missing coverage for sparse binding multisampled images 2024-10-11 mateusz.bahyrycz@mobica.com Add tests for multiple bind sparse infos 2024-10-11 ziga@lunarg.com Only use depth clamp control create info if extension is enabled 2024-10-11 kamil.goras@mobica.com Split KHR-GL46.framebuffer_blit.framebuffer_blit_functionality_multisampled_to_singlesampled_blit 2024-10-11 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS (fragment_coord_conventions_multisample), PART 13 2024-10-11 gleese@broadcom.com Fixes for mandatory feature and feature_consistency tests 2024-10-11 lordalcol@users.noreply.github.com Create vulkan-cts-withdrawal-2024-10.txt 2024-10-10 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.10 into vk-gl-cts/main 2024-10-04 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.10 into vk-gl-cts/main 2024-10-03 ziga@lunarg.com Add more tests for VK_EXT_swapchain_maintenance1 2024-10-03 ziga@lunarg.com Test dynamic sample locations without create info 2024-10-03 piotr.byszewski@mobica.com Coverage for extremely long debug labels 2024-10-03 Tyler.Schneider@amd.com Add sanity check in Ray Query Stress Tests 2024-10-03 cwabbott0@gmail.com Revert "Fix crash in local read max input attachments test" 2024-10-03 scerveau@igalia.com Update vk_video_samples external sources 2024-10-03 rgarcia@igalia.com Add shader module identifier tests with mesh shaders 2024-10-03 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-cts-4.6.5 into vk-gl-cts/main 2024-10-02 gleese@broadcom.com Remove mandatory_features.txt 2024-09-30 lorenzo@khronosgroup.org Set Amber back to google:main 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 abdolrashidi@google.com,angle-team@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:373475678 Tbr: abdolrashidi@google.com Change-Id: I2c31b1a15cdafc4c2e528d65a1a67a2672b932d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5932584 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuly Novikov 4c35748f 2024-10-14T16:30:55 Skip MultisampleTestES3.CopyTexImage2DFromMsaaDefaultFbo on S22 Bug: angleproject:372059358 Change-Id: Ide36309be0310f1449bf4aedce42c60c0fda55c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5928718 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya 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>
Aurora Zhang 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>
Alexey Knyazev e7f0d107 2024-10-03T00:00:00 Translator: Fix EXT_texture_query_lod shader types These functions are available only in fragment shaders. Bug: angleproject:368275901 Change-Id: Ief15e93d9c7042a8d5bc0f5f951df98149b44c70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5922477 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov a8d9d813 2024-10-08T15:31:37 Trace perf: save individual screenshots in offscreen With --offscreen, _frameN.png is now the Nth frame, by reading the offscreen buffers pixels. This is more consistent with onscreen. Previously we would only get _frame24.png, _frame48.png etc with the grid of frames from framebuffer 0. Now we get these as _grid1.png, _grid2.png etc, and _frameN.png are individual frames. gles1 is an exception as we don't have grids and only render a single frame to framebuffer 0. Bug: b/370508393 Change-Id: Ia8cb13120f21ef92fa3e6662b5e2cffa918983d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5916767 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 0f2ce2cd 2024-10-11T12:58:53 Tests: Add Supreme Duelist trace Test: angle_trace_tests --gtest_filter="*supreme_duelist*" Bug: b/372883450 Change-Id: I87931895ea67b437c36bb99e8ab4fa8e1dae3a3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5926174 Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Alexey Knyazev 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>
Shahbaz Youssefi a8138547 2024-10-09T23:33:24 Translator: Support GL_ARM_shader_framebuffer_fetch_depth_stencil Bug: angleproject:352364582 Change-Id: I46ce6d75a76bdf04a9e8feea1a480e8a0badba2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5924140 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Mohan Maiya 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>
Alexey Knyazev 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>
Cody Northrop 9e9cbd97 2024-10-10T14:49:00 Tests: Add Antistress Relaxation Toys trace Test: angle_trace_tests --gtest_filter="*antistress*" Bug: b/372644017 Change-Id: Ic9bff87955e25fb6d6a6d787ae012740f4158a7b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5924477 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
angle-autoroll ddbfae96 2024-10-10T18:30:55 Manual roll vulkan-deps from e8e61a227e2c to b8d6ceadf45d (8 revisions) Manual roll requested by ynovikov@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/e8e61a227e2c..b8d6ceadf45d Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/a62b032007b2e7a69f24a195cbfbd0cf22d31bb0..50bc4debdc3eec5045edbeb8ce164090e29b91f3 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/4310fd4edae21d711ab31f5183704ad320329419..fcf994a619608c2bdb505189f6e325b1a6b4f294 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/61037741e4d8ccdb8c7b761bc726ab87cc11496d..9553b9751916c06ea6f6a78236397450bc76bd32 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,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: None Tbr: ynovikov@google.com Change-Id: Ie07afc8447e73678f6fb9772a3477def5f120117 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5923803 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 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>
Cody Northrop e6130b90 2024-10-09T13:14:10 Tests: Add Car Race 3D trace Test: angle_trace_tests --gtest_filter="*car_race_3d*" Bug: b/372282084 Change-Id: Icad78909e68eec6790844c75c6103219ba15299a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5922075 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Charlie Lao 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>
Shahbaz Youssefi 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>
Shahbaz Youssefi 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>
Mark Lobodzinski 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>
Cody Northrop 30ae44bf 2024-10-09T14:17:03 Tests: Skip going_balls on Windows Intel Bug: b/372513853 Change-Id: Iec11e1acf3a36f7261cf46adcdfedd826ac88050 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5922076 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop 98b5cf46 2024-10-08T19:50:18 Tests: Add Piano Fire trace Test: angle_trace_tests --gtest_filter="*piano_fire*" Bug: b/372291936 Change-Id: Ia3ad52781e251c01246fb01fd800112b0d0f82d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918738 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 2bb5b443 2024-10-08T19:39:30 Tests: Add Billiards City trace Test: angle_trace_tests --gtest_filter="*billiards_city* Bug: b/372288799 Change-Id: I2e23d648d8fe27807ccbab26c28ad509349d2a01 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5917649 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop 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>
Solti f0a66ba2 2024-10-09T00:26:15 remove angle_gl_driver_all_angle when resetting Test: presubmit Bug: b/367348883 Change-Id: Ief115403cd2a908873750c97f416255e61410893 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918343 Commit-Queue: Solti Ho <solti@google.com> Auto-Submit: Solti Ho <solti@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 4984fe12 2024-10-08T14:37:15 Add a test for framebuffer fetch and multisampling To ensure that the fragment shader is implicitly run per-sample, such that the read values are per-sample. Bug: angleproject:42264719 Change-Id: I66968ea2dd92106f222ad6a43ffef0e75ad36528 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5917026 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov d0e2141a 2024-09-30T16:55:59 Tests: GLES1 offscreen replay uses GL_OES_framebuffer_object ANGLE allows to mix GLES1 with non-GLES1 calls but the native driver crashes on e.g. glGenRenderbuffers. Use GL_OES_framebuffer_object so that we can render ANGLE and native the same way (glGenRenderbuffersOES etc) There is no glBlitFramebuffer for GLES1 though, so instead of that render a single frame to the default framebuffer. Also resize the grid from 1/3 screen to fullscreen for more useful screenshots, and remove window /= 4 resize to simplify. Bug: b/370508393 Change-Id: I9c8ac46937aa09f1be186a07548c1ec7e5b15579 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5899376 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi 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>
Roman Lavrov dd66a284 2024-10-04T13:10:14 Perf tests: custom throttling excludes VIRTUAL-SKIN*-MODEL-* These seems to be using different units and get stuck in throttling. Also ignore VIRTUAL-SKIN*-CHARGE-* which I think was the intent but the check ended up in the wrong place. Bug: b/371573999 Change-Id: I2a9e6fbbb41bebfc5d9d85ee187f4f0918dd5e61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905236 Reviewed-by: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 0b78963d 2024-06-18T12:38:38 Perf tests: add thermalservice custom temp throttling E.g. --custom-throttling-thermalservice-temp=36 IThermal interface isn't available on all devices. thermalservice is another way to get similar data, but with its own limitations (for example, on Pixel we don't see CPU ODPM temps there while we do get them with IThermal). Unlike --custom-throttling-temp that we use on Pixel, this flag does not attempt to disable vendor throttling (not sure there is even a way to do that outside of Pixel). Vendor throttling can affect perf results, higher custom temps increase odds of that happening mid-way during a trial. Bug: b/347956784 Change-Id: I1166e07e4a5c88417eb379d5cb6a7440b169d073 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5639336 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 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>
Alexey Knyazev af33337a 2024-10-07T00:00:00 Metal: Remove unused MSL helpers These helpers are never emitted. Bug: angleproject:372169468 Change-Id: I306164aaf4db1b7070e3e4a0599f0f02a1e29c7d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912762 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 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>
Alexey Knyazev 0f7371ae 2024-10-07T00:00:00 Metal: Remove ANGLE_tensor macro Its replacement is never used. Fixed: angleproject:372053408 Change-Id: I1d54efcc1a1ecac1d0c6dae5ff7524b501297fe0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912904 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang 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>
Cody Northrop 770dc68f 2024-10-04T13:05:24 Tests: Add Thief Puzzle trace Test: angle_trace_tests --gtest_filter="*thief_puzzle*" Bug: b/371518149 Change-Id: I593964bdf4a39edf2445a54a400f5faddd4fcaff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5909872 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Geoff Lang 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>
Roman Lavrov 37c69bd6 2024-10-07T11:00:14 Tests: gold tests assert that filter matches a test As described on the bug, test retries result in an unexpected value passed to --isolated-script-test-filter, which doesn't match any traces. Assert that there is a match as a (permanent) workaround. Bug: chromium:371977204 Change-Id: I415507ea999005a9ac04489582cf77b7d3e29e2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912615 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Cody Northrop 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>
Alexey Knyazev 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>
Mohan Maiya 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>
Yuly Novikov 95379bb4 2024-10-07T14:14:16 Suppress flaky end2end test on Linux NVIDIA Vulkan SixteenBppTextureTestES3.RGB5A1UploadRGBA8 Bug: angleproject:362486580 Change-Id: I2e2f36cce2e98e92b6b84d816cf09dd778a5e21d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5913434 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Mohan Maiya 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>
Mohan Maiya 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>
Gowtham Tammana 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>
Charlie Lao 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>
Charlie Lao 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>
Charlie Lao 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>
Alexey Knyazev 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>
Alexey Knyazev 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>