Log

Author Commit Date CI Message
Alexey Knyazev 93e311f7 2023-02-07T00:00:00 Add channel info to compressed formats in angle::Format Fixed: angleproject:8011 Change-Id: I2ea08f30523c08b7ca11ee327990a110a448ca42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4232118 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Le Hoang Quyen 92f26ce3 2023-02-02T17:53:48 Metal: fix UBO argument buffers didn't work with managed storage. This bug would happen when forceBufferGPUStorage feature is turned on. This feature forces all buffers to use managed storage mode. We use mtl::BufferPool to allocate an UBO argument buffer. However, we didn't tell it to map the buffer. Later when we used MTLArgumentEncoder to encode the buffer, mtl::Buffer::flush would be a no-op because the Buffer didn't know that it was modified by the MTLArgumentEncoder on the CPU. Consequently, its memory's encoding write wouldn't be visible to the GPU. Fix by passing a mapped pointer to mtl::BufferPool::allocate. This will force a buffer mapping to occur. And memory flushing will properly be invoked after MTLArgumentEncoder finishes the encoding. Fixed: angleproject:7999 Change-Id: Ie486ae526672c89548ee14bc0824da1fdd5673c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4217055 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Igor Nazarov b6cc5754 2023-01-17T16:17:22 Vulkan: Fixed Wait Semaphores problems. This feature fixes 2 problems. 1. Swapchain Image Acquire Semaphore added to wait list AFTER rendering commands: - Make Window Surface current. - Clear Window Surface (Image is Acquired). - Perform rendering to the Window Surface. - Change to other Surface (for example: PbufferSurface) using the same Context. - Unmake Context from current to ensure commands are submitted. - Rendering commands to the Window Surface will be submitted without Acquire Semaphore. 2. Context from other thread may submit command of another Context without proper Wait Semaphores: - Make Window Surface current in the first context. - Clear Window Surface (Image is Acquired). - Perform rendering to the Window Surface. - Call "glBeginQuery()/glEndQuery()" (or other commands) - this will flush command to the Primary Command Buffer without submitting. - In other Thread and Context make some Surface current (for example: PbufferSurface). - Clear that surface with scissor and unmake Context from current to ensure commands are submitted. - Rendering commands to the Window Surface from the first Context will be submitted without Acquire Semaphore. - Problem will happen even if add Wait Semaphore BEFORE writing rendering commands. Bug: angleproject:7995 Test: angle_end2end_tests --gtest_filter="EGLSurfaceTest.WaitSemaphoreAddedAfterCommands*" Test: angle_end2end_tests --gtest_filter="EGLSurfaceTest.CommandsSubmittedWithoutWaitSemaphore*" Change-Id: I28174ff98fdd09b4117962fc0810cfeeb2a4d1f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194182 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Yuxin Hu a4c7abcb 2023-02-06T10:37:41 Advertise GL_OES_geometry_shader and GL_EXT_tessellation_shader Remove the exposeNonConformantExtensionsAndVersions flag from the GL_OES_geometry_shader and GL_EXT_tessellation_shader extensions enable condition in vulkan backend. All the dEQP tests related to geometry shader and tessellation shader are passing on Pixel 6 and Pixel 7. See reults here: https://atp.googleplex.com/test-runs?offset=0&testName=v2%2Fangle-for-android%2Fangle_deqp_internal_main&trigger=BUILD. Current dEQP failures: dEQP-GLES3.functional.shader_api.program_binary.simple.uniform_reset_on_binary_load GLES31.functional.synchronization.in_invocation.ssbo_alias_overwrite dEQP-EGL.functional.mutable_render_buffer.basic are unrelated to these two extensions. We can remove the exposeNonConformantExtensionsAndVersions flag restriction on exposing these two extensions. Bug: b/238244188 Change-Id: Ide5252e27e2132997d1b3d36c6f2bfe5958be45d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4226312 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Kimmo Kinnunen 9a6c90c8 2023-01-26T14:26:49 Reland "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::Usage 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. Reland: continue to allocate buffers with shared rather than managed mode in BufferPool, as otherwise bug angleproject:7997 is encountered. Bug: angleproject:7975 Change-Id: Iae4e75a85e6d49b20e724ed037a7c14cc0f7693f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4217712 Reviewed-by: Kenneth Russell <kbr@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Kaiyi Li ac0a4a7d 2023-02-03T15:34:32 Add finer memory allocation type ... so that when we hit an OOM we have better understanding on why. Bug: b/266466279 Test: trigger a Vulkan OOM, see detailed allocation logging info Change-Id: I71c1ebd83e18ddb22e7abfd29a785bf4ad6454dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219365 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Kaiyi Li <kaiyili@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Kaiyi Li 9b2f52d2 2023-02-02T14:25:44 Use WARN to log the allocation info on allocation failure ANGLE just strips off the INFO log, so we won't see any logs in production when an allocation failure happens. Change to use WARN instead. Bug: b/266466279 Test: launch with an emulator, see the log output when allocation fails Change-Id: I0a0828176feaf840aaa95f7127a2b90cf9cc653c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219939 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Kaiyi Li <kaiyili@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi b3846714 2022-11-28T11:05:05 Vulkan: Feature to make async queue slow for testing Bug: angleproject:6746 Change-Id: I2573cae2dcf42d177168c55bc2a6d8bb012dde18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227986 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 28da0a3e 2022-11-28T14:43:10 Vulkan: Avoid swapchain recreation on present mode change Bug: angleproject:7878 Change-Id: I5a36c206dc8feb640fc684f92c10c26628633601 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4088907 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Charlie Lao ad81cc95 2023-02-01T16:23:02 Vulkan: Switch CommandQueue::mInflightCommands to FixedQueue mInflightCommands has a limit of size. With std::dequeue, we may end up resize the storage which means moving elements around. This CL switches it to use angle::FixedQueue. This also allows us to make calls to CommandQueue like checkCompletedCommands while other context doing queueSubmit/queuePresent in the future CLs. Bug: b/267682377 Change-Id: Id29641d37929328d00c5b52c019eea34f7189d0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4214507 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 11951f2f 2023-01-31T09:56:16 Vulkan: Add FixedQueue class for CommandProcessor::mTask This CL adds FixedQueue class. It uses std::array for the storage. It supports concurrent push and pop from two different threads. If producer want to push from two different threads, then proper mutex must be used to ensure the access is serialized. Similarly if consumers want to pop from two different threads, a mutex must be used to ensure serialized access. Caller must ensure queue is not empty before pop and not full before push. This CL switches CommandProcessor::mTasks to FixedQueue and moved mSubmissionMutex to protect the serialized submission (i.e, pop from queue). mWorkerMutex is still used to protect push operation. With this change, we now supports continued enqueue to mTask of CommandProcessor while other context is doing CommandProcessor::waitForResourceUseToBeSubmitted(). Bug: b/267348918 Change-Id: I6c5fe288436daa7e0f3bcbbcd16c5d2e5e27f2e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4210653 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 046db15c 2023-01-16T15:25:33 Vulkan: Remove redundant ImageState::sourceType It was the same as ImageState::target Bug: angleproject:7962 Change-Id: I0ed95deaa23087abbe975a99304bae6ea515ab7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4168455 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov a77e8e3a 2023-02-06T16:24:06 Limit logging when invalid calls are not captured. An app was crashing during capture due to a huge volume of such calls: % adb logcat -d | grep 'Not capturing invalid call' | wc -l 20609 There are a couple of cases where validation silently ignores "benign" invalid calls, such as glUniform*(-1, ...): https://crsrc.org/c/third_party/angle/src/libANGLE/validationES.cpp;drc=0c4306fc554c80506eb0f9b833a5d2a5fdd452d5;l=2815 Limit to (separately for active and inactive capture so that we still see these after triggering mid-execution capture). Example log after this CL: 02-07 11:54:45.869 7657 7749 I ANGLE : INFO: FrameCapture (capture inactive): Not capturing invalid call to glUniform1f 02-07 11:54:45.874 7657 7749 I ANGLE : INFO: FrameCapture (capture inactive): Not capturing invalid call to glUniform1f 02-07 11:54:45.882 7657 7749 I ANGLE : INFO: FrameCapture (capture inactive): Not capturing invalid call to glUniform1f (will no longer repeat for this entry point) ... (then I triggered capture) ... 02-07 11:55:13.049 7657 7749 I ANGLE : INFO: FrameCapture (capture active): Not capturing invalid call to glUniform1f 02-07 11:55:13.049 7657 7749 I ANGLE : INFO: FrameCapture (capture active): Not capturing invalid call to glUniform1f 02-07 11:55:13.050 7657 7749 I ANGLE : INFO: FrameCapture (capture active): Not capturing invalid call to glUniform1f (will no longer repeat for this entry point) Bug: b/267795212 Change-Id: I2f150cfa5b4c74fc1ebe5abeb1201cc4caad80e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4224875 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Igor Nazarov 0ee67145 2023-02-06T18:08:26 Vulkan: Fix bug with ContextVk::mWaitSemaphores processing. Regression: 2e5ca217ca134a7ae4e241e2f7e4cfa637305af7 Vulkan: Let each current context has its own QueueSerial. Problem details: - Call to finishImpl()/flushImpl() will skip mWaitSemaphores processing when there are no pending commands. - finishImpl() will call clearAllGarbage() that will clear all mCurrentGarbage. - However, some mWaitSemaphores may be in the mCurrentGarbage (Semaphore created in SyncHelperNativeFence::serverWait()). Bug: angleproject:8007 Test: angle_end2end_tests --gtest_filter="EGLSyncTest.AndroidNativeFence_VkSemaphoreDestroyBug*" Change-Id: Ia51663eae739b505ca00437cea4ae71526dedbfb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4225392 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Charlie Lao b930cdbf 2023-01-31T12:27:42 Vulkan: Make CommandProcessor only wait for required work CommandProcessor::waitForResourceUseToBeSubmitted() is waiting for all works in the mTasks to be submitted. This CL makes it only wait until the requested ResourceUse has been submitted to vulkan. The reason waitForResourceUseToBeSubmitted is currently waiting for all mTasks to empty is because submission can only occur in worker thread. In this CL, this has been changed so that submission can come from any thread. In the case of waitForResourceUseToBeSubmitted, since we are waiting, we could rather just drain the mTasks in the calling thread. This avoid thread hoping, and more importantly, able to get rid of the idle conditional variables and make code simpler. Bug: b/267348918 Change-Id: Ia55dc4bc93925cf926aad5b53936cbc42036ac38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4210650 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov a88d9f03 2023-02-07T02:37:53 Vulkan: Refactoring in RenderPassCommandBufferHelper. This is a follow-up refactoring after CL: cae00d9bba91bd6857d71c07b853dba8485e2ab8 Vulkan: Cleanup shared ring buffer cmd alloc feature. "mCurrentSubpass" naming is a bit confusing. When custom Vulkan secondary command buffers are used, "mCurrentSubpass" is always "0". This is because custom command buffers allows storing multiple subpasses. This CL renames this member into "mCurrentSubpassCommandBufferIndex", to clearly state that it is refer to command buffer index of a current subpass. Custom command buffers will always use single buffer ("0"), while Vulkan secondary command buffers will have a buffer per subpass. Bug: b/256666069 Change-Id: I6777e3ca4ee57513e1c36f05f8d223eb086b095a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227072 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Igor Nazarov 001b004d 2023-02-07T00:48:37 Vulkan: Fixed assert in DedicatedCommandBlockPool onNewCommand() It is valid to allocate "kBlockSize" bytes. Bug: b/256666069 Change-Id: I0cd37a450af3de476c05e7681f32cdae5916d56b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227071 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Yuly Novikov 36a4b33c 2023-02-07T17:41:01 Remove valid_param_values.h exception from export_targets Fixed upstream Bug: chromium:1412096 Change-Id: Iedb91040a835015301e1395310eea57f4744732f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4225034 Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Kenneth Russell c799074c 2023-02-06T21:52:41 Metal: Implement EXT_disjoint_timer_query. Time-elapsed query objects allocate and deallocate storage slots in the CommandQueue. Command buffers register themselves with these slots (if active) upon allocation, and upon completion, accumulate their execution time in the slot. Query objects accurately track completion and report the total accumulated execution time for all command buffers issued while the time-elapsed query was active. Timestamp queries are not implemented. A pointer to implementation suggestions has been added to the code. Tested with the WebGL conformance test: conformance/extensions/ext-disjoint-timer-query.html Fixed: angleproject:7828 Change-Id: Ia022d0f3a52f2098bd01cf96f7cc20e3d347197e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4226410 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Caleb Raitto 95c60d90 2023-02-07T16:39:46 Fix broken links https://chromium-review.googlesource.com/new-password serves a 404 -- it's changed to https://chromium.googlesource.com/new-password Bug:chromium:1412557 Change-Id: I229d8f493d2452c929b872ac79cb3434e6ceeaab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4224884 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brian Sheedy 2510afd2 2023-02-02T13:30:26 Enable Skia Gold inexact matching Enables inexact matching for ANGLE tests that use Skia Gold using the fuzzy algorithm. This will allow images to be auto-approved if it appears that the differences are due to rounding. Bug: angleproject:7985 Change-Id: Iee791ff2bd06ce426d27e05cf5a6eb0058e857af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219862 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov 1857345f 2023-02-07T10:18:25 Improve logging when crashing due to locked screen. When screen is locked we see this message in logcat: 02-07 10:13:42.663 1623 4713 V SplashScreenExceptionList: SplashScreen checking exception for package com.android.angle.test (target sdk:33) -> false followed by ANGLE crash due to nullptr. Bug: chromium:1405504 Change-Id: Ib3c00cae160e950f8207c9cc0297c92c8b8afe98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227987 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 3886af6e 2023-01-16T15:17:40 Vulkan: Generalize AHB optimization prohibitions ... to all external images. Bug: angleproject:7962 Change-Id: Ib8e090b995330b651865953057869adb4d14c83b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4169559 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Igor Nazarov ef056a06 2023-01-20T14:15:48 Vulkan: Use SubmitPolicy::AllowDeferred whenever possible. Using of SubmitPolicy::EnsureSubmitted is not necessary, because there are finishQueueSerial() call immediately after that. Changing to AllowDeferred avoids extra waiting call (NO-OP) and saves some CPU cycles. Bug: angleproject:8001 Change-Id: Id618253a4b59d006975044eb437ac60468199a98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194187 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll a54f91d0 2023-02-07T10:01:45 Roll SwiftShader from bcb8f46b86b7 to 938d3a1fac4d (2 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/bcb8f46b86b7..938d3a1fac4d 2023-02-06 bclayton@google.com Merge changes Icd615355,I590a161a 2023-02-06 syoussefi@google.com Support switching present modes with swapchain maintenance1 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 angle-team@google.com,jonahr@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: angleproject:7878 Tbr: jonahr@google.com Change-Id: I330d88ca4740abd7d211693327e0c2aaa6479f28 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227050 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll cc4834d2 2023-02-07T10:01:17 Roll vulkan-deps from 57f61361acfb to 223515618c53 (5 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/57f61361acfb..223515618c53 Changed dependencies: * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/e9dc2c8ce1..0ce2bc4ce0 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/23d8187e72..96f49d713e If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,jonahr@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: jonahr@google.com Change-Id: Ic89a9d1758e1c577567ada1ff0d360b52e30d6e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227842 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll a12dd26c 2023-02-07T07:00:02 Roll Chromium from 20c3dc51aba5 to 22b1fa2b9cc1 (546 revisions) https://chromium.googlesource.com/chromium/src.git/+log/20c3dc51aba5..22b1fa2b9cc1 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,jonahr@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/d0fad16496..a88dbf7fdc * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/5408fe0e01..8b4b823eed * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/549781a48c..31cf778cc2 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/0cb236a8e6..38eb24c9f2 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..6488cadd2f * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ef2d011ad3..2c90793139 * third_party/r8: ChcFHxz1-A0Ts6xPtVwnVK2cqjRVmQTv4QRFYJ_et80C..Ned_emxwurmNCGpvlG5BpLkBfs4sQkz1GvFudutb2TAC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/44e5e39a90..6e5ae687b5 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/984e0a33ee..2c56755363 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/5f50a38e7b..be10dc8b8c No update to Clang. Bug: angleproject:7998 Tbr: jonahr@google.com Change-Id: I632c6e493d2e9eade9308c78638ef0d05fc67582 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227632 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov fa0681d1 2023-01-17T17:43:48 Vulkan: Per Context Serial cleanup. Comment in the "OutsideRenderPassCommandBufferHelper::reset()" is misleading. New "mQueueSerial" is always generated after "RendererVk::flushOutsideRPCommands()". This change removes comment and invalidates "mQueueSerial" to catch possible errors. Call "generateOutsideRenderPassCommandsQueueSerial()" in the "ContextVk::flushImpl()" only when needed. This call is necessary only with empty submission with only "signalSemaphore" and NO OutsideRP commands are written inside the "flushImpl()" (mIsAnyHostVisibleBufferWritten or mGpuEventsEnabled). Bug: b/267806287 Change-Id: Ibc547f97a6b38f70ad3d5901eca7b659b93014c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4218363 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Alexey Knyazev db86154e 2023-02-03T00:00:00 Adjust TextureState::isStencilMode Backends that need special setup for sampling stencil data rely on the TextureState::isStencilMode() helper function. Ensure that it returns true only when: * the sampled texture has a combined depth-stencil format and the depth-stencil texture mode is set to stencil, OR * the sampled texture has a stencil-only format. New tests cover sampling of all six depth, stencil, and combined depth-stencil formats with both modes. Bug: angleproject:2373 Change-Id: I2b47dc86aea44de507f9eb8d301a0a6d5211aee4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4218603 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 3e5b36e4 2023-02-03T14:23:10 Vulkan: ContextVk::finishImpl only wait for context's serial ContextVk::finishImpl() right now calling mRenderer->finish() which wait for everything to finish, including other unrelated context's submission. This CL changes it to only wait for this context's mSubmittedResourceUse. Bug: b/267806287 Change-Id: I0f31d561395da4fed7b9c93fd2adb9e5d8a16222 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4220016 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov cae00d9b 2023-01-17T18:44:48 Vulkan: Cleanup shared ring buffer cmd alloc feature. Changes: - Simplified "SharedCommandBlockPool" interface. Removed "ptrOut" and "usesCommandHeaderSizeForOffsetOut" parameters, because "headerOut" has exactly the same value. - Refactoring of "SharedCommandBlockPool" classes. Some public methods made private, inline, or moved into ".cpp". - Replace some getters with more specific/restrictive methods: - "RingBufferAllocatorBuffer::getStorageSize()" -> "isEmpty()" - "CommandBufferHelperCommon::getAllocator()" -> "hasAllocatorLinks()" - Added extra ASSERT()s. - fixed typo "kMinRingBufferAllocatio(r)Capacity" - other minor modifications. Bug: angleproject:6401 Bug: b/256666069 Change-Id: I8f5c1c928bac5f8ecdfce7d411834f7ea39d11ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4218364 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao b96f3abd 2023-02-03T13:12:29 Vulkan: Make Context::mLastSubmittedSerial to QueueSerial Right now Context::mLastSubmittedSerial and mLastFlushedSerial are all Serial type instead of QueueSerial. Most places we do need QueueSerial. This CL changes them to QueueSerial type. This simplifies and improves code readability. No actual functional change is expected with this CL. Bug: b/267806287 Change-Id: Ib00cae2637ee9ed95e5fc00060c63017b04e26c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219944 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Yuxin Hu 3159a4da 2023-02-03T17:58:15 Add temp gn_response_file to $(genDir) directory in Android build According to https://android-review.git.corp.google.com/c/platform/external/angle/+/2420140, the Android source tree will be made read-only eventually. Move the temporary file to the $(genDir) directory. Bug: None Change-Id: I1f39c2ee52f15dba54f88a700ac9d571c3860d37 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4222356 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Mohan Maiya 11366cbb 2023-02-06T09:53:27 Vulkan: Bug fix in flushDescriptorSetUpdates(...) Return the size of mWriteDescriptorSets instead. Bug: angleproject:6776 Change-Id: I2af36975b82c34bf4f4f70a374602546f84ace90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4225117 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll ba7bae16 2023-02-06T10:00:59 Roll vulkan-deps from 525984c7fd54 to 57f61361acfb (2 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/525984c7fd54..57f61361acfb Changed dependencies: * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/7823b8ff4a..e9dc2c8ce1 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/e7b63ce7ba..23d8187e72 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://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: I00ca437448926bd00a3f2382f39205cf47b11cae Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4223258 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll db8396fa 2023-02-06T07:01:24 Roll Chromium from c2710ae68385 to 20c3dc51aba5 (334 revisions) https://chromium.googlesource.com/chromium/src.git/+log/c2710ae68385..20c3dc51aba5 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,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/1c9adcfde5..d0fad16496 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/cf6f58c486..5408fe0e01 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/7a7a3a7a4c..549781a48c * testing: https://chromium.googlesource.com/chromium/src/testing/+log/bf8cb5afa2..0cb236a8e6 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/b24ed0c596..fd77243c4e * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..d0d703ea30 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/a02b4bf030..ef2d011ad3 * third_party/r8: RCJUiVifOpLrzaJM1XdBGelT-t1wNV68fhnfMQb55ywC..ChcFHxz1-A0Ts6xPtVwnVK2cqjRVmQTv4QRFYJ_et80C * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/b5701a1245..5f50a38e7b No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: If2c03cfa011ec6a2565da69875c87dcc1d790367 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4222623 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll c58d7079 2023-02-04T00:16:59 Manual roll vulkan-deps from 7ab598f59574 to 525984c7fd54 (14 revisions) Manual roll requested by ynovikov@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/7ab598f59574..525984c7fd54 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/7341a21b34..4386679bcd * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/459fa67937..4e2fdb2567 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/d8759a140b..7823b8ff4a * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/c5d638465e..e7b63ce7ba If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://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: I07054c9684fdada819ff6db8e97d4463a8dbe07e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4220727 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
angle-autoroll 6bdd90a7 2023-02-02T21:36:41 Manual roll vulkan-deps from c7184adab227 to 7ab598f59574 (12 revisions) Manual roll requested by ynovikov@google.com Suppressing VUIDs: "VUID-VkAttachmentDescription2-stencilStoreOp-parameter", "VUID-VkAttachmentDescription2-storeOp-parameter", https://chromium.googlesource.com/vulkan-deps.git/+log/c7184adab227..7ab598f59574 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/58d302cfa2..7341a21b34 * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/199d0cb8a9..459fa67937 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/8a0fe779e5..d8759a140b * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/3bc9d7c0c5..ebb932a402 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/df9d118bb1..e1940bd368 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/99b147ad63..c5d638465e If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://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: chromium:1412096 Change-Id: Ie97d47f81bfd367e18602bfae885ba487bc732e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219865 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
angle-autoroll 586f695a 2023-02-03T19:22:14 Manual roll Chromium from 821732c56366 to c2710ae68385 (252 revisions) Manual roll requested by ynovikov@google.com https://chromium.googlesource.com/chromium/src.git/+log/821732c56366..c2710ae68385 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,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/f7baf4b094..1c9adcfde5 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e83fbd9f8e..bf8cb5afa2 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..30acb42089 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/963e01c76c..a02b4bf030 * third_party/r8: 62vFXGUT2i7EWPYHPz0HWRCU3mgfJYL-7MtIX-Xo0LwC..RCJUiVifOpLrzaJM1XdBGelT-t1wNV68fhnfMQb55ywC * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/d644f294b8..984e0a33ee * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/be5ac30e36..b5701a1245 No update to Clang. Bug: angleproject:7985,angleproject:8003 Tbr: ynovikov@google.com Change-Id: Ia5717df63d399f2920eac05cff4ebe0558cd13eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219008 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Yuly Novikov 0b3cca88 2023-02-03T22:44:31 Bypass commit message presubmit checks on manual rolls Bug: angleproject:4683 Change-Id: I7e6b3655acfc7adde5bb0da31133e8eca9904207 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4221696 Reviewed-by: Roman Lavrov <romanl@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov b925c43e 2023-02-03T21:12:48 Revert "Vulkan: Remove platform restriction of EGL_ANDROID_native_fence_sync" This reverts commit f852187dfbb094a981331a584d65dc5a4069644e. Reason for revert: Suspect for crashes on Fuchsia https://chromium-review.googlesource.com/c/chromium/src/+/4221336 https://cr-buildbucket.appspot.com/build/8790151118736391057 Original change's description: > Vulkan: Remove platform restriction of EGL_ANDROID_native_fence_sync > > Remove platform restriction of EGL_ANDROID_native_fence_sync > extension except for Mac OS. > > Bug: angleproject:7834 > Change-Id: I116f44d8baca9cdcdd90013ca173b04461d06ae1 > Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4027707 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: mohan maiya <m.maiya@samsung.com> > Commit-Queue: mohan maiya <m.maiya@samsung.com> Bug: angleproject:7834 Change-Id: I2b7381fd1702be578014539cbc96bfa7ace9c295 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4218602 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
angle-autoroll 30a5b24c 2023-02-03T20:02:51 Roll VK-GL-CTS from 435efeefbc72 to a13cbc855993 (6 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/435efeefbc72..a13cbc855993 2023-02-03 gleese@broadcom.com Simplify test setup for descriptor indexing 2023-02-03 gleese@broadcom.com Run descriptor_indexing tests in more places 2023-02-03 slawomir.cygan@intel.com Fix dispatching to custom device 2023-02-03 rgarcia@igalia.com Add more tests for off-screen viewports 2023-02-03 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5 to vk-gl-cts/main 2023-02-03 quic_mnetsch@quicinc.com Notice of withdrawal of Vulkan CTS 1.3.1.x If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,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: I19fdae34e856929505553a1f179a98326a5f3986 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219010 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Yuly Novikov 99063e20 2023-02-03T16:56:25 Skip flaky crashing test on TSAN MultithreadingTest.CreateMultiSharedContextAndDraw Bug: angleproject:8002 Change-Id: I58075b24f6767e4c23b8787234eff93b29cb0560 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4218362 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mark Lobodzinski 173003af 2023-02-02T13:19:57 Tests: Add Lilys Garden trace Test: angle_trace_tests --gtest_filter=TraceTest.lilys_garden bug: b/267577743 Change-Id: I5dc64293767c30a0e4f79ca5779db092d34a9998 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219853 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Sungyong Choi f852187d 2022-11-15T17:26:47 Vulkan: Remove platform restriction of EGL_ANDROID_native_fence_sync Remove platform restriction of EGL_ANDROID_native_fence_sync extension except for Mac OS. Bug: angleproject:7834 Change-Id: I116f44d8baca9cdcdd90013ca173b04461d06ae1 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4027707 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Igor Nazarov 0210b46d 2023-02-01T14:01:59 Vulkan: Minor CommandQueue implementation refactoring. This is a preparation for the follow-up wait semaphore bug fix. Bug: angleproject:7995 Change-Id: Ie509366d5bbb73b32ba6c0e6a0ac8357c450fbbc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4215391 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Alexey Knyazev 4391d807 2023-01-19T00:00:00 Metal: Fix gl_FragDepth shader specialization Adjust fragment shader variants cache to account for depth attachment presence. Fixed: angleproject:7961 Change-Id: Ia6390d336d8b5c4abceb1050853e0665f117b156 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4218391 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
angle-autoroll 874d9f47 2023-02-03T08:11:13 Roll Chromium from 7a3786ad50af to 821732c56366 (585 revisions) https://chromium.googlesource.com/chromium/src.git/+log/7a3786ad50af..821732c56366 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,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/5c03a8b6f5..f7baf4b094 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/9ad5f9f679..cf6f58c486 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/bd44075f85..7a7a3a7a4c * testing: https://chromium.googlesource.com/chromium/src/testing/+log/741680a347..e83fbd9f8e * third_party/android_build_tools/lint: EPj7vnLteKz9kMQ6x4ZPaM5E20Bt4I0wTdrxdBpruZMC..sZdG1MNQ0xJujrekhrJYNg_olHerEdSIrcRjrsfZDC4C * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/36806aa421..b24ed0c596 * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/0ba8b5fcef..cac1c86a35 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..7b05da8c91 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/15d51f9304..963e01c76c * third_party/fuchsia-sdk/sdk: version:11.20230201.0.1..version:11.20230202.3.1 * third_party/libjpeg_turbo: https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git/+log/ed683925e4..0b6e6a1522 * third_party/r8: i-xj1XQfYv47U_8T1snqgowSVDIvXvHItrVpFCN4nn4C..62vFXGUT2i7EWPYHPz0HWRCU3mgfJYL-7MtIX-Xo0LwC * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/252998ca96..d644f294b8 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/3458b47915..be5ac30e36 * tools/skia_goldctl/linux: ul0Ejt3hE-hNm-xrN3jxGd6SFlFzVFm4cq7SAAv9IqEC..96rbK3aat75vEXP7ECt3n7am23k8o4IW1Kj2NGUovQIC * tools/skia_goldctl/mac_amd64: q-1B0yTVQmVu1-XJkvUYoteFrkfc2Eta4WLrxRbFALwC..FntW8cjbXgVS_GvJvQvtt-7TJNG3fIimvtTYIZk0D1oC * tools/skia_goldctl/mac_arm64: C18lj3_4urWhcxKEOAzh2sh0G0yCQrGUnTmNyJ-12aUC..NZBp40siQ-lxQNC8b1WfCOirUrl613zS5Kvaux4g0cwC * tools/skia_goldctl/win: Rn37xdW-lp8RRtq80zmZLmjHFNgIO7AK6c5KR4V7-5IC..ENCJikCHD8vdfDSnlM_pfnzJG4G3uRkrN2s6giSlxWcC No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: I2ee4bc0af327249a62911f1d345994cd13a82690 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4221371 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Mohan Maiya fee24cfb 2023-02-02T09:56:12 Vulkan: Optimize BindingPointer move-constructor Bug: None Change-Id: Iee609d51a8359a124889cd2cfb4fbfb0aeadf62c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4218197 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
angle-autoroll 2f3ce7b6 2023-02-01T10:01:30 Roll vulkan-deps from 30323acb3089 to c7184adab227 (11 revisions) Suppressed VUID-VkImageCreateInfo-pNext-00990 introduced in https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+/64da29612fe6f8f2922101a5ef64f807db860b6b https://chromium.googlesource.com/vulkan-deps.git/+log/30323acb3089..c7184adab227 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/4e9cde50bb..58d302cfa2 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/fcfc3c580c..8a0fe779e5 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/dda7872300..3bc9d7c0c5 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/ea1305065a..99b147ad63 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://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: chromium:1412096 Change-Id: Ie6ef81d3ecb35670bcb9632096cc99f57012ef5d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211601 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 1703c730 2023-02-02T10:29:12 Fix glMapBufferRange() failure with D3D11 backend ID3D11DeviceContext::Map() with flag D3D11_MAP_FLAG_DO_NOT_WAIT will fail and return DXGI_ERROR_WAS_STILL_DRAWING, if the GPU is not yet finished with the resource. It is not equivalent to GL_MAP_UNSYNCHRONIZED_BIT. So we shouldn't use D3D11_MAP_FLAG_DO_NOT_WAIT for glMapBufferRange() with GL_MAP_UNSYNCHRONIZED_BIT. Bug: angleproject:8000 Change-Id: Ifb2c10d3d102f7f9efdd6d3e9f56f04446b26d38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219251 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org>
Geoff Lang 9b00af52 2023-02-01T11:10:32 Metal: Add an in-memory MTLLibrary cache. Add a small cache for (msl + compile parameters) -> MTLLibrary at the egl::Display level. In regular executions of Chrome, the same shaders (particularly vertex) are compiled multiple times in different programs. Tested for a regular Chrome startup + open wikipedia + motionmark 1.2: 112/282 (40%) cache hits. Several different caching methods were profiled (LinkProgram perf test) - struct key with std::map : 303309 - struct key with std::unordered_map : 308090 - binary blob key with std::map : 263595 - binary blob key with std::unordered_map : 286051 - struct key + is_transparent with std::unordered_map : 304877 - struct key + is_transparent with absl::flat_hash_map : 335686 Using is_transparent allows us to search the hash map without copying the shader source string to construct the key structure. Bug: chromium:1385510 Change-Id: Ieec4ba526fe286276a4af7114d89cde32a8f9e1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4214012 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
angle-autoroll 36199fa9 2023-02-02T19:25:12 Roll VK-GL-CTS from bbf05746bf87 to 435efeefbc72 (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/bbf05746bf87..435efeefbc72 2023-01-31 marcin.zajac@mobica.com Vulkan video only for windows and linux If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,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: I1763ad11ec8184217c17484e8e27c789dd49eab2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219852 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Kyle Piddington b23bf47c 2023-01-25T18:50:40 Reland "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) Reland: Fix an issue where the default uniform block's final size was not aligned to the default uniform block's alignment requirements, causing crashes with the debug layer enabled. Bug: angleproject:7137 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> Change-Id: I89d3b817675486fde73b91b0be0f4c25986d4ba5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4209867
Jonah Ryan-Davis 587a1969 2023-02-02T11:36:54 Enable X11 and OpenGL backends for CastOS. X11 was disabled on CastOS back when 'use_x11' was copied over from Chrome. There have been changes in ozone and CastOS is now available on ozone x11, so ANGLE should support it too. The GL backend was also left out when is_castos is true. This CL should be followed up by a cleanup CL for ANGLE's gni file so we can avoid these mistakes. The follow-up CL should be verified as a no-op. Bug: chromium:1409689 Change-Id: I6111af41f2e46b8451f19653a6b77c12d277dbe2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219253 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev 17931e23 2023-01-27T00:00:00 Fix stencil and depth/stencil data uploads Multiple changes were made to depth and stencil load functions, removing redundant code and fixing issues. Failures were caused by incorrect assumptions about component locations in combined formats. * D32_FLOAT_S8X24_UINT has the same layout as GL_FLOAT_32_UNSIGNED_INT_24_8_REV * D24_UNORM_S8_UINT has stencil data in its MSBs, while GL_UNSIGNED_INT_24_8 puts it in LSBs. Bugfixes * Added LoadD24S8ToS8D24 that swaps D24 and S8 components * Added LoadS8ToS8X24 for stencil-only uploads on D3D * Replaced LoadD24S8ToD32F with LoadD32ToD32F * Fixed D and S extraction in LoadD24S8ToD32FS8X24 * Fixed stencil load and store in LoadD32FS8X24ToS8D24 and LoadD32FS8X24ToD32FS8X24 * Fixed S8_UINT subresource updates in Vulkan * Fixed D24_UNORM_S8_UINT subresource updates from GL_FLOAT_32_UNSIGNED_INT_24_8_REV data in Vulkan Cleanup * Renamed LoadUNorm16To32F to LoadD16ToD32F * Removed LoadUNorm32To32F, replaced it with LoadD32ToD32F * Renamed LoadR32ToR24G8 to LoadD32ToX8D24 * Renamed LoadD32FS8X24ToD24S8 to LoadD32FS8X24ToS8D24 * Removed unused LoadG8R24ToR24G8 * Removed Metal-specific LoadS8D24S8ToD32FX24S8, made use of the fixed LoadD24S8ToD32FS8X24 instead * Simplifed LoadD24S8ToD32F Added Texture2DTestES3.TexImageWithStencilData. Fixed: chromium:1408004 Fixed: angleproject:5317 Change-Id: I231345353aa4a7cebe46ded8458ac80de2c59e01 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4203427 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
angle-autoroll 8fbd85b9 2023-02-02T10:01:01 Roll SwiftShader from d25c7a174ad7 to bcb8f46b86b7 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/d25c7a174ad7..bcb8f46b86b7 2023-02-01 ossu@google.com Fix timeline semaphore wait criteria 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 angle-team@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in 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: I53f6463e2788b5e57272aaa864787770a7be0cdc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4214541 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll baeec4db 2023-02-02T07:01:27 Roll Chromium from f19a46134fe2 to 7a3786ad50af (602 revisions) https://chromium.googlesource.com/chromium/src.git/+log/f19a46134fe2..7a3786ad50af If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,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/e0df145ecb..5c03a8b6f5 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/295c6e5037..9ad5f9f679 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/59bae40d83..bd44075f85 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/3eb5565c58..741680a347 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/9b5f27f99a..cd843b25b4 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..a9dcdfad8a * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/3d072ab6fb..15d51f9304 * third_party/fuchsia-sdk/sdk: version:11.20230131.2.1..version:11.20230201.0.1 * third_party/ijar: https://chromium.googlesource.com/chromium/src/third_party/ijar/+log/b35e191547..17f06d102a * third_party/r8: 70YOdNk3TbsXbowCjyebxQrbC-pu2F4u251-fFlaRtIC..i-xj1XQfYv47U_8T1snqgowSVDIvXvHItrVpFCN4nn4C * tools/luci-go: git_revision:c41d94e382727fc5276cd2771741990543fce337..git_revision:46eca1e3a280c340bf58f967aaded13c87ca3859 * tools/luci-go: git_revision:c41d94e382727fc5276cd2771741990543fce337..git_revision:46eca1e3a280c340bf58f967aaded13c87ca3859 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/05c4d345e8..252998ca96 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/387eee2a81..3458b47915 * tools/skia_goldctl/linux: 9glqhfSvId83E1ikYW3-hUNVnGTKJrqBXJzQiwQ8W6kC..ul0Ejt3hE-hNm-xrN3jxGd6SFlFzVFm4cq7SAAv9IqEC * tools/skia_goldctl/mac_amd64: q5cPeIQGzPUjOOyls1AV0My4j9ARpQ6zs38mm6gS1AMC..q-1B0yTVQmVu1-XJkvUYoteFrkfc2Eta4WLrxRbFALwC * tools/skia_goldctl/mac_arm64: xCL2XArq-EtiqFzAvhC31MCT3cgRX6EYYmgWnbZWMZoC..C18lj3_4urWhcxKEOAzh2sh0G0yCQrGUnTmNyJ-12aUC * tools/skia_goldctl/win: YmyQ0Bq7rOF_eFO1hzHpwUYG4aRCf6zUK9cwc2LuOFIC..Rn37xdW-lp8RRtq80zmZLmjHFNgIO7AK6c5KR4V7-5IC No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: I670fb33b46f616b89f036f301df560ab836b4a7b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4216476 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Dave Tapuska 2e9909f5 2023-01-31T13:50:08 Metal: Enable Metal on iOS in gni build. Use is_apple instead of is_mac to enable metal on iOS. Some iOS simulator Metal tests needed to be added to the test expectations as they fail on the Intel buildbot. These will to be progressively fixed out of band. Bug: chromium:1411704, angleproject:7994 Change-Id: I4df036d76f48d165da444f769607194dbe7d4957 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4210649 Auto-Submit: Dave Tapuska <dtapuska@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Kimmo Kinnunen 91fdf3e6 2023-01-31T11:38:32 Include atomic in RingBufferAllocator.h w/ ANGLE_ENABLE_ASSERTS Fixes the compile error. Bug: angleproject:7986 Change-Id: I2aef9c4c0b7d499d3cf382abb8fcf8dd83398f52 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4205888 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Kimmo Kinnunen 0bbb5033 2023-01-31T13:33:09 Check if multidraw calls are no-ops Patch by: David Li <jingye_li@apple.com> Avoid assertion when prepareForDraw would try to use a program state without program. Fixed: angleproject:7990 Change-Id: I9cdac0467deafb1975664ee999067ca3813aaa7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4205893 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Igor Nazarov 5a2d1ce9 2023-01-17T16:16:39 Vulkan: Disable Imageless Framebuffer in some conditions. Some Samsung Vulkan drivers crash in vkCmdClearAttachments() when imageless Framebuffer is used to begin Secondary Command Buffer before the corresponding vkCmdBeginRenderPass(). Bug: None Change-Id: I09833af6e529f64f534d9d33825a53eee5c49212 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194179 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 3e65d0b6 2023-02-01T15:17:43 Test: Fixed EGLContext leak in the EGLSurfaceTest tests. "EGLSurfaceTest.RobustResourceInitAndEmulatedAlpha/*" causes "EGLContext" leak. This test calls "initializeSingleContext()" on "mContext" that was already implicitly initialized in the "initializeSurface*()". Added assertions in order to catch EGLContext/EGLSurface leaking. Fix details: - removed implicit "initializeContext()" call, to remove confusing when it is necessary make explicit call or not. - rename "initializeContext()" into "initializeAllContexts()" to better reflect what it does. - "initializeContext()" now creates contexts unconditionally, like once before. Lazy initialization is not required, because there is no longer implicit call in the "initializeSurfaceWithAttribs()". - Created "initializeMainContext()" instead of calling "initializeSingleContext()" directly. Bug: angleproject:7996 Change-Id: I05954f7a044c12798ac857b877ecede6989526eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4208870 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen 360cd0d1 2023-01-31T12:32:15 Include debug.h in various treeops headers Avoids compile failure if the UNREACHABLE is used due to compile flags. Bug: angleproject:7987 Change-Id: I4655b345648b6b56faaa42030fb8997184c6b7e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4205890 Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 9399c508 2023-01-31T20:37:39 Tests: Add Piano Kids - Music & Songs trace Test: angle_trace_tests --gtest_filter="*piano_kids*" Bug: b/267393674 Change-Id: I77637aa04e4a38b2915f3cd3bcb224468bb6323f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211594 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 6486b25a 2023-01-31T19:59:41 Tests: Add 2 3 4 Player Mini Games trace Test: angle_trace_tests --gtest_filter="*2_3_4_player_mini_games*" Bug: b/267390255 Change-Id: Ia3a20af6126534fb6004a46470fe40316512486c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211592 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
angle-autoroll fea282e5 2023-02-01T07:01:02 Roll Chromium from b51474366e49 to f19a46134fe2 (381 revisions) https://chromium.googlesource.com/chromium/src.git/+log/b51474366e49..f19a46134fe2 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,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/2d1f8e2211..e0df145ecb * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/7a0617ed04..295c6e5037 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/b93c728982..59bae40d83 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e1ea34dd3e..3eb5565c58 * third_party/android_build_tools/bundletool: XIPSJgFHEHN1ogOJqWVktlbl8PTfLZdNf_G2h4GcnrYC..TpDdbF-PPgwL0iOVsdLM07L-DUp2DV3hgzCMmPd2_GUC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..5a468ccd91 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/94b0eb1bb5..3d072ab6fb * third_party/fuchsia-sdk/sdk: version:11.20230130.3.1..version:11.20230131.2.1 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/e7ecbaa022..05c4d345e8 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/c2c154c471..387eee2a81 No update to Clang. Bug: angleproject:7003 Tbr: ynovikov@google.com Change-Id: I008d347ae56323b6d7f07411703dcba6b08e7a64 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211598 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Cody Northrop 754c923b 2023-01-31T16:32:31 Tests: Add Callbreak trace Test: angle_trace_tests --gtest_filter="*callbreak*" Bug: b/267369413 Change-Id: I00910bf3f683eeb35e3a9c2320fb5c62a82a81ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4209863 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 9cc2a0b8 2023-01-30T00:00:00 Remove EXT_polygon_offset_clamp suppressions Bug: angleproject:7957 Change-Id: I4bd9ff8433964a5d0b997f50cb2ecbe4a6eaa9c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4205887 Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Mark Lobodzinski e4dfdde9 2023-01-31T11:35:02 Tests: Add Age of Origins Z trace Test: angle_trace_tests --gtest_filter=TraceTest.age_of_origins_z Bug: b/267289988 Change-Id: Ic7ca3270879b83a47101e58b86bad056a002dbf6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4209853 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
angle-autoroll ad477304 2023-01-31T17:57:53 Roll Chromium from 7a868f186276 to b51474366e49 (62 revisions) https://chromium.googlesource.com/chromium/src.git/+log/7a868f186276..b51474366e49 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 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/3503664460..e1ea34dd3e * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..b7719ec23a * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/ad343821d4..c2c154c471 No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: Ia62fca5a798f34ac9432bec289d5b751b6ab78ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4209852 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Kenneth Russell fb948319 2023-01-31T18:16:41 Revert "Metal: rewrite default uniforms and uniform blocks" This reverts commit b8bfe6f6c04a6cf4fac81f0363ad23a0b92b22f2. Reason for revert: potential cause of crashes/timeouts in crbug.com/1411755 Original change's description: > 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> Bug: angleproject:7137 Bug: chromium:1411755 Change-Id: I1b6a62d7eb542c3e7ef4b84858ab2683abb66f8b No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4210448 Commit-Queue: Kenneth Russell <kbr@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuly Novikov 6712c48e 2023-01-31T16:09:34 Skip flaky timeout test on Win SwANGLE MultithreadingTestES3.ProgramUseAndDestroyInTwoContexts Bug: angleproject:7992 Change-Id: I6c0df0f7c9e1b037fe67ee955e72fa65a0916c77 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4208869 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuly Novikov c278f038 2023-01-31T15:09:31 Roll chromium_revision 12d1cf2574..7a868f1862 (1099244:1099248) Manual roll to add the dependency: chromium/third_party/android_sdk/public/platforms/android-tiramisuprivacysandbox Change log: https://chromium.googlesource.com/chromium/src/+log/12d1cf2574..7a868f1862 Full diff: https://chromium.googlesource.com/chromium/src/+/12d1cf2574..7a868f1862 Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/b66acf0396..2d1f8e2211 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..b7719ec23a * third_party/fuchsia-sdk/sdk: version:11.20230129.3.1..version:11.20230130.3.1 * third_party/r8: kTwoRbYJ0cNEX_B1XARsNkSFKf4bOHgQCEiP4afsmBUC..70YOdNk3TbsXbowCjyebxQrbC-pu2F4u251-fFlaRtIC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/527cfbb299..44e5e39a90 * tools/luci-go: git_revision:221383f749a2c5b8587449d3d2e4982857daa9e7..git_revision:c41d94e382727fc5276cd2771741990543fce337 * tools/luci-go: git_revision:221383f749a2c5b8587449d3d2e4982857daa9e7..git_revision:c41d94e382727fc5276cd2771741990543fce337 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/9bc0b44c25..e7ecbaa022 * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/568316d425..930bae8b25 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/cd0d8fe0b1..ad343821d4 * tools/skia_goldctl/linux: PZOpm-VdLUuaVE8seo910YRCnqv7Y2BkPcrmUs13RMAC..9glqhfSvId83E1ikYW3-hUNVnGTKJrqBXJzQiwQ8W6kC * tools/skia_goldctl/mac_amd64: aZ8KYJUPYrRq4f7-Td3nt0et_16S06A0vovOn2c85tIC..q5cPeIQGzPUjOOyls1AV0My4j9ARpQ6zs38mm6gS1AMC * tools/skia_goldctl/mac_arm64: JtcfJFsvsUuaaIajqvwETn8j5hxOSC_YLDszV96Ukn8C..xCL2XArq-EtiqFzAvhC31MCT3cgRX6EYYmgWnbZWMZoC * tools/skia_goldctl/win: qp3u_bn43vFlG3HHG61Co9eOeo52m6SWIw099mHqt9EC..YmyQ0Bq7rOF_eFO1hzHpwUYG4aRCf6zUK9cwc2LuOFIC DEPS diff: https://chromium.googlesource.com/chromium/src/+/12d1cf2574..7a868f1862/DEPS No update to Clang. Bug: None Change-Id: I3e1ad75a9dab67f6543141b16fdca0e2b9df4786 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4208868 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Kimmo Kinnunen ce8ce6f8 2023-01-31T13:06:47 Remove ASSERT from AtomicSerial, use static_assert ASSERT is not constexpr, while the AtomicSerial constructor was. This would cause compile errors. Bug: angleproject:7989 Change-Id: Ib6a438d4c055378d4f2f667285b0d2e99f2522ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4205892 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chia-I Wu 155a94d7 2023-01-27T15:23:56 Vulkan: prefer D24_UNORM_X8_UINT as D32_UNORM fallback D24_UNORM_S8_UINT might need a separate plane or might not be compressible depending on gpus. Prefer D24_UNORM_X8_UINT. Test: glmark2 Bug: b/259570128 Change-Id: I8e30f8dbe35853cc9647f2452a2bde8b2c6a1e26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4201091 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Chia-I Wu <olv@google.com>
angle-autoroll ef1ab207 2023-01-31T10:01:26 Roll vulkan-deps from be674ea25e15 to 30323acb3089 (14 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/be674ea25e15..30323acb3089 Changed dependencies: * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/64ba112ffb..fcfc3c580c * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/9f93cbe76a..93cb25c6a4 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/38379d231d..dda7872300 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/5ff524e935..df9d118bb1 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/93b6b7b808..ea1305065a If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: ynovikov@google.com Change-Id: I0b288c59e3157446e71b09cc8e0eb8cce96edfa0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4205057 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
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>