Log

Author Commit Date CI Message
angle-autoroll 2b7c06e3 2023-01-31T10:01:14 Roll SwiftShader from aae98adc2222 to d25c7a174ad7 (3 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/aae98adc2222..d25c7a174ad7 2023-01-30 bclayton@google.com Update SPIR-V Tools to 0174dd11f 2023-01-30 bclayton@google.com Update SPIR-V Headers to aa331ab0f 2023-01-30 bclayton@google.com Update primary branch name for SPIR-V repos If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/swiftshader-angle-autoroll Please CC ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: ynovikov@google.com Change-Id: I78aa916b1e544381e2b9e1fd93b2ac49acada66d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4208050 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov 786d237f 2023-01-26T22:24:03 Vulkan: Fixed bug in rx::vk::SharedFence with repeated init(). Bug: b/261106868 Test: angle_white_box_tests VulkanSharedFenceTest* Change-Id: I1e657a52332b2166f05841f91747b1bfec1504e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194177 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Yuly Novikov dbd47e37 2023-01-30T20:54:24 Revert "Metal: Avoid leaking buffers for GPU access for non-discrete" This reverts commit 369b320f92f54774879e8b8faff834fc8db0793e. Reason for revert: WebGL 2.0 conformance tests failing on Mac/AMD per https://bugs.chromium.org/p/angleproject/issues/detail?id=7975#c4 Original change's description: > Metal: Avoid leaking buffers for GPU access for non-discrete > > The code would pass BufferManager::getBuffer(..,useShared=false,..) > and use that as key to try to obtain a buffer from the cache. > The BufferManager would store the returned buffers based on > the actual storage mode of the buffer. The storage mode for the > buffers for integrated / iOS devices is always shared. > > The above logic would lead the buffer manager always storing returned > buffers to the cache, but never being able to consume any from the > cache. The cache is designed to grow unbounded, and so it did. > > Remove the inconsistent logic of passing variation of "use shared bool" > as the arguments. Various places consulted various different Feature > options in inconsistent manner. > > Instead, add Buffer::AccessPattern for the callers to express what > kind of access pattern to expect a buffer to be used. Add explicit > MTLStorageMode parameters to Buffer constructing functions. > Remove redundant functions from Buffer. > Remove dead code from BufferPool related to allocation policy. > > Bug: angleproject:7975 > Change-Id: I0c4661c55e8c907b702160ae42690269c049f6db > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194172 > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Commit-Queue: Kenneth Russell <kbr@chromium.org> > Reviewed-by: Gregg Tavares <gman@chromium.org> > Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Bug: angleproject:7975 Change-Id: I094de8e5b06392fe36a9887d6a817023baa48735 No-Presubmit: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4206187 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Igor Nazarov dd8021d9 2023-01-17T16:16:17 Added "git worktree" support into "commit_id.py". Bug: angleproject:7984 Change-Id: I097f2c0c310680ceaa7797916fd9a4cbbb1d17d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194176 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 73cc578b 2023-01-30T12:22:20 Disable mutable texture upload due to render issue * In some applications, enabling this feature can lead to incorrect rendering of some textures. This CL will disable this feature for now. Bug: b/264143971 Change-Id: I69933bbc3caaf71d03645b4c0b0424b9173ee585 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4205049 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Kyle Piddington b8bfe6f6 2023-01-25T18:50:40 Metal: rewrite default uniforms and uniform blocks Instead of rewriting uniforms in shaders to match std140 layout, re-pack incoming uniform blocks' std140 packed variables to match Metal's layout. This change intorduces a new BlockLayoutEncoder for Metal types The block encoder handles packing typically larger GL types (bools) into smaller types, and adding support for more compressed matrix types. Since we no longer need to do shader-time packing and unpacking of data from std140 padded structs, complicated shader transformations have been removed. This patch greatly reduces register pressure, especially when working with shaders with arrays of previously expanded types. (Vec3's) Bug: angleproject:7137 Change-Id: Icd1da8c7a383f3354313a58618fc1bf6656726b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3733524 Commit-Queue: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Charlie Lao 53b65950 2023-01-27T13:17:13 Vulkan: Fold ThreadSafeCommandProcessor back to CommandProcessor In earlier CL crrev.com/c/4156637, I added ThreadSafeCommandProcessor to wrap CommandProcessor public APIs with a mutex lock. This CL folds ThreadSafeCommandProcessor back into CommandProcessor so that we only have one class to deal with. CommandProcessor itself is thread safe already, we really do not need mutex for that. The only place that might still need the mutex in ThreadSafeCommandProcessor is that while we wait for mTasks to become empty, previously the lock in ThreadSafeCommandProcessor will block context from submitting new work to mTasks. In order to keep that behavior, mSubmissionMutex is added just for this purpose. Bug: b/266605181 Change-Id: If8844a3000712bf4fcf89a4f8098b7a745a30e99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4198480 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jose Dapena Paz 6fb2da90 2023-01-30T17:43:59 Do not use std::locale in Vulkan memory allocation tracker As Chromium is built without RTTI, but it may be running on top of system libstdc++ built with RTTI, std::locale should not be used with an inherited facet. This will crash trying to dynamic_cast the facet. This change also avoids having different formats depending on the locale. If, in the future, a format is wanted for improving log readability, then a custom helper should be added, instead of using std::locale. Bug: chromium:957519 Change-Id: Id836d6df63448c7d62845d3f47e2acb9b254ddf3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4202875 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 0cdecfad 2023-01-27T10:38:31 Vulkan: Merge ThreadSafeCommandQueue back into CommandQueue In earlier CL crrev.com/c/4156637, I added ThreadSafeCommandQueue to wrap CommandQueue public APIs with a mutex lock. Then in the following CLs we have switched CommandProcessor and RendererVk to use ThreadSafeCommandQueue. Now CommandQueue class is only been used by ThreadSafeCommandQueue. This CL folds ThreadSafeCommandQueue back into CommandQueue so that we only have one CommandQueue class to deal with. This CL groups the CommandQueue's public and private APIs into separate groups. Bug: b/266605181 Change-Id: I94c6c949e0ed14583c38284a216f7a3e2010e98d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4118856 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 7101b374 2023-01-27T16:03:16 Vulkan: Enable AndroidNativeFence_ClientWait test EGLSyncTest.AndroidNativeFence_ClientWait test appears working. Re-enable the tests. Bug: angleproject:5981 Bug: angleproject:6931 Change-Id: Ic031d0ad9bddc75156222594ddc9809764a62f18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4201090 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Charlie Lao <cclao@google.com>
angle-autoroll 2e685d6c 2023-01-30T17:13:58 Roll VK-GL-CTS from 821e153ac85a to bbf05746bf87 (8 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/821e153ac85a..bbf05746bf87 2023-01-30 rgarcia@igalia.com Test dynamic strides in instance rate attributes 2023-01-30 ossu@webrtc.org Add wait-after-signal tests for timeline semaphores 2023-01-30 ewerness@nvidia.com Fix gen_framework_sc.py to handle LUNARG 2023-01-30 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/main 2023-01-30 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.4 into vk-gl-cts/main 2023-01-28 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkansc-cts-1.0.1 into vk-gl-cts/main 2023-01-27 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-es-cts-3.2.8 into vk-gl-cts/main 2023-01-25 rgarcia@igalia.com Add float16 vertex input tests 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 ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: ynovikov@google.com Change-Id: Idbda9ee30f683cfc1f85aa6807f4460ed8adcf7a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4203172 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll e8afed5b 2023-01-30T15:49:04 Roll Chromium from fb367de4643f to 97cd4b79248f (792 revisions) https://chromium.googlesource.com/chromium/src.git/+log/fb367de4643f..97cd4b79248f If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/b448ad8b3f..af34606076 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/4ab9691e91..c09e1e5021 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/6d5f62996f..36806aa421 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..78833e4177 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/562481d6a9..9d77ca716f * third_party/fuchsia-sdk/sdk: version:11.20230126.1.1..version:11.20230129.3.1 * third_party/r8: lhnuNLpWpWBVM6efX0iIg5i9ztfW8VKpMvkyfWCxfr0C..kTwoRbYJ0cNEX_B1XARsNkSFKf4bOHgQCEiP4afsmBUC * third_party/turbine: t0TeGgk2CZr3B0HtEqBb60BSRwVPRJm9066izhJwzz0C..YQC-btuan_DTe9V9dv_e1LxgYSWeOoDfrd-VSqzIvHkC * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/44d9b490c7..2d44c51ada * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/1214b4d328..527cfbb299 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/134d306e72..9bc0b44c25 * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/da557f2c89..568316d425 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/3c9dc38f54..cd0d8fe0b1 No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: I354e85da9cc2f355cfb5ca4b65df82b11d3c023b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4203171 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov 69eab34b 2023-01-17T16:16:28 Vulkan: Fixed UB creating VkPipeline in warmUpPipelineCache(). Regression: f0e3d8f934f5594b321ac5aaa43593b1c22dd932 Vulkan: Shader component type in GraphicsPipelineDesc Revealed by CTS opengl-es-cts-3.2.8: https://github.com/KhronosGroup/VK-GL-CTS/commit/a6cd9c75d7c667437266592b47e629d2b6fc711c Hangs in: dEQP-GLES3.functional.shaders.texture_functions.texture.sampler2dshadow_vertex dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_literal.vertex.sampler2dshadow VALIDATION: UNASSIGNED-CoreValidation-Shader-InputNotProduced(ERROR / SPEC): msgNum: 602160055 - Validation Error: [ UNASSIGNED-CoreValidation-Shader-InputNotProduced ] Object 0: handle = 0x2e2cd000000002b, type = VK_OBJECT_TYPE_SHADER_MODULE; | MessageID = 0x23e43bb7 | Vertex shader consumes input at location 0 but not provided VALIDATION: Objects: 1 VALIDATION: [0] 0x2e2cd000000002b, type: 15, name: NULL VALIDATION: UNASSIGNED-CoreValidation-Shader-InputNotProduced(ERROR / SPEC): msgNum: 602160055 - Validation Error: [ UNASSIGNED-CoreValidation-Shader-InputNotProduced ] Object 0: handle = 0x2e2cd000000002b, type = VK_OBJECT_TYPE_SHADER_MODULE; | MessageID = 0x23e43bb7 | Vertex shader consumes input at location 1 but not provided VALIDATION: Objects: 1 VALIDATION: [0] 0x2e2cd000000002b, type: 15, name: NULL Bug: None Change-Id: Ie7262c608c472e05c2e3237334c6b67271157166 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194178 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 4b72bd1b 2023-01-30T10:01:11 Roll vulkan-deps from d723200bd4b5 to be674ea25e15 (14 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/d723200bd4b5..be674ea25e15 Changed dependencies: * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/ff7a11dbcb..199d0cb8a9 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/96c5dac559..64ba112ffb * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/3948415ebb..38379d231d * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/50d9f72d49..5ff524e935 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/d0a9ba5a25..93b6b7b808 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: syoussefi@google.com Change-Id: I16c8f034f053a7cc9465049c1e044047ac7f9c3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4203169 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Geoff Lang 0cde45b7 2023-01-23T10:30:29 Metal: Lazily grab the shader lib for provoking vertex helper Metal's ProvokingVertexHelper would query the display's default shader library in the constructor which is called during context creation. Lazily query the default shader library so that context creation is unblocked. Bug: chromium:1385510 Change-Id: I32ce3bdac7f92b7e098a69fa557aa8385eac7076 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4189016 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Kimmo Kinnunen e1d5d8c0 2023-01-26T16:06:14 Include stdint.h instead of cstdint in platform.h The project seems to expect use of stdint.h, since almost none of uint*_t, int*_t use are prefixed with std:: namespace. It is reasonable to expect a contract that platform.h includes some specific files from the standard library when it establishes the "platform for ANGLE". It appears that the contract kind of already includes stdint.h types or defines. Replace <cstdint> in platform.h with <stdint.h>. The file platform.h is included from many files, so those files do not need to include the stdint.h redundantly. Remove #include <stdint.h> from Constants.h, as that file already includes platform.h and <stdint.h> is part of the "platform". Bug: angleproject:7977 Change-Id: I04563eb3680bcd7470775e3a60b9f466a00b8b63 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194174 Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Kimmo Kinnunen 369b320f 2023-01-26T14:26:49 Metal: Avoid leaking buffers for GPU access for non-discrete The code would pass BufferManager::getBuffer(..,useShared=false,..) and use that as key to try to obtain a buffer from the cache. The BufferManager would store the returned buffers based on the actual storage mode of the buffer. The storage mode for the buffers for integrated / iOS devices is always shared. The above logic would lead the buffer manager always storing returned buffers to the cache, but never being able to consume any from the cache. The cache is designed to grow unbounded, and so it did. Remove the inconsistent logic of passing variation of "use shared bool" as the arguments. Various places consulted various different Feature options in inconsistent manner. Instead, add Buffer::AccessPattern for the callers to express what kind of access pattern to expect a buffer to be used. Add explicit MTLStorageMode parameters to Buffer constructing functions. Remove redundant functions from Buffer. Remove dead code from BufferPool related to allocation policy. Bug: angleproject:7975 Change-Id: I0c4661c55e8c907b702160ae42690269c049f6db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194172 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Cody Northrop 4716d85e 2023-01-10T20:31:37 Tests: Add LIMBO trace Test: angle_trace_tests --gtest_filter="*limbo*" Bug: angleproject:7945 Change-Id: Ic52af324ed554d62daafc8e27c373cebd52f9bdb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4152869 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Sean Risser b96d1955 2023-01-20T16:06:34 Implement GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch allows fragment shaders to read gl_LastFragColorARM. The extension is similar to GL_EXT_shader_framebuffer_fetch, but is more limited in its capabilities. GL_ARM_shader_framebuffer_fetch was removed from HasFramebufferFetch() because it acts differently from GL_EXT_shader_framebuffer_fetch in significant enough ways that it should not be included in that single-use function. Tests: FramebufferFetchES31.*_ARM Bug: b/242419750 Bug: angleproject:7882 Change-Id: Id3a25c8ee50ca3e2a4c30a2261f507b0b53511ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4083108 Commit-Queue: Sean Risser <srisser@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mark Lobodzinski 60ad92e4 2023-01-27T11:53:05 Tests: Add Goddess Of Victory: Nikke trace Test: angle_trace_tests --gtest_filter=TraceTest.goddess_of_victory_nikke Bug: angleproject:7982 Change-Id: Id4b49dce6be91bdca85c493d36dec2616be3392c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4199070 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Charlie Lao 54f44639 2023-01-17T13:07:57 Vulkan: Make RendererVk only have one CommandQueue object Right now RendererVk have two CommandQueue objects: one owned by RendererVk (used for synchronous submission) and another owned by CommandProcessor (used for async submission). Since async submission is a feature flag that will never change once RendererVk initialized, we are only using one CommandQueue. This CL changes CommandProcessor's mCommandQueue to a pointer that points to RendererVk::mCommandQueue. The added benefit of this is that it allows me to remove bunch of CommandQueue property query APIs from CommandProcessor since these property has nothing to do with "command". CommandProcessor class is actually reduced to command processing. Bug: b/266605181 Change-Id: I1f33db14ee29e2c0aa7850de98b2d7c3823126b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4174874 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 06720c9b 2023-01-25T11:46:16 Add binding to DescriptorInfoDesc. Otherwise we're hitting the cache falsely https://anglebug.com/7974#c1 (repro in test added in this CL) UpdatePreCacheActiveTextures now gets the binding using the same calls as updateFullActiveTextures, updateExecutableActiveTexturesForShader There might be a better way to do this but it's more complicated. Filed https://anglebug.com/7974 to track. Test credit of Shahbaz Youssefi syoussefi@chromium.org Bug: b/242887117 Bug: angleproject:7974 Change-Id: I481147336437ee4bdce040a3ae81f168e5dffe29 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4104121 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 0931b679 2023-01-26T13:20:22 FrameCapture: Update shader capture for CRLF Shaders with CRLF were breaking the way we capture strings after the move to C format, causing compile failures. To fix, strip out carriage returns ("\r") before splitting the string. See previous patchsets on this CL to see other approaches we tried. Test: LIMBO and Pokemon Masters EX traces Bug: angleproject:7945 Bug: angleproject:7953 Change-Id: Ia15d3a098cb4fcad85a7d7dbd365acdbff8346ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4159055 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
angle-autoroll a8146c5d 2023-01-27T10:01:27 Roll vulkan-deps from 8a9f79f08d79 to d723200bd4b5 (1 revision) https://chromium.googlesource.com/vulkan-deps.git/+log/8a9f79f08d79..d723200bd4b5 Changed dependencies: * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/6226625105..d0a9ba5a25 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: syoussefi@google.com Change-Id: I453080441bd44a1e8930db98beeeeb380101ce4f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4199068 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 3d182016 2023-01-27T08:30:51 Roll Chromium from 5c03f547ddf9 to fb367de4643f (549 revisions) https://chromium.googlesource.com/chromium/src.git/+log/5c03f547ddf9..fb367de4643f If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/1015724d82..b448ad8b3f * testing: https://chromium.googlesource.com/chromium/src/testing/+log/949b2864b6..4ab9691e91 * third_party/android_build_tools/manifest_merger: Oe3FpLcNFdPYOQQYUNnC4ajNSBfgmsFHDUaAimk7m6MC..5Zw4RYBL86koJro2O-jjcZYxOOdEW-hJDYykae8efQAC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..35952dc547 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/44e9bee34f..562481d6a9 * third_party/fuchsia-sdk/sdk: version:11.20230125.2.1..version:11.20230126.1.1 * third_party/r8: SCuPfdKTpEJfVbWzckpmWx125Zf3pO-4RitqcfXX-RQC..lhnuNLpWpWBVM6efX0iIg5i9ztfW8VKpMvkyfWCxfr0C * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/dca2b915e2..44d9b490c7 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/566877f1ff..1214b4d328 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/7fb7f11041..134d306e72 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/aec5433286..3c9dc38f54 No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: Ic7934e445a6bd3fa7b2cd4664f7ede85ff704893 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4199067 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 83150e24 2023-01-27T05:45:26 Roll vulkan-deps from a2f348c2039f to 8a9f79f08d79 (22 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/a2f348c2039f..8a9f79f08d79 Changed dependencies: * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/eb9b273298..ff7a11dbcb * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/7f9184a5b2..96c5dac559 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/a49166a89a..9f93cbe76a * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/0a2c1bece6..3948415ebb * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/80e16af0fd..50d9f72d49 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/8f898553b5..6226625105 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: syoussefi@google.com Change-Id: I4a50a7c1576aa2cdc8e6683b8ac3f08c5bbf5cfc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4199063 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Mohan Maiya 1d9b8d80 2023-01-24T16:50:32 Reland "Add support for glShaderBinary" This is a reland of commit 228973e73135924ddf6116e0b63eff5a1ccbf232 with the following fixes - 1. Apply patch from Yuly to fix chromium build errors 2. Fix ShaderBinaryTest instantiation call 3. Add ShaderBinaryTest to expectations file for IOS Original change's description: > Add support for glShaderBinary > > This patch adds the following - > 1. ANGLE_shader_binary extension and GL_SHADER_BINARY_ANGLE token. > 2. Compiler support to generate shader binaries. > 3. Update compiler to use SH_SPIRV_VULKAN_OUTPUT as output type for > Vulkan translator. > 4. Support to load GL_SHADER_BINARY_ANGLE binaries. > 5. end2end tests for glShaderBinary. > > Tests: ShaderBinaryTest* > Bug: angleproject:7833 > Change-Id: I191d5ba7c4d5304696f5e743c851dc945fa57858 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4137306 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: mohan maiya <m.maiya@samsung.com> > Reviewed-by: Charlie Lao <cclao@google.com> Bug: angleproject:7833 Change-Id: I21135c52e2bae955342a99aff5631ba0e687eff1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4195852 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 17ac6943 2023-01-20T12:09:44 Move d3d11 BCX textures to the "UNREACHABLE" section for clears BCX textures can't be rendered to or cleared. Bug: angleproject:7855 Change-Id: Id2564e92db692aeae9a0da47d55a8ef18b66c4d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4184938 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mike Schuchardt 6938b883 2023-01-26T13:57:00 Tests: Add Dragon Ball Z Dokkan Battle trace Test: angle_trace_tests --gtest_filter=TraceTest.dragon_ball_z_dokkan_battle Bug: angleproject:7980 Change-Id: If7a69d81d7256a90420fad65739ff61e907f5d16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4198477 Commit-Queue: Mike Schuchardt <mikes@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Seija K 081764c8 2023-01-23T16:18:23 Remove checks for A8 devices iOS 13 and above dropped support for A8. We do not need this code anymore. Bug: angleproject:7971 Change-Id: Ie1fca5d93be902605ce989c213df4f2677fe1597 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4190138 Reviewed-by: Dan Glastonbury <djg@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Kimmo Kinnunen 6eb6cb2e 2023-01-26T15:48:35 Declare size_t in Constants.h by including stddef.h Patch by: mcatanzaro@gnome.org Constants.h uses size_t. The include stddef.h is defined to declare size_t, so include it in Constants.h. Fixes some compile failures on some gcc compiles in WebKit. Bug: angleproject:7976 Change-Id: Ibe84e9f58379558ee573aebc3a7679a154d6fe51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194173 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Charlie Lao 128eb01d 2023-01-25T15:55:04 Vulkan: Only call checkCompletedCommands if needed. SyncHelper::getStatus() is always calling checkCompletedCommands. This CL makes it only call RendererVk::checkCompletedCommands if sync is not finished. If it is already finished, we could just immediate return "signaled". Bug: b/266220198 Change-Id: Ie7be9ea9c07d40984945ae3f20a5276c10b3322d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4195834 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop bed19c47 2023-01-26T10:41:23 Tests: Add Bubble Shooter and Friends trace Test: angle_trace_tests --gtest_filter="*bubble_shooter_and_friends*" Bug: b/266823872 Change-Id: I6dfec3b3349675791e3cb7c41bed52b146cb7bee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4195848 Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Charlie Lao 226fd666 2023-01-20T10:26:34 Vulkan: Make CommandProcessor::checkCompletedCommands immediate check This checkCompletedCommands() method is trying to do immediate mLastCompletedSerials update. For async command submission, there is no point to insert a token for CommandProcessor::checkCompletedCommands since it is not waiting for all queued commands to be submitted. And even worse, for async submission, it is also not doing immedidate queue serial update. For example, SyncHelper::getStatus() we do call checkCompletedCommands to ensure the queue serials are up to date, but with async submisison, this has no immediate effect, which may cause test like FenceNVTest.BasicOperations/ES3_Vulkan_AsyncCommandQueue to fail because queue serial is not kept up to date even though we did wait for fence to finish. This CL removes CustomTask::CheckCompletedCommands token and just calls mCommandQueue.checkCompletedCommands() immediately. This CL only affects asynchronous command submission code path. Bug: b/266220198 Bug: angleproject:7884 Change-Id: I3226bc9b337b516e28695008295358d00103eeb9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4174876 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell 63d9675f 2023-01-25T18:07:54 Add documentation for enabling Metal validation layers. Bug: angleproject:7952 Change-Id: I05b03d8db2b97b23616a7e41860e063eb992dc48 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4195840 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kenneth Russell <kbr@chromium.org>
Alexey Knyazev ef0fe638 2023-01-16T00:00:00 Implement EXT_polygon_offset_clamp * Added polygonOffsetClamp to the RasterizerState * Adjusted State::setPolygonOffsetParams * Added PolygonOffsetClampTest end2end tests * Added StateChangeTestES3.PolygonOffsetClamp test * Suppressed the affected dEQP test as it has a bug Capture * Updated serialized rasterizer state * Updated CaptureMidExecutionSetup OpenGL * Rely on the EXT extension defined both for desktop and ES contexts * On desktops, might as well use the ARB extension or GL 4.6 once ANGLE supports them D3D11 * Requires FL10_0 or higher * Maps to D3D11_RASTERIZER_DESC.DepthBiasClamp * Drive-by cleanup of extensions init code Vulkan * Requires depthBiasClamp physical device feature * Maps to the depthBiasClamp parameter of the vkCmdSetDepthBias command Metal * Maps to the clamp parameter of the setDepthBias command Bug: angleproject:7957 Change-Id: If6b28df4084f0a81db29f75fb434e75d394c8730 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4169945 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Charlie Lao 9edc4686 2023-01-26T09:26:41 Vulkan: Fix SharedFence::mRefCountedFence leak This was introduced in crrev.com/c/4159871. mRefCountedFence itself is not been properly deleted. Bug: b/261106868 Change-Id: I91b620d96064cc0a8a155327336881d26a5bc33b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4198475 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Sean Risser 0133b6f1 2023-01-20T16:02:27 Add GL_ARM_shader_framebuffer_fetch builtins Bug: b/242419750 Bug: angleproject:7882 Change-Id: I85582ad21e58e448b740789ec88f783c8b95ee01 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4189028 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Sean Risser <srisser@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 18657894 2023-01-25T13:05:56 Add features to dump and replace shader source. dump_shader_source writes shader source strings to files named with the hash of the source and shader type. enable_shader_substitution allows subsituting the shader source with the strings contained in a file. The same file naming scheme as dump_shader_source is used so shaders can be dumped in one run, modified and subsititued in the next run. Use the ANGLE_SHADER_DUMP_PATH and debug.angle.shader_dump_path environment variables to control where files are written. If they are unspecified, write to the temp directory. Based upon Cody's CLs: https://chromium-review.googlesource.com/c/angle/angle/+/2755841 https://chromium-review.googlesource.com/c/angle/angle/+/3961670 Bug: angleproject:7760, chromium:1385510 Change-Id: I43b9827b977079b88daa794e867637f7a126b080 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4192347 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 862e3e95 2023-01-26T10:01:23 Skip failing capture/replay multithreaded test Bug: angleproject:7423 Change-Id: If193d7d2cdbec661c4d73cd039341333f8f1936d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4197835 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov dfcdae3b 2023-01-23T15:59:49 FrameCapture: Add blend state updates to resetCalls. Adds calls to ResetReplay if modified during capture, for example: glBlendEquationSeparate(GL_FUNC_ADD, GL_FUNC_ADD); glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE, GL_SRC_ALPHA, GL_ONE); glBlendFunc and glBlendFuncSeparate need to be "merged" into a single path to avoid both being tracked while using the same underlying state, so I mapped them both to glBlendFuncSeparate. Also handling glBlendEquation the same way, previously only glBlendEquationSeparate calls were tracked. Test: Bubble Shooter with Friends MEC Bug: b/266244734 Change-Id: I02c4a0da46f35aa496308bf9df6ac15f3297de27 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4189035 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 0c9cbf39 2023-01-26T12:07:51 Revert "Add support for glShaderBinary" This reverts commit 228973e73135924ddf6116e0b63eff5a1ccbf232. Reason for revert: breaks compile on ANGLE into Chromium roll https://cr-buildbucket.appspot.com/build/8790942326644064097 https://cr-buildbucket.appspot.com/build/8790942759045412865 https://cr-buildbucket.appspot.com/build/8790942417069789217 Leaks detected on ASAN https://cr-buildbucket.appspot.com/build/8790946657703508337 Original change's description: > Add support for glShaderBinary > > This patch adds the following - > 1. ANGLE_shader_binary extension and GL_SHADER_BINARY_ANGLE token. > 2. Compiler support to generate shader binaries. > 3. Update compiler to use SH_SPIRV_VULKAN_OUTPUT as output type for > Vulkan translator. > 4. Support to load GL_SHADER_BINARY_ANGLE binaries. > 5. end2end tests for glShaderBinary. > > Tests: ShaderBinaryTest* > Bug: angleproject:7833 > Change-Id: I191d5ba7c4d5304696f5e743c851dc945fa57858 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4137306 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: mohan maiya <m.maiya@samsung.com> > Reviewed-by: Charlie Lao <cclao@google.com> Bug: angleproject:7833 Change-Id: Ice19576acbc1351810ff0cd769ac17ad6c0abdf3 No-Try: true No-Presubmit: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4197375 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
angle-autoroll 5e43562b 2023-01-26T07:01:05 Roll Chromium from 701fadbce737 to 5c03f547ddf9 (614 revisions) https://chromium.googlesource.com/chromium/src.git/+log/701fadbce737..5c03f547ddf9 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/45d09f40b1..1015724d82 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/0cc02fb849..3c7e3f1b8b * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/1dfd0022c4..1127c78cf9 * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/bb5988e15c..e95b94b74d * testing: https://chromium.googlesource.com/chromium/src/testing/+log/32401180de..949b2864b6 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/a920882fe7..9b5f27f99a * third_party/android_build_tools: https://chromium.googlesource.com/chromium/src/third_party/android_build_tools/+log/7ce1c475b8..a102d977b6 * third_party/android_build_tools/lint: 0X1mSg1M9Q3Dv6pcOnX0mK0YR_LyTxyT3oRbYk5uxQ8C..EPj7vnLteKz9kMQ6x4ZPaM5E20Bt4I0wTdrxdBpruZMC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..140797ef1f * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/00be3f079a..44e9bee34f * third_party/fuchsia-sdk/sdk: version:11.20230124.2.1..version:11.20230125.2.1 * third_party/jdk: egbcSHbmF1XZQbKxp_PQiGLFWlQK65krTGqQE-Bj4j8C..-FR8HTNcMfxy7J2HUaWVa0QmEE4f68iotzvFbqOj2LEC * third_party/r8: LH65AcDi3ysVLfebZhbSxN3YUGUV62qpqLIlrV6Znm8C..SCuPfdKTpEJfVbWzckpmWx125Zf3pO-4RitqcfXX-RQC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/41fd15ae6c..566877f1ff * tools/luci-go: git_revision:36cf4b54527c49aca7ed3023995a081e14f1852a..git_revision:221383f749a2c5b8587449d3d2e4982857daa9e7 * tools/luci-go: git_revision:36cf4b54527c49aca7ed3023995a081e14f1852a..git_revision:221383f749a2c5b8587449d3d2e4982857daa9e7 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f760c9e996..7fb7f11041 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/86a7bc48ce..aec5433286 * tools/skia_goldctl/linux: bOyplOZW_1JEVFUYAKgbKGWaIlUNmN1YWkzd5HXMjbMC..PZOpm-VdLUuaVE8seo910YRCnqv7Y2BkPcrmUs13RMAC * tools/skia_goldctl/mac_amd64: AUahse3CmKx-dL05gv51smOfDW3bSRbiOmWly3oDmyQC..aZ8KYJUPYrRq4f7-Td3nt0et_16S06A0vovOn2c85tIC * tools/skia_goldctl/mac_arm64: BUfxeGjbFbRJh3xW3sHUYhB0CNMviWBhCtud4vytIrEC..JtcfJFsvsUuaaIajqvwETn8j5hxOSC_YLDszV96Ukn8C * tools/skia_goldctl/win: eBpAa_OebMnB2kWt7jt2enLuznrQvGveRaHpV1a3y1AC..qp3u_bn43vFlG3HHG61Co9eOeo52m6SWIw099mHqt9EC No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: Iba34e4c2b8bfe540f11d364731ab5c29a11f6a68 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4195842 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Roman Lavrov b64b573b 2023-01-25T18:25:27 Capture/Replay: disable more multi-threaded tests. EGLMultiContextTest tests similar to the already-disabled tests in MultithreadingTestES3 Something flaked in https://ci.chromium.org/ui/p/angle/builders/try/win-trace/4839/overview Bug: angleproject:7423 Change-Id: I4a484954bca727a053437d1d6e52562f2b1344a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4191998 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao 00b94fda 2023-01-17T11:12:14 Vulkan: CommandProcessor::WaitForWorkComplete only if needed When async command queue enabled, there is another queue (mTask) in CommandProcessor object. When we wait for a queueSerial to finish, right now we always flush everything from CommandProcessor (i.e, wait until mTask is empty), even though the work in mTask is unrelated to this queueSerial that waiting for. With the work of previous CLs, now we can actually wait for mTask to empty only if there is still pending submission of queueSerial. This CL also renames ComandProcessor::ensureNoPendingWork to waitForQueueSerialToBeSubmitted to reflect what it does (it does not wait for GPU to finish). Bug: b/261098465 Change-Id: I0114dadd86a84f75bf8b71735f0adc0dbb9b6bf2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4174873 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Geoff Lang 1e3197f4 2023-01-25T15:17:42 Metal: Remove the UNIMPLEMENTED from setBinaryRetrievableHint It spams Chrome's output. It's valid to no-op this function. Bug: chromium:1385510 Change-Id: I63476d94bbd4c075444fa260f5eed9b70b807703 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4195176 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mohan Maiya 228973e7 2023-01-24T16:50:32 Add support for glShaderBinary This patch adds the following - 1. ANGLE_shader_binary extension and GL_SHADER_BINARY_ANGLE token. 2. Compiler support to generate shader binaries. 3. Update compiler to use SH_SPIRV_VULKAN_OUTPUT as output type for Vulkan translator. 4. Support to load GL_SHADER_BINARY_ANGLE binaries. 5. end2end tests for glShaderBinary. Tests: ShaderBinaryTest* Bug: angleproject:7833 Change-Id: I191d5ba7c4d5304696f5e743c851dc945fa57858 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4137306 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Charlie Lao 1d9984bd 2023-01-12T16:56:02 Vulkan: Make CommandProcessor use ThreadSafeCommandQueue This CL switches CommandProcessor's mCommandQueue to ThreadSafeCommandQueue. This allows us to utilize ThreadSafeCommandQueue implementation of wait for GPU to finish while CommandProcessor's async submission thread continue to submit. By doing this, CommandQueue is only used by ThreadSafeCommandQueue, thus some public APIs can now removed. This CL also implements wait APIs of ThreadSafeCommandProcessor directly and remove these APIs from CommandProcessor class. Bug: b/261106868 Change-Id: I8c2e1de95a37fab21b7018db484976c447f1dcad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4163743 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 6a5e61cd 2023-01-11T16:49:52 Vulkan: Make ThreadSafeCommandQueue's wait without lock This CL makes all wait functions in ThreadSafeCommandQueue class to wait without holding the lock, so that other contexts can still submitting commands or make calls into CommandQueue. To make this work, Shared<Fence> has been refactored into SharedFence class which is RAII and manages refcounted VkFence object. It's copy constructor simply adds a reference to the underline fence object, so that the local copy of a SharedFence object guarantees underline vkfence will remain valid. RAII makes sure that local copy of SharedFence will not leak refcount. The ThreadSafeCommandQueue wait functions makes a local copy of SharedFence so that it can unlock and wait and then relock. This CL also adds a new test for this: EGLMultiContextTest.ThreadBCanSubmitWhileThreadAWaiting Bug: b/261106868 Change-Id: I96ecfa1d9f7a3dc646ff2287d789313a9f8fb75d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4159871 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu c9094ca6 2023-01-25T11:46:44 Skip flaky tests dEQP-GLES31.functional.image_load_store.buffer* Skip these flaky tests on OpenGL backends on Windows and Linux: dEQP-GLES31.functional.image_load_store.buffer.atomic. comp_swap_r32i_return_value; dEQP-GLES31.functional.image_load_store.buffer.atomic. comp_swap_r32ui_return_value Bug: b/266710445 Change-Id: I78684e661ec789ff116658c06c8c341b4db8aa9e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194034 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev 11608a8b 2023-01-23T00:00:00 Adjust STENCIL_INDEX8 caps * Fixed a typo in GetSizedFormatInternal * Required texturing for OES_texture_stencil8 * Marked all depth/stencil formats as not blendable * Fixed frontend and GL texture caps for GL_STENCIL_INDEX8 Bug: angleproject:3231 Change-Id: Ie91e4bb4e8ab56d39dc1270487380b0bfce25b08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194169 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll f26cfec9 2023-01-25T07:32:59 Roll Chromium from 7d74066a9406 to 701fadbce737 (593 revisions) https://chromium.googlesource.com/chromium/src.git/+log/7d74066a9406..701fadbce737 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/0f97315fd1..45d09f40b1 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/37cb03bdf9..0cc02fb849 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/885d5d1cd5..1dfd0022c4 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/984070b262..32401180de * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/5e509ec912..a920882fe7 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..45986b07fa * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a1abbeda6b..00be3f079a * third_party/fuchsia-sdk/sdk: version:11.20230122.2.1..version:11.20230124.2.1 * third_party/nasm: https://chromium.googlesource.com/chromium/deps/nasm.git/+log/0873b2bae6..7fc833e889 * third_party/r8: PhbyY6VT6R_nwiYKM8E7SZ5EGYxvBqKo_aQtlY-wrg4C..LH65AcDi3ysVLfebZhbSxN3YUGUV62qpqLIlrV6Znm8C * tools/luci-go: git_revision:81e5cdad29bb4c7aaad98c843637513db3155b0d..git_revision:36cf4b54527c49aca7ed3023995a081e14f1852a * tools/luci-go: git_revision:81e5cdad29bb4c7aaad98c843637513db3155b0d..git_revision:36cf4b54527c49aca7ed3023995a081e14f1852a * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/ab619b7c09..f760c9e996 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/408e4c29da..86a7bc48ce * tools/skia_goldctl/linux: MXsAy_bc-PnYFk9_AbS1SvOtffQOs0lxsCcuFZoQyG8C..bOyplOZW_1JEVFUYAKgbKGWaIlUNmN1YWkzd5HXMjbMC * tools/skia_goldctl/mac_amd64: zuvSWGwPdHdKF8rq_ICSj7qKIEJ1ZWvtnAR5RjaabgAC..AUahse3CmKx-dL05gv51smOfDW3bSRbiOmWly3oDmyQC * tools/skia_goldctl/mac_arm64: V0uhiO8yEQmwDNMxsrzTtOm_9Cg9ZE41OCsqGPssrNwC..BUfxeGjbFbRJh3xW3sHUYhB0CNMviWBhCtud4vytIrEC * tools/skia_goldctl/win: pQVdWoY3lHFJsI2YCM2klbYkIpYilhK7HY3HbgO7hNAC..eBpAa_OebMnB2kWt7jt2enLuznrQvGveRaHpV1a3y1AC No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: I621146697cbe5ba705dd00836b0f478554c94c3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4193047 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Kenneth Russell 660e4a7c 2023-01-20T15:42:29 Don't override D16_UNORM to D32_FLOAT on Apple GPUs. Local testing of: dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units on M1 indicates that depth bias works correctly with MTLPixelFormatDepth16Unorm on this GPU type, indicating that previous workarounds only need to be applied to non-Apple GPUs. Reimplement d24s8_fallbacks_mac as depth_fallbacks_mac, add this workaround there, and move the conditions to the JSON file per review feedback from Alexey Knyazev. Avoid emitting duplicate depth formats in gen_mtl_format_table.py. Leave the iOS Simulator alone - the workaround is likely still needed there, and difficult to test. Tested via: ./out/Release/angle_deqp_gles3_tests \ --gtest_filter=\ dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units \ --use-angle=metal Bug: angleproject:6597 Change-Id: I52a99b3f710bb88e1f43ed17862f6e6f2e6471ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4184943 Auto-Submit: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
angle-autoroll e5671e16 2023-01-24T12:34:34 Roll VK-GL-CTS from c1ebeb5013f9 to 821e153ac85a (20 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/c1ebeb5013f9..821e153ac85a 2023-01-24 cturner@igalia.com Add more coverage of image copies with BC formats and mips/layers 2023-01-24 gleese@broadcom.com Simplify failure message 2023-01-24 gleese@broadcom.com Extend helper_invocation tests to cover SPIR-V 1.6 2023-01-24 rgarcia@igalia.com Make dynamic primitive restart test more reliable 2023-01-24 amber@igalia.com Add tests for compute shaders dispatched in secondary command buffers 2023-01-24 ziga@lunarg.com Test vkGetDeviceProcAddr with device that has no extensions enabled 2023-01-24 amber@igalia.com Add tests for adjusted pipeline compatibility rules. 2023-01-23 piotr.byszewski@mobica.com Merge vk-gl-ct/opengl-cts-4.6.2 into vk-gl-ct/main 2023-01-23 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-es-cts-3.2.8 into vk-gl-cts/main 2023-01-23 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.4 into vk-gl-cts/main 2023-01-16 slawomir.cygan@intel.com Remove not needed else statement and commented code from subgroups tests code 2023-01-16 ziga@lunarg.com Add robustness tests with dynamic index on vector 2023-01-16 rgarcia@igalia.com Make unused shader stage tests pass layout when linking 2023-01-16 cturner@igalia.com Add coverage of copies from compressed mipmap textures 2023-01-16 piotr.byszewski@mobica.com Test memory access write/read bit 2023-01-16 rgarcia@igalia.com Prioritize downloaded ffmpeg over system ffmpeg 2023-01-16 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkansc-cts-1.0.1 into vk-gl-cts/main 2023-01-16 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.4 into vk-gl-cts/main 2023-01-13 ziga@lunarg.com Create linked pipeline with null layout 2023-01-09 aitor@lunarg.com Fix atomic swapcomp return value tests 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 syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: syoussefi@google.com Change-Id: I4a9a79ed59e4aa561ca787e9d651008c5bb64b73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4190689 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll a654666c 2023-01-24T10:01:42 Roll vulkan-deps from d7dfd14fa0d0 to a2f348c2039f (13 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/d7dfd14fa0d0..a2f348c2039f Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/0d3211ff7b..4e9cde50bb * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/cdc4e528f3..7f9184a5b2 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/1a43b498b8..a49166a89a * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/125b4f665c..0a2c1bece6 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/00adad5913..8f898553b5 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: syoussefi@google.com Change-Id: If8e87c836284f3e540a10825bfa0683fec12a691 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4190686 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 13e0847b 2023-01-24T08:02:11 Roll Chromium from d184372e4c92 to 7d74066a9406 (534 revisions) https://chromium.googlesource.com/chromium/src.git/+log/d184372e4c92..7d74066a9406 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/b775173320..0f97315fd1 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/d843e69371..37cb03bdf9 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/cf803236eb..885d5d1cd5 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/427915c5f6..984070b262 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/22209d660e..5e509ec912 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/99ddc1e97f..6d5f62996f * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..c95933a0d5 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e852391441..a1abbeda6b * third_party/r8: XBkol4a9AeFOtX-9cvNPpKCbqj9UAqZuoVvFop6AX9wC..PhbyY6VT6R_nwiYKM8E7SZ5EGYxvBqKo_aQtlY-wrg4C * third_party/turbine: uQFvRkwygckj0pmxUx9_4WqWm-VdcDxs2o1t3xyEDjYC..t0TeGgk2CZr3B0HtEqBb60BSRwVPRJm9066izhJwzz0C * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/bae2f662bc..41fd15ae6c * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f03c9412cd..ab619b7c09 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/680d5e2c82..408e4c29da No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: Ifaadc011134a278a9bf1657ea6315a448646c176 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4190684 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Charlie Lao 9a72a98e 2023-01-19T13:17:42 Vulkan: Fix the VVL error for shaderRead to shaderRead barrier When we use image from fragment shader read to vertex shader read, we detect the case (same layout with only shader stage change) and just merge the barrier into one. But that can only done if these two usages are for the same render pass. If it is different render pass, then you still have to issue a new barrier. Previously there is no way to detect that the barrier was issued for which render pass. With the fix in crrev.com/cl/4136948, we now know which render pass issued the last barrier. With that we are able to limit the shader stage consolidation only if they are for the same render pass, thus fixing the VVL errors. Bug: angleproject:6663 Change-Id: I3d884336e8cf1f3cf16fc3e5a3423357ae2ed3c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4182542 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya ab334105 2023-01-23T10:09:56 BuiltInResourcesString is no longer a part of shader cache key The stringified version of `ShBuiltInResources` is poorly maintained and has a large overhead while computing hashes. Instead use the `ShBuiltInResources` blob directly. The shader object now computes and caches its key, refactor MemoryProgramCache to query the shader object for its key instead of recomputing it. Tests: EGLProgramCacheControlTest* Bug: angleproject:7833 Change-Id: I67a22f9460cee10ab0f7571df7d6525b476a5a78 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4185759 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 13aee254 2023-01-13T14:01:56 Move memory allocation info vars to separate class * Moved the RendererVk variables related to memory allocation to a new class, MemoryAllocationTracker. * Note: The existing variable "mMemoryAllocationTracker" has been renamed to "mMemoryAllocationRecord" to avoid confusion. * Added a custom locale using the class MemoryLogNumberFormat, since the original method did not include formatting on some Android devices. Bug: b/262029018 Change-Id: I23acf37119da02e6430de6b5d360307982ecf9bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4174738 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ivan Neulander <ineula@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Charlie Lao 77d19e39 2023-01-11T14:03:18 Vulkan: Add ThreadSafeCommandQueue class This is preparation CL for the next few CLs. Instead of having RendererVk owns mCommandQueueMutex and takes lock before calling CommandQueue APIs, this CL creates a ThreadSafeCommandQueue wrapper class that wraps CommandQueue class' public APIs with a mMutex. Right now this is purely a mechanical change, expecting no real functional or behavior differences. But in the future CLs, we are going to implement some APIs without holding lock while doing the wait. This also conceptually cleaner that a mutex lock should protect data not methods. Because of this, this CL also adds OneOffCommandPool class to wrap around all oneoff command buffers with its own lock. The same change also applied to CommandProcessor class by adding a ThreadSafeCommandProcessor class (this will be removed in later CLs). This CL also removes CommandQueueInterface base class and made all these virtual functions no longer virtual, thus reduces the overhead associate with calling virtual functions. Bug: b/261106868 Change-Id: Ifdc0085cef7f00d840b4ef3fa602172fed3c0fb1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4156637 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Jeff Vigil 6338909e 2023-01-19T13:18:41 EGL: Remove protected content test case Remove Protected content test: Protected context with unprotected texture since it is a spec violation to render to an unprotected texture from a protected context Bug: angleproject:7967 Change-Id: I40ce205a962614fe726417b0ed921b3a5133c079 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4182560 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Jeff Vigil <j.vigil@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 057997e4 2023-01-20T16:47:00 Tests: Add CSR2 Drag Racing trace Test: angle_trace_tests --gtest_filter="*csr2_drag_racing*" Bug: b/266249089 Change-Id: I61e4d44fa9ed4bfc5cce1177189d93397cc8a8ae Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4184944 Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
angle-autoroll 8d2f5e0e 2023-01-23T10:01:36 Roll vulkan-deps from f709feae795b to d7dfd14fa0d0 (12 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/f709feae795b..d7dfd14fa0d0 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/ca8d07d0bc..0d3211ff7b * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/4be568c004..eb9b273298 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/c51e2afe00..cdc4e528f3 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/78448eda6e..1a43b498b8 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/947366e2ce..00adad5913 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 geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: geofflang@google.com Change-Id: I0c67e19d5b696db063290c53aabbea79c41bcb07 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4187415 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll df202660 2023-01-23T07:00:23 Roll Chromium from 4303e3d5e898 to d184372e4c92 (604 revisions) https://chromium.googlesource.com/chromium/src.git/+log/4303e3d5e898..d184372e4c92 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/dac013f262..b775173320 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/dc82f3042d..d520d582aa * testing: https://chromium.googlesource.com/chromium/src/testing/+log/8aa310ace3..427915c5f6 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/da69f777a0..99ddc1e97f * third_party/android_sdk/public: oWlET2yQhaPKQ66tYNuSPaueU78Z9VlxpyxOoUjwRuIC..3Yn5Sn7BMObm8gsoZCF0loJMKg9_PpgU07G9DObCLdQC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..c4e9d16032 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/aec39c38f8..e852391441 * third_party/fuchsia-sdk/sdk: version:11.20230118.2.1..version:11.20230122.2.1 * third_party/r8: P1d7YJypbKC2Tv6UCo5QRdo1UwIyECszSGO583AzYigC..XBkol4a9AeFOtX-9cvNPpKCbqj9UAqZuoVvFop6AX9wC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/16bb37bbfe..bae2f662bc * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/6d7ad776de..f03c9412cd * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/c3af70bb40..680d5e2c82 No update to Clang. Bug: angleproject:4417,angleproject:5038 Tbr: geofflang@google.com Change-Id: I3e29bec797c48c988f2f3c6ffccb0d696fa632f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4185761 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Yuxin Hu 3b27647c 2023-01-20T16:32:05 Remove the temp workaround in presubmit script The newly included header files in vulkan_core.h were added in the vulkan-headers/BUILD.gn: https://github.com/KhronosGroup/Vulkan-Headers/pull/348. Removing the temp workaround added in the export_targets.py which was needed to bypass the presubmit error before the above fix was ready. Bug: b/263310519 Change-Id: I37d2c6af9b1e705a1a285f8e6d4fb23f777d4bdc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4184948 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu 39450a0f 2023-01-19T18:29:45 Add memory qualifier decorations for uniform buffer members During the parsing of GLSL shader code, we set memory qualifier on each individual member of the buffer struct: http://go/cs-angle/src/compiler/translator/ParseContext.cpp;l=4957. However, when generating the SPIR-V instructions, we did not add the corresponding OpMemberDecorate SPIR-V instructions. This change adds the missing OpMemberDecorate SPIR-V instructions for each field in uniform buffer struct. Bug: b/261634197 Change-Id: Id930e11f62a0e04e1b151b7d073cca6944474c87 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4179065 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 77e995c0 2023-01-20T15:03:45 Tests: Add Family Island trace Bug: b/266228507 Change-Id: I077236dad048662f093f65a7702a27b09205bdd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4185155 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Cody Northrop 134acaba 2023-01-20T11:34:55 Tests: Add Royal Match trace Test: angle_trace_tests --gtest_filter="*royal_match*" Bug: b/266220659 Change-Id: I7fcc81611dd2a566ba9b6f7cc97ea6efdc345339 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4184935 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Tiago Vignatti 5ff1298c 2023-01-10T15:02:13 Metal: Fix MTLBarrierScope type availability Latest SDK doesn't provide MTLBarrierScopeRenderTargets for iOS and is very specific for macOS versions: MTLBarrierScopeRenderTargets API_AVAILABLE(macos(10.14), macCatalyst(13.0)) API_UNAVAILABLE(ios) = 1 << 2 This fixes MTLBarrierScopeRenderTargets availability according the latest SDK. Test: build ANGLE with Metal renderer enabled on iOS. Bug: None Change-Id: I101ccfe6ab77d7241ac4a925aeebce8801782428 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4126578 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Chris Dalton <chris@rive.app> Auto-Submit: Tiago Vignatti <tvignatti@igalia.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
angle-autoroll d4535966 2023-01-20T10:01:36 Roll vulkan-deps from 823d1a0d7c30 to f709feae795b (13 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/823d1a0d7c30..f709feae795b Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/615741f278..ca8d07d0bc * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/bb1c885956..c51e2afe00 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/08bfe2e226..78448eda6e * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/4b705abe08..125b4f665c * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/57fe3f50cd..947366e2ce 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 geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: geofflang@google.com Change-Id: I261c9aac2e41336ec0b1651dc0f6baa1626267fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4182556 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll bac6516b 2023-01-20T08:27:14 Roll Chromium from b7e315063b1a to 4303e3d5e898 (531 revisions) https://chromium.googlesource.com/chromium/src.git/+log/b7e315063b1a..4303e3d5e898 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/b999a0bc63..dac013f262 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/b55d9cf082..8aa310ace3 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/4fd023ec65..da69f777a0 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..e4385f1ba0 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/faf64f1f63..aec39c38f8 * third_party/r8: sXl5FcBjtOx9iJFm1Sh2S_Q4meUE-UtMw23EOdeQRMkC..P1d7YJypbKC2Tv6UCo5QRdo1UwIyECszSGO583AzYigC * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/d55fe17f21..6d7ad776de * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/40f74f7860..c3af70bb40 No update to Clang. Bug: None Tbr: geofflang@google.com Change-Id: Ifd7b9bf3d6bf464a617ee56e3766b0cf6103c3fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4182555 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Maksim Sisov 3d95483f 2023-01-17T12:18:50 Remove deprecated use_system_libwayland Instead, check if wayland gn shall be used by checking whether wayland_gn_dir is set or not. Bug: chromium:1385736 Change-Id: Ie589e55e02a66cb06bd115d65ce96c84de9e9ad8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4169946 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Maksim Sisov <msisov@igalia.com>
Shahbaz Youssefi c98a413c 2022-11-28T13:56:10 Vulkan: Use deferred allocation for swapchains when possible Bug: angleproject:7878 Change-Id: I539027f4fabe7a56f05280baee3772bc536791e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4088906 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Shahbaz Youssefi ffbb65bc 2022-11-28T13:31:48 Vulkan: Use VK_EXT_swapchain_maintenance1 for present fences Bug: angleproject:7878 Change-Id: Ic3a43c663789a6489cff261848d9ad4a408ca53a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4088905 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Cody Northrop d2be1163 2023-01-18T23:10:26 Tests: Add Words of Wonders trace Test: angle_trace_tests --gtest_filter="*words_of_wonders*" Bug: angleproject:7965 Change-Id: I6fa9176a1ae90a85421aed6ed5a2101155bbe87b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4179705 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi d859ed39 2023-01-19T10:54:54 Vulkan: Disallow INPUT_ATTACHMENT usage on sampled image views Input attachments have similar requirements to draw attachments w.r.t swizzling. Bug: b/265647457 Change-Id: I7ff007b2b2ae2d8615b4b339bc621835888eebde Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178023 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 9afe8b2d 2023-01-17T17:08:11 Disable the Metal backend on Mac GPU family < 2. Devices that don't support at least Mac GPU family 2 are not supported by the Metal backend. Bug: chromium:1365598 Bug: angleproject:7952 Change-Id: If6b467549c3fe713377c9d74363a560f889e094d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4175533 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill e960355a 2023-01-05T14:56:48 Trace Interpreter: Support DOTA underlords. Supports zero pointer parameters, which are used to indicate unwritten parameters. Bug: angleproject:7887 Change-Id: Ibee1d558567020eeeeb2ed6ac98f38cf985d87a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4140259 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2c4de3a7 2023-01-03T16:07:35 Trace Interpreter: Support Genshin Impact. Includes a couple fixes: - parsing hexidecimal values instead of enums - support sharing strings and functions between modules - support 32-bit int pointers Bug: angleproject:7887 Change-Id: I6e20a64a862c45c17ccde78a58d6069d83b31867 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4135797 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 2c582dcb 2023-01-03T10:27:03 Trace Interpreter: Support Manhattan trace. Adds the following fixes and features: - support transform feedback varying strings - support infinity and NaN constants - support for sampler and query resources Bug: angleproject:7887 Change-Id: Ib01afe66e4fda9bc77d0cb5eed52fa83a694a7d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4126885 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f7b5d5d1 2022-12-15T10:52:07 Capture/Replay: Remove inline variable declarations. This makes parsing easier for the "simplified C" interpreter. We introduce a resource ID buffer as a way to manage a list of resource IDs to replace the inline resource lists. Turns on the Among Us trace in the interpreter tests. Bug: angleproject:7775 Change-Id: I1bb9c0e9b087965a18691bc99b2e9947610b9eaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4128719 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
angle-autoroll bb5fd093 2023-01-19T11:52:26 Roll Chromium from 1df7789231ac to b7e315063b1a (68 revisions) https://chromium.googlesource.com/chromium/src.git/+log/1df7789231ac..b7e315063b1a If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC geofflang@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * testing: https://chromium.googlesource.com/chromium/src/testing/+log/f0f99e2930..b55d9cf082 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..0726e80456 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/e535583ad0..16bb37bbfe * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/fecd90fb88..d55fe17f21 * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/fcf8933032..da557f2c89 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/4a519a86af..40f74f7860 No update to Clang. Bug: None Tbr: geofflang@google.com,ynovikov@google.com Change-Id: I21cc0166c7c14e694550bab47343f5271315e03c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4180401 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 1e38d867 2023-01-19T10:01:36 Roll vulkan-deps from cd80e810d579 to 823d1a0d7c30 (25 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/cd80e810d579..823d1a0d7c30 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/1fb2f1d789..615741f278 * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/4212eef67e..4be568c004 * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/d13b52222c..aa331ab0ff * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/ba4c9fe534..bb1c885956 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/587e811e9c..57fe3f50cd 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 geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: geofflang@google.com Change-Id: I2689ab684f259c0c7ed49950159d3bcffc7b5766 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4180396 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 26e4f3e9 2023-01-19T07:00:55 Roll Chromium from 9ddfe9a47c82 to 1df7789231ac (437 revisions) https://chromium.googlesource.com/chromium/src.git/+log/9ddfe9a47c82..1df7789231ac If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/68a090ea4c..b999a0bc63 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/8f22bbb7f7..f0f99e2930 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/62a97b8cd6..4fd023ec65 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..0726e80456 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/86cfa62b07..faf64f1f63 * third_party/fuchsia-sdk/sdk: version:11.20230114.0.1..version:11.20230118.2.1 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/c042194eaa..e535583ad0 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/ad4ed8f07b..fecd90fb88 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/5878fbb39f..4a519a86af Clang version changed llvmorg-16-init-14635-ga650f2ec:llvmorg-16-init-17653-g39da55e8 Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/c042194eaa0ec0874b062f404ba80c7a935a8625..e535583ad0e80c76f34d32a0aa123cba1fec6044/scripts/update.py Bug: None Tbr: geofflang@google.com Change-Id: I7c8f8c4ca4265bbcad63f6f81b41d58a517e456a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4179707 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Dan Glastonbury bf5a007a 2022-06-16T14:21:08 Metal: Ensure render pass has at least one valid render target. Extend MTLRenderPipelineDescriptor validation to ensure that there is at least one valid render target set for the the render pipeline. This is required for certain families of metal devices to avoid a validation failure inside the metal framework. Moving the failure here will cause the app using ANGLE to return a GL error instead of crashing the process. Bug: angleproject:7436 Change-Id: I594d92492a22a61a720dbe7021843c8460b389b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4109310 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Amirali Abdolrashidi 48e40ef6 2023-01-06T13:35:21 Add per-heap memory allocation trackers * For each member of MemoryAllocationType, we now have a per-heap counter to keep track of the allocation size in each available heap. * mActivePerHeapMemoryAllocationsSize * mActivePerHeapMemoryAllocationsCount (debug mode only) * Added the memory type index to onMemoryAlloc() and onMemoryDealloc() as an input. It can then be used to determine the used memory heap index for that allocation using the memory properties defined in the renderer. * checkForCurrentMemoryAllocations() will now log the heap index of the current memory allocations in debug mode and during an OOM crash. * logPendingMemoryAllocation() will now log the heap index of the pending allocation during an OOM crash. * Renamed constexpr values used for tracking for more consistency. * kTrackMemoryAllocation -> kTrackMemoryAllocationSizes * kDebugMemoryAllocationLogs -> kTrackMemoryAllocationDebug Bug: b/262029018 Change-Id: I178a3556b3107edc0c72c6b23ea2f2d6b12da947 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4149431 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Ivan Neulander <ineula@google.com>
Jamie Madill c0931807 2023-01-18T12:26:35 Fix flaky Capture/Replay FenceSyncTests. These tests were flaky because of the window size. Bug: angleproject:6510 Change-Id: Ib3fc9de75ab3ffa2c4ff95e6ac9fedea1055c993 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178013 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill fdada9ee 2022-12-13T14:52:53 Re-land: "Make SyncIDs a packed type." This re-land fixes the sync map size tracking. This prepares syncs to use a simple resource map like other types, which will make life easier in the trace interpreter. Bug: angleproject:7775 Change-Id: If2114c51d5b68503890eacbf549182823667fedc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178012 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 90b6d511 2023-01-13T10:06:12 Vulkan: Add support for AHB usage FRONT_BUFFER flag AHB usage flags have been updated to include front buffer usage. AHBs tagged with this flag need to be handled similar to single-buffered window surfaces especially w.r.t glFlush semantics. Account for the new usage flag when deferring flushes. Bug: angleproject:7956 Test: Android VTS GraphicsFrontBufferTests.* Change-Id: I79440d8447ac569c3d785de191815d2d2f3f069f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4167063 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Jamie Madill fb94622c 2023-01-18T14:47:56 Trace Tests: Clean up desktop skips. These were confusing SwiftShader and ANGLE / Native drivers. Fix these by using helper variables. This isn't an issue on Android because our Android tests don't have SwiftShader. Bug: angleproject:7887 Change-Id: I414f59a8eb1155aaf8b98bf5c3104273cbb5b72d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178015 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 63a2848a 2023-01-18T15:46:30 Roll Chromium from ff04c317b95c to 9ddfe9a47c82 (661 revisions) https://chromium.googlesource.com/chromium/src.git/+log/ff04c317b95c..9ddfe9a47c82 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/31a56c9985..68a090ea4c * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/a1adda97a8..d843e69371 * buildtools/clang_format/script: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git/+log/8b525d2747..f97059df7f * testing: https://chromium.googlesource.com/chromium/src/testing/+log/fe20815d47..8f22bbb7f7 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/fa68f99a85..22209d660e * third_party/android_build_tools/manifest_merger: 7ZPeHZjITxCcJzrEuxb5yznF7h65-RTQrbhzILJz4_gC..Oe3FpLcNFdPYOQQYUNnC4ajNSBfgmsFHDUaAimk7m6MC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..7a311fe439 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/175767738f..86cfa62b07 * third_party/fuchsia-sdk/sdk: version:11.20230112.1.1..version:11.20230114.0.1 * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/3fab077d8c..45851774ad * third_party/r8: bs2Q_5MC61CyUsEbpowkt4tABytyCHe7eSbylw4sC3QC..sXl5FcBjtOx9iJFm1Sh2S_Q4meUE-UtMw23EOdeQRMkC * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/bed826478a..ad4ed8f07b * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/946d9d6a48..5878fbb39f * tools/protoc_wrapper: https://chromium.googlesource.com/chromium/src/tools/protoc_wrapper/+log/1b9851b39d..30392509cf No update to Clang. Bug: angleproject:7952 Tbr: geofflang@google.com Change-Id: Ibc08d14880f4e6400f90cd4f4b7dd4ba0466b1cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4177471 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Roman Lavrov 2ce5a632 2023-01-18T11:01:41 Log screen state if log=debug. Prints either of: mScreenState=ON_UNLOCKED mScreenState=ON_LOCKED mScreenState=OFF_LOCKED Oddly, there doesn't seem to be a standard way to do this on Android, so using the nfc trick with "|| true" to ignore potential failures. Also setup logging using the util in run_angle_android_test as the current way seems to no longer be working. Bug: chromium:1405504 Change-Id: I448be86e8f0d72905948e68ffb076605273fa958 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178011 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 2550fe9a 2023-01-14T21:21:24 Vulkan: Drop usage of VK_EXT_debug_report This extension has been deprecated for 6 years in favor of VK_EXT_debug_utils. Bug: angleproject:7959 Change-Id: I51923a6821a6a18854ef94e0ca85c328bc8c6da5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4167833 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 8971a592 2023-01-18T14:35:09 Revert "Make SyncIDs a packed type." This reverts commit 9de913077a5fcc3d2f2e327b56bbe30efe2fde96. Reason for revert: Fails win-trace, somewhat flakily. Original change's description: > Make SyncIDs a packed type. > > This prepares syncs to use a simple resource map like other > types, which will make life easier in the trace interpreter. > > Bug: angleproject:7775 > Change-Id: Ic2867f6133256f5ce2320eb2b322c1059266b201 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4103720 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> Bug: angleproject:7775 Change-Id: I29534b14c973fa34a4cb7457d534cd6156f33cd2 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178010 Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 5d1ac2e0 2023-01-17T10:21:01 Add missing include to ShaderVars.h Patch by mcatanza@redhat.com Bug: angleproject:7963 Change-Id: I1466ab227ae4e8b5703bd68bafbf12c31d441c2e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4174172 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 9de91307 2022-12-13T14:52:53 Make SyncIDs a packed type. This prepares syncs to use a simple resource map like other types, which will make life easier in the trace interpreter. Bug: angleproject:7775 Change-Id: Ic2867f6133256f5ce2320eb2b322c1059266b201 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4103720 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuxin Hu 82826be0 2023-01-06T11:20:14 Reland "Make ANGLE program version only dependent on data that matters" This is a reland of commit 61728827d2e5ecce685578bc54bb2c744b65fc9a Changes made on top of previous commit 1. In src/program_serialize_data_version.py, fix the script error on Windows: anglebug.com/7918. 2. In BUILD.gn, replace the 'write_file' with 'response_file_content'. See https://gn.googlesource.com/gn/+/main/docs/reference.md#var_response_file_contents 3. In scripts/generate_android.bp.py, add code to handle the special GN build flag {{response_file_name}}. The code writes the list defined in srcs (identified by $(in) in Android blueprint) into a temp file named 'gn_response_file', and replaces the {{response_file_name}} with 'gn_response_file'. Original change's description > Changes made on top of original commit > 1. Enable execution permission on python script > program_serialize_data_version.py > 2. Remove unused list in libGLESv2.gni > 3. In angle/BUILD.gn, change file path from > "relative to angle_root", to "relative to root_build_dir", > so that inside the script program_serialize_data_version.py, > we don't have to find the absolute path of the code files for > hashing. > Original change's description > > This change introduces a new variable ANGLE_PROGRAM_VERSION > > to track the version of ANGLE source files that affect shader > > program serialization/deserialization. This change include more > > source files than necessary, to serve the purpose of a conservative > > jumping off point. We will narrow down the list of files for > > ANGLE_PROGRAM_VERSION hash generation in the future. > > Add a new script program_serialize_data_version.py that will > > be triggered during the build when the related source files changed. > > The script will generate a hash and the hash size from the related > > source files. In program serialization/deserialization and cache > > key generation, we will use this hash value instead of the entire > > ANGLE git hash. When the hash value changed, we know that the > > related source files changed, and we should invalidate the program > > cache and re-generate the blob cache / program binary. > > Bug: angleproject:4981 > > Change-Id: I2fb609416738d459d3289190c232c2d797ba58e3 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4072215 > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Cody Northrop <cnorthrop@google.com> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Yuxin Hu <yuxinhu@google.com> > Bug: angleproject:4981 > Change-Id: Iaa9eb0ab33439197bc30d03064fc245ea7ef1ea8 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4113445 > Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Commit-Queue: Yuxin Hu <yuxinhu@google.com> Bug: angleproject:4981 Change-Id: Ib5bba199be6d08a1e19807026df0e7b747dbc8a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4144078 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 56eb961f 2023-01-17T17:03:39 Revert "Capture/Replay: Capture the attr locations as set by the program" This reverts commit 585d2a9e5c546c7aa59b987da6c70d310cccd3ee. Reason for revert: glBindAttribLocation calls added by frame capture, even when location was not set explicitly, are currently necessary for replay stability across different platforms. Example from a trace: glGetAttribLocation(gShaderProgramMap[24], "position"); ... glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 112, nullptr); Note how "0" is hard-coded instead of using the value returned by glGetAttribLocation above, and that can be different on a different platform. This was resolved before this CL by calling glBindAttribLocation to map "position" to 0, and after this CL glBindAttribLocation calls are missing from the trace and we end up with inconsistent native replays (found in Android b/265429003) Original change's description: > Capture/Replay: Capture the attr locations as set by the program > > Setting the attribute location based on the input declaration > results in a discrepancy with MEC when recording the context state, > because if a location was never set explicitely, the captured > context state will hold no attribute location information, but > since calls were recorded to set the default attribute locations, > the context state recorded during replay will contain these extra > entries. > > To avoid this, only record the attribute locations that were > explicitely set. > > Bug: angleproject:7564 > Change-Id: Ib9d6c7b098935d199921e0fe5c0ef985e6187f1b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827345 > Commit-Queue: Gert Wollny <gert.wollny@collabora.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> Bug: angleproject:7564 Bug: angleproject:7964 Bug: b/265429003 Change-Id: I4f97c8162601cc1b749bbc8a06851561654205e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4172756 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 669e232a 2023-01-17T15:25:27 Revert "Suppress more VVL errors about vkCmdDraw*-None" This reverts commit 0d34d4f8810aeb2297bf2814f8b1ca7f749decd9. Reason for revert: Fixed upstream https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/4628 Original change's description: > Suppress more VVL errors about vkCmdDraw*-None > > * Suppressed the following VVLs: > * VUID-vkCmdDrawIndexed-None-02686 > * VUID-vkCmdDrawIndirect-None-02686 > * VUID-vkCmdDrawIndirectCount-None-02686 > * VUID-vkCmdDrawIndexedIndirect-None-02686 > * VUID-vkCmdDrawIndexedIndirectCount-None-02686 > > Bug: angleproject:7685 > Change-Id: I41390ee2a2a01509367a6e98697da3ad7e3cc2e5 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3910174 > Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Bug: angleproject:7685 Change-Id: Ibc79b34758a18ea0070edff4f200b7f8462c8e9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4174173 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Chris Dalton 1f8bc491 2022-12-15T21:04:32 Make sure D3D11 textures never lose bind flags We hit an issue where a texture was used alternatively as a UAV and a render target. When used as a render target, ensureBindFlags created a new storage with just the render target bind flag. When used as a UAV, ensureBindFlags created a new storage again, this time with just the UAV bind flag. And so on. This change updates ensureBindFlags to ensure all previous bind flags are preserved when creating a new storage. Bug: angleproject:7855 Change-Id: I8c03c011e3df6eee5fbad22e45663e8fee731d57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4112763 Reviewed-by: Stephen White <senorblanco@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>