src


Log

Author Commit Date CI Message
Nicolas Capens cbab97d4 2022-07-29T11:03:21 Remove needless IOSurface alignment validation IOSurface buffers are copied instead of imported directly into Vulkan, since they're not guaranteed to satisfy alignment and padding requirements (see minImportedHostPointerAlignment and vkGetMemoryHostPointerPropertiesEXT). So we don't need to check its alignment as part of eglCreatePbufferFromClientBuffer() validation. Bug: angleproject:7538 Change-Id: Ic449e7cdd60e62cd3009854897ffcd369e32fc7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3792178 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Auto-Submit: Nicolas Capens <nicolascapens@google.com>
Lingfeng Yang 3ccaddf9 2022-07-26T10:02:01 Vulkan: EXT_YUV_target: layout(yuv) support This CL adds support for layout(yuv) in the shader, via a new decoration. The SPIRV decoration enum number is WIP and depends on final spec. The decoration is only active if enabled via a flag in ShaderLang, which will be connected with the feature supports_yuv_target in a future CL. Bug: b/223456677 Change-Id: I29a724e689d1336a3e42c83d7afa944a11e07353 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3765890 Auto-Submit: Lingfeng Yang <lfy@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com>
Shahbaz Youssefi f000215d 2022-07-26T21:16:14 Vulkan: Optimize transform feedback buffer tracking Prior to this CL, if transform feedback was active at the time of render pass closure, its buffers were cached in ContextVk. Later, these buffers were used to close the render pass if they were used for any other reason (such as vertex attribute). However, this meant that the render pass could close unnecessarily if transform feedback was ended right after the render pass is closed. The closure of the render pass was an awkward place to cache the used transform feedback buffers (because at that point, the buffers are actually no longer used). Instead, this change makes sure that the buffers are cached when transform feedback buffers are first used by the render pass, and the cache is cleared at the end of the render pass. Bug: angleproject:4622 Change-Id: I31c0a1e20d48f2e261e2cf37adb0a46db683e6fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788309 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Peng Huang 3dd6f5f7 2022-07-24T18:49:44 Reland "Disable share context lock for Chromium" This is a reland of commit e1741f4ba7dae4f6f09829b9152360544c912d1f Original change's description: > Disable share context lock for Chromium > > Bug: chromium:1336126 > Change-Id: I93b4e738a8816e6b318e5d5823bc9130f17deb37 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3781368 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Peng Huang <penghuang@chromium.org> Bug: chromium:1336126,angleproject:7537 Change-Id: I15811bc2fef0ba22f6ac13d51c72ed96b2a12507 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3792046 Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 5db09e9b 2022-07-21T10:45:12 Vulkan: Try allocate from existing DescriptorPool before create new When we allocate a new descriptorSet, right now we only look at current bound pool or the last pool, or allocate a new pool. We never look at the other pools for the possibility of allocation. This is likely due to we never free descriptorSet in the past. With the recent CLs, we now release invalid descriptorSets when texture or buffer gets deleted or re-specified. This opens up opportunity to allocate from other existing pools before allocating a new pool. This CL changes the allocation logic to add the pass to iterate over existing pools for allocation before allocating a new pool, thus reducing the number of descriptorSetPools. This CL also consolidates DynamicDescriptorPool::getOrAllocateDescriptorSet()'s actual descriptorSet allocation logic with DynamicDescriptorPool::allocateDescriptorSet(). This CL also moves mEmptyDescriptorSets from ProgramExecutableVk to DynamicDescriptorPool so that we will only have one empty descriporSet per pool instead of per program. Bug: b/235523746 Change-Id: I012346acce17f785ee6683ec55fdf21be00ea1a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780847 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 08df7ce4 2022-07-28T10:59:30 Test Runner: Disable --bot-mode on Fuchsia. This flag is a bit hard to get going because of the differences in the Fuchsia system APIs. Disable it explicitly for now to avoid issues when we switch bot configs. Bug: angleproject:7312 Change-Id: I47cd038b198f265a6b60893faf6f50f02be49fda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3792163 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Steven Noonan e7affd55 2022-06-23T13:49:18 d3d11: allow selecting render device by PCI vendor/device ID Similar my change in the Vulkan backend, we can match by PCI vendor/device ID in D3D11 device selection. Bug: angleproject:7460 Change-Id: I6f7bff1dad5b589357693bf747157b2dacb1f69f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3720734 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Auto-Submit: Steven Noonan <steven@valvesoftware.com> Reviewed-by: Steven Noonan <steven@valvesoftware.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Peng Huang e3701f90 2022-07-19T15:19:50 Remove WARN() in getPixelFormatInfo() This WARN() cause log flood on Android while playing youtube videos in Chrome. Bug: angleproject:7509 Change-Id: I42e046d5b0908ef7d3ca0704c27236198026a637 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3773873 Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 80022b96 2022-07-26T21:07:04 Vulkan: Fix xfb buffer redefine to smaller size In 89e11878b275b15735eaf273ababfa6fd43a2e3d, a use-after-free bug was fixed where glBufferData redefined a buffer, leading to a change in storage. This was only tested for the case where the new buffer was larger than the old buffer. When the new buffer is smaller however, another issue remains where the buffer size as cached by the transform feedback object used the old object's size. This is worked around in this change, with a fix for the real issue (that the buffer state is updated after calling into the backend instead of before) coming up. Bug: chromium:1345042 Change-Id: I6c9e9344705fefe49926a14cf6ce73ce84305872 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788308 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuly Novikov fb97cfcd 2022-07-27T11:49:41 Roll chromium_revision 1201dfbc62..85c57e6023 (1027387:1028671) Skip failing dEQP-EGL.functional.image.api.create_image_gles2_android_native_* tests Change log: https://chromium.googlesource.com/chromium/src/+log/1201dfbc62..85c57e6023 Full diff: https://chromium.googlesource.com/chromium/src/+/1201dfbc62..85c57e6023 Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/f14f6d206b..faf85adb8b5817fd75744e98c450f2b9e46ed7a2 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/fe57e98eeb..af18ab7c6f * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/eb79671bfb..6c8f712bc4 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/b954e3e656..039323b945 * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/955e2ff5fb..2a908eebb7 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/1f497ac0b0..844e20e207 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/13bb7f697c..fabdc7fefb * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/8f37aa7698..d76d39e8c8 * third_party/android_sdk/public: tRoD45SCi7UleQqSV7MrMQO1_e5P8ysphkCcj6z_cCQC..-VRKr36Uw8L_iFqqo9nevIBgNMggND5iWxjidyjnCgsC * third_party/android_sdk/public: gMHhUuoQRKfxr-MBn3fNNXZtkAVXtOwMwT7kfx8jkIgC..9lGp8nTUCRRWGMnI_96HcKfzjnxEJKUcfvfwmA3wXNkC * third_party/android_sdk/public: g7n_-r6yJd_SGRklujGB1wEt8iyr77FZTUJVS9w6O34C..RSI3iwryh7URLGRgJHsCvUxj092woTPnKt4pwFcJ6L8C * third_party/android_sdk/public: lL3IGexKjYlwjO_1Ga-xwxgwbE_w-lmi2Zi1uOlWUIAC..eo5KvW6UVor92LwZai8Zulc624BQZoCu-yn7wa1z_YcC * third_party/android_system_sdk: oSfDIvHlCa6W0gS79Q5OOfB9E4eBg3uAvi3BEDN21U0C..RGY8Vyf8jjszRIJRFxZj7beXSUEHTQM90MtYejUvdMgC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..84a7988038 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/debf6402b3..2cd48234f1 * third_party/fuchsia-sdk/sdk: version:9.20220720.2.1..version:9.20220726.2.1 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/3d8d88e8bb..184bc29dd8 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/15fc47eb8b..8c41d19417 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/8e7aadf254..8f4235f7ff DEPS diff: https://chromium.googlesource.com/chromium/src/+/1201dfbc62..85c57e6023/DEPS Clang version changed llvmorg-15-init-15652-g89a99ec9:llvmorg-15-init-17529-ga210f404 Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/3d8d88e8bb600789ba3e798f38ff314521aac524..184bc29dd86c3994a02b4f3feca125ffe785319c/scripts/update.py Bug: chromium:1347817 Change-Id: I6b80fc411a6986d116e121921fcb5223c1964184 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3789322 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Steven Noonan b8e741d2 2022-06-23T13:36:17 Vulkan: allow selecting render device by PCI device/vendor IDs The EGL_ANGLE_platform_angle_device_id extension is deliberately vague about the meaning of "device ID high" and "device ID low", stating it's platform-specific. We can use these for representing the PCI device/vendor IDs that can be discovered via various (OS-specific) external means. Bug: angleproject:7460 Change-Id: Iff462687749e815fa074ef8ff392b6730ef46fa8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3720733 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 0dc29af9 2022-07-26T19:16:16 Context: Also disable ASTC on mState when emulation is disabled. GL_KHR_texture_compression_astc_ldr was incorrectly exposed on the GL_EXTENSIONS string in cases where no native support was available and the emulation was not built. To prevent this the context must disable it on mState.mExtensions in addition to mSupportedExtensions. Bug: angleproject:7415 Change-Id: I1161e460b0b224a03557053b5804c104e270f388 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788402 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Jamie Madill b968b6c9 2022-07-26T14:34:41 Test Utils: Get executable path from command line. This simplifies the process fork test and will allow the test to work on Fuchsia. Bug: angleproject:3161 Change-Id: I5bb5424c44957f2faef1970b3cbc5e52b8aff630 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788297 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Stephen White 3f59c285 2022-07-12T17:29:36 D3D11: implement image load/store format reinterpretation. Reinterpretation requires all UAV textures to be in a TYPELESS format. Implement an ensureUnorderedAccess() that converts the texture's storage to one with the D3D11_BIND_UNORDERED_ACCESS flag, which, prior to this change, was set unconditionally for all textures in an >= ES 3.1 context. If this flag is set at D3D texture creation time, use the appropriate TYPELESS format. Implementation uses a BindFlags struct, which subsumes the existing renderTarget for clarity. Factor out the relevant bits of ensureRenderTarget() into an ensureBindFlags() helper function, and make ensureRenderTarget() and ensureUnorderedAccess() wrappers around it. Add the corresponding typeless formats to the texture format table. Bug: angleproject:7501, angleproject:7520 Change-Id: Id21b9db3229aceca121da6ba6507704417034ec4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780588 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Jamie Madill 83dfd839 2022-06-07T11:57:07 dEQP: Allow running against system GL. Bug: angleproject:7396 Change-Id: I6d6231ebfdea0f1df483c5764b086b14f8384d3d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3692266 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 5c5a14c3 2022-07-19T16:03:08 Tests: Add Battle Of Polytopia trace. Test: angle_perftests --gtest_filter="*battle_of_polytopia*" Bug: angleproject:7529 Change-Id: Ib9ad862fa5d2a3cd761bdbf42b2b91c2fe63f99b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780915 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 4e046256 2022-07-25T17:17:28 Translator: Fix deep copy of loops and branches Fixed nullptr dereference when the loop or branch doesn't have an expression. Bug: angleproject:7518 Change-Id: Ib888634e409dcbc27ef060bb46017e8911097eef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785294 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sungyong Choi 313884ce 2022-06-30T08:49:08 Vulkan: Move dmabuf extensions support Moves dmabuf support functions from DisplayVkWayland to DisplayVkLinux to support other linux winsys. Bug: angleproject:7480 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Change-Id: I2a36557815b8e5c4bab7ec1d9248989345e536c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3735863 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Shahbaz Youssefi 54da2952 2022-07-25T16:00:47 Remove suppressions added due to VK_ATTACHMENT_UNUSED bug This was affecting old Qualcomm-based phones only. Bug: angleproject:3423 Change-Id: Id18c95f8df562d572177035a8cb88327d9f2d200 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785292 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 88dd868f 2022-07-25T06:44:38 FrameCapture: Fix and optimize multi-context reset Follow on to fd89020c This CL: - Fixes missing eglMakeCurrent calls when switching contexts to reset container state - Optimizes when those calls are made, so we only call eglMakeCurrent in Reset when we absolutely have to - Moves MaybeResetContextState to the end, after any per-context reset work has been done Test: Asphalt 9 MEC Bug: angleproject:4599 Bug: angleproject:7507 Change-Id: I52912aa13e3a11735ed3ec93080a21e9cbff113a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3784728 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi be708446 2022-07-25T15:24:52 Vulkan: Remove the bindEmptyForUnusedDescriptorSets workaround Only applied to older Qualcomm-based phones. Bug: angleproject:2727 Change-Id: I37a611e2ff79d898eff9401467407543f3c690b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785290 Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Jamie Madill 673a41ae 2022-07-25T12:41:40 dEQP: Isolate headers in tcuANGLEPlatform.h. Refactoring change only. Will simplify future dEQP changes. Bug: angleproject:7396 Change-Id: I034bf5c421902c53f279e01b0727490909da3990 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785286 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 8e63c6e8 2022-07-25T15:10:11 Remove suppressions for tests which pass with Intel Mesa 20.0.8 Bug: angleproject:3616, angleproject:3614, angleproject:2782 Change-Id: I220d71593270164f77bda92f533608e431c6c9b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780159 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev df879d49 2022-07-22T00:00:00 Return INVALID_VALUE for online BC compression As per discussion with OpenGL ES WG, implementations are allowed to generate INVALID_VALUE when online BC compression is not supported. Bug: angleproject:6441 Change-Id: I0e282c970f1e03afbc590dc9a46b8ce38d869691 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780923 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Peter Kasting 4a14030d 2022-07-22T10:09:53 Avoid streaming a wide string to a (narrow) ostringstream. This stream overload was removed in C++20. Bug: chromium:1284275 Change-Id: I73188e09cc93c7bd475ab1536dac74e92ea12605 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3781611 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peter Kasting <pkasting@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Peter Kasting <pkasting@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop e3933465 2022-07-21T11:35:17 Vulkan: Allow dither for some color blend modes Some color blend modes are known to work with our dither emulation. Test: Candy Crush on Pixel 6 Bug: b/232574868 Change-Id: I1b57e243afcf4643e2cd12f862408050751fa987 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780846 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop fd89020c 2022-07-18T20:26:38 FrameCapture: Reset VertexArray state This change includes three things: - Tracking resources by context - Resetting VertexArray state - Splitting ResetReplay into per-context All three are needed to properly Reset Vertex Array objects. Vertex Arrays are considered container objects, which means they are not shared with other contexts. We've had a hole in Reset where we did not take multiple contexts into account. To address this, we now also track which contextID was used to modify a resource. For objects that need to know which context they are bound to, we track them in a map and return the correct index when getTrackedResource is called. To generate the calls to reset Vertex Array state, we are able to mirror what has been done for other ResourceTypeIDs. In order to properly Reset resources in multiple contexts, we have to bind the correct context before emitting the Reset calls. This has been done for Setup already, so we have a template to follow. With this CL, we now emit multiple functions to Reset state, similar to the following: void ResetReplayContextShared() { // Reset shared objects ... } void ResetReplayContext5() { // Bind the right context eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, context5); // Reset container objects for context5 ... } void ResetReplayContext6() { // Bind the right context eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, context6); // Reset container objects for context6 ... } void ResetReplay() { EGLContext context = eglGetCurrentContext(); ResetReplayContextShared(); ResetReplayContext5(); ResetReplayContext6(); eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE, context); } Test: Ni no Kuni MEC Bug: angleproject:4599 Bug: angleproject:7507 Change-Id: Ic585534f07172474aab0ce1d0396b0b064379f88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3761874 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Charlie Lao 00e48c13 2022-07-20T17:35:01 Vulkan: Destroy DescriptorPoolHelper when its unused. DynamicDescriptorPool keeps an array of DescriptorPoolHelpers. Right now we only grow this array of pools, we never shrink the pool count. This is partly due to we never release descriptorSet. But in the past few CLs, we now release invalid descriptorSet when texture/buffer gets deleted or re-specified. This means we could now have a pool with no valid descriptorSets. This CL adds the ability to actually release the pool when all of its descriptorSets has been released, thus reduce the pool count when a lot of textures have been deleted. Bug: b/235523746 Change-Id: I2d5047269154cc8ece8305408f08f2ad7c9dd8a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780845 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Yuxin Hu b23ea680 2022-07-22T12:06:42 Vulkan: Re-enable multisample framebuffer fetch Bug: angleproject:7351 Bug: angleproject:3586 Bug: angleproject:6195 Bug: angleproject:7512 Bug: b/234173199 Change-Id: Ib70732f8c075de777e534f950a7e421e75969f59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3781613 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov 2b43d630 2022-07-22T14:19:05 Remove unused (and incorrect on Android) mTestSuiteName. On Android it ends up being just: _ Bug: angleproject:7299 Change-Id: I3dabcfcbacc3f43338b6fa91ebd9917e43f783ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780587 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Lingfeng Yang c2aaeadb 2022-07-14T13:27:38 Vulkan: Skip nonexistent attachments when calculating samples When FBO 0 is bound, FramebufferVk can get into a state where the color attachment is considered null (such as surfaceless). Then, getSamples() is called with null color attachment, resulting in an assertion or nullptr crash. Fix getSamples() to respect the color attachments mask. The entry point that brought this about was also a dispatch, not a draw. In a future CL, we should also optimize syncState to not consider draw related state if the task is a dispatch. Also fixes b/234620157 Bug: b/223456677 Change-Id: I8cc969de941f43a2eb66871033d6ec7ddf8b8a66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764435 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com>
Chris Dalton 90fa855b 2022-07-22T10:11:01 Suppress the early_fragment_tests PLS test on Pixel 6 Bug: angleproject:7279 Change-Id: Id56d43f9061e9f6d08388ff49b2f65a88408c145 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3782862 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov adeb750d 2022-07-21T18:49:00 Validate that skipped tests are skipped by suite. Before this change, any test failing to produce trace files would be marked as "Skipped" regardless of whether it was skipped by suite or just failed to produce trace files for some other reason. This change adds FailedToTrace status to differentiate between the two cases. If a test is FailedToTrace it will need to be explicitly added to the capture_replay expectation file (probably SKIP_FOR_CAPTURE). This change caught that OcclusionQueriesNoSurfaceTestES3.SwitchingContextsWithQuery/* was incorrectly specified as NOT_RUN when the intent was to SKIP. Bug: angleproject:5133 Bug: angleproject:7516 Change-Id: I451b4d5fd799d15ef92fab678aa20d2b6cc42c9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3781902 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Lingfeng Yang 7d6f3d94 2022-07-14T13:25:04 glValidateProgramPipelines: Skip draw state error check Certain apps will call this API while having a surfaceless context, making it improperly fail. dEQP tests that previously relied on the full draw states check were actually relying on the part where the draw state check included a check that the pipeline object had programs/shaders. Relax the validation of the pipeline to only include that validation, and not also the framebuffer state / VBO state / etc. Bug: b/223456677 Change-Id: I9211761934668aae8a20f07ac4f36b7f6c1281da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764434 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Roman Lavrov c95e2b7d 2022-07-21T17:03:19 Remove a few cases that are skipped by end2end. Following https://crrev.com/c/3780583. A few obvious NOT_RUN cases where bugs and skipped tests match those in angle_end2end_tests_expectations.txt Bug: angleproject:7516 Change-Id: I63a78b0800d2e4fedfe7d4730df6b55b22508dc4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3779645 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
Chris Dalton d57ce815 2022-07-16T16:33:08 Use "readwrite" PLS images when possible We actually only need readonly/writeonly aliases on ESSL, non r32f/r32ui. For all other cases, this change updates the compiler to emit a single readwrite image. We also optimize this image with the "restrict" qualifier since PLS specifically disallows aliasing. Removing the aliased load and store also eliminates our issue with an Intel driver bug, and all the PLS tests now pass without any workarounds. Bug: angleproject:7279 Bug: angleproject:7398 Change-Id: I350b239793647da33add96509b8f4b1bbef02245 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3767537 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Chris Dalton aa7e6751 2022-07-15T23:33:30 Automatically enable early_fragment_tests when PLS is declared When PLS is polyfilled by shader images, we need early_fragment_tests in order to match the same depth/stencil behavior as when it is implemented as framebuffer fetch. Bug: angleproject:7279 Change-Id: I37f5a8682cc96a14ef247d53ed243e4aceb15f39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3767535 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Chris Dalton 77aa34ae 2022-07-16T13:08:00 Add support for PLS as function arguments Bug: angleproject:7279 Change-Id: I89d5c02148cbdbbd02dc4840ffada2c96c2a849b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3767534 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Roman Lavrov 3a0d7249 2022-07-21T13:38:21 Ignore tests skipped by the suite. This way we don't have to add skipped tests to capture_replay_expectations as well. Bug: angleproject:5133 Bug: angleproject:7512 Bug: angleproject:7516 Change-Id: Iabc5f4738b51ce23890c07b8a0548cbc6bec1274 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780583 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Yuxin Hu d0fe12db 2022-07-20T10:16:38 Vulkan: Disable Multisample Framebuffer Fetch Disable the multisample framebuffer fetch temporarily to unblock the angle to chromium roller. Will re-enable after https://ci.chromium.org/ui/p/chromium/builders/try/win10_chromium_x64_rel_ng/1240846/overview is resolved. Bug: angleproject:7351 Bug: angleproject:3586 Bug: angleproject:6195 Bug: angleproject:7512 Bug: b/234173199 Change-Id: I435b257dd07d973d06d5cacd779e943eed32097b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3777059 Reviewed-by: Roman Lavrov <romanl@google.com>
Peng Huang b78d471a 2022-07-21T09:53:37 Add angle_enable_share_context_lock build flag This flags can be used to enable the share context lock. Without this lock, the client need to use gl calls in a threadsafe way. It is true by default. Bug: chromium:1336126 Change-Id: I984f8cfb0379195f6ebe11b0997e401f2421affa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780582 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Yuly Novikov 115d8361 2022-07-21T13:59:48 Switch Linux Intel testing to UHD 630 GPU Replacing 0x5912 HD 630 with 0x9bc5 UHD 630. Also updating Mesa from 19.0.2 to 20.0.8. Since no problems were observed on the new configuration during the experiment, removing max-processes and flaky-retries workarounds. Bug: chromium:1342945 Change-Id: I51150092c67802ffd54796dd3b067cd6473dfb86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780922 Reviewed-by: Roman Lavrov <romanl@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Chris Dalton c460c299 2022-06-21T11:20:45 Implement GLSL additions for ANGLE_shader_pixel_local_storage Specs out, implements, and thoroughly tests the GLSL additions for ANGLE_shader_pixel_local_storage. Adds a simple transformation that rewrites PLS directly into shader images. Updates the existing PLS tests to use the newly built-in PLS features and ensures they continue passing. For now, applications call glBindImageTexture to configure their pixel local storage. The OpenGL ES API side of this extension will follow shortly. Bug: angleproject:7279 Change-Id: I141183069b5cbfcca01cbb77b5b36d3e5f834bf5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3761876 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Roman Lavrov 992018c7 2022-07-20T17:31:47 Suppress VUID-VkGraphicsPipelineCreateInfo-pStages-06896. Bug: angleproject:7513 Change-Id: I2877c069e33d2ec5e92cf759dc3ab1d270e1a414 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3776759 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Yuly Novikov 1e619503 2022-07-20T11:55:49 Skip TracePerfTest vulkan_car_chase on Linux Intel Flaky VK_ERROR_DEVICE_LOST on Intel UHD 630 Mesa 20.0.8 Bug: angleproject:7125 Change-Id: I7e99819a586e3f146728f49dfdeebf9e8ddcb219 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3777097 Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Lingfeng Yang fc97b2da 2022-07-14T13:18:56 Vulkan: Always use depth<=256 AHB image siblings Android will sometimes use an uninitialized value for the layerCount, which results in huge, many-GB allocations down the line. If we see a big value there, force to 1. Bug: b/223456677 Change-Id: I201e9901d9c726a9af73d025ac33850d11a5a38a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764433 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com>
Lingfeng Yang b860fa45 2022-07-14T13:14:06 Vulkan: account for yuvCscStandard in switch validation The previous condition only accounted for ints, but needs to account for yuvCscStandard in order to support the new emulated yuv<->rgb builtins. Bug: b/223456677 Change-Id: I25e0c88b9c8eb5f8caf3e7640fe391a9b9c10bf1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764431 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Lingfeng Yang be24acbd 2022-07-14T13:16:33 Vulkan: Support GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES This CL adds basic support for GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES to the Vulkan backend, and also allows the enum through validation. Bug: b/223456677 Change-Id: If0dcb467bb72bdfc9ced4862231a676eef471a6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764432 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Lingfeng Yang bd82a5e4 2022-07-07T17:03:27 Vulkan: __samplerExternal2DY2YEXT-aware ProgramExecutableVk This CL incorporates __samplerExternal2DY2YEXT into the Vulkan objects involved in ProgramExecutableVk. Specifically, we need: 1. TextureVk to create and return a VkSampler imbued with identity conversion model, so we can create an immutable sampler from it. 2. Access to the identity conversion desc so that it can be traced in mImmutableSamplerIndexMap. Bug: b/223456677 Change-Id: Ia302226a8aa4a97d4a42f79c79ce47af3abec37c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753294 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Lingfeng Yang 6c418f8c 2022-07-07T14:28:06 Vulkan: __samplerExternal2DY2YEXT-aware TextureVk This CL adds the ability for TextureVk to return an ImageView that is created with a VkSamplerYcbcrConversion object that uses an identity conversion model. This allows direct sampling of YUV values without RGB conversion, which is needed for __samplerExternal2DY2YEXT. Bug: b/223456677 Change-Id: Ie1d4e12375b7808a1f060747bc2d74baeda3fdea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3751889 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 53d40aed 2022-07-15T15:03:25 Vulkan: Destroy descriptorSet cache when BufferHelper destroyed For atomic counter buffers or other cases, dynamic descriptor is not been used. Right now when such buffer is destroyed, the cache is still lingers around. With this CL, when a new cache entry has been created, we record the cache entry in the BufferHelper. When BufferHelper is destroyed, we also immediately destroy the cache entry since the cache will no longer reused. Bug: b/237686097 Change-Id: I26eee96318fbc003e65318c0b8263dc61092f350 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764044 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Charlie Lao c7459a46 2022-07-15T09:55:03 Vulkan: Destroy descriptorSet cache when BufferBlock destroyed When a new cache entry has been created, we record the cache entry in the BufferBlock. When BufferBlock is destroyed, we also immediately destroy the cache entry since the cache will no longer reused. This CL also removes DescriptorCacheResult from various APIs since it is now redundant with newSharedCacheKey argument. Bug: b/237686097 Change-Id: I14fa8906fdbe7d9226c8e8ecddef2beb05fbaa5c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756694 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Charlie Lao <cclao@google.com>
Charlie Lao 8df0c53e 2022-07-11T16:56:26 Vulkan: Split suballocation out into it's own file Right now Suballocation and BufferBlock classes are in vk_utils.h, which is included by other header files. This made it difficult to have these two classes use variables defined in other headers. And vk_utils.h is really designed for utilities, it isn't the best place for bufferBlock/suballocation by definition. This CL split out suballocation code into its own file to make future CLs much easier. No functional change is expected other than move the code around. Bug: b/237686097 Change-Id: I36733468b4bed152a19d9c9bca8e7459c11c3b43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756761 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 45e5cf01 2022-06-03T14:29:23 Vulkan: Implement ASTC emulation. Implement ASTC emulation using the astc-encoder library. Add copy_image tests to deqp_gles31_test_expectations for desktop cards. Add emulatedAstc limitation. Don't expose emulated ASTC from WebGL contexts. Introduce ANGLE_HAS_ASTCENC define to check for build availability. Only build on angle_standalone configurations. DEPS: Add astc-encoder. image_util: Decode ASTC to RGBA. TracePerfTest: Skip car_chase and genshin_impact on NVIDIA. Bug: angleproject:7415 Change-Id: Ib2f3fd3f710164a2ecd5d5edf780227031bbfb84 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3697999 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny a3899c53 2022-07-15T08:39:32 Capture/Replay: drop context capture call in EGL capture templ Using the context provided by the thread variable is not correct, it worked only by accident. The only call that uses a context is eglCreateImage and here we have to use the context passed into the call. Bug: angleproject:4964 Change-Id: I78250050cc8f7271be8c91c2d09d99210aaead21 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3762458 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Faye Zhang <ffz@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi 645ee194 2022-07-18T21:48:59 Vulkan: Only modify input attachment images for FF MSAA fix up Previously all OpTypeImages were changed to MSAA, but only the ones with the SubpassData dimension should have been. Bug: angleproject:6195 Change-Id: I1caadd23420f0d9cffdee4e3b9d63cf6fa93982e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3770645 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d4e54b81 2022-07-17T22:56:51 Vulkan: Clean up garbage of last completed submission too Due to an off-by-one error, the garbage of the very last completed submission was not actually cleaned up. Bug: b/172704839 Change-Id: I4fb6a77af4379568990853e4bf3fd945fcde657c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3769547 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 5f7e0e50 2022-07-15T21:58:11 Translator: Remove early fragment tests transformation We no longer add early_fragment_tests as an optimization. Bug: angleproject:7347 Change-Id: Ic12d8491a4d24d546b6b19257cd63c71074ba3a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3769546 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Eddie Hatfield f1dac70d 2022-07-12T15:56:10 Remove platform skips for cookie_run and real_cricket These traces now work after being updated in restricted_traces.json. Bug: angleproject:7420 Change-Id: I57be700afb0a9232ce88bf2eed5f5104256b94f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3759428 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 3baa867c 2022-07-14T23:08:42 Vulkan: Fix image arguments passed to functions in GLSL It's impossible to provide the format qualifier to an image function parameter in GLSL, because `layout()` is not acceptable there. SPIR-V doesn't accept formatless image parameters without the StorageImageReadWithoutFormat and StorageImageWriteWithoutFormat capabilities, which are not universally available. Instead, this change monomorphizes functions with image parameters. Note that this was already previously done for R32F images for emulation purposes. Bug: angleproject:7484 Change-Id: Id287c4a93b32deb3fd8be982c32fa58fd2c848d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763074 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 2c3c45ee 2022-07-18T12:37:57 Roll VK-GL-CTS from ef9a6635208b to 692df061716d (12 revisions) Includes suppression of new render_sample_texture_array dEQP tests on Android. https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/ef9a6635208b..692df061716d 2022-07-15 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-cts-4.6.2 into vk-gl-cts/main 2022-07-15 jan-harald.fredriksen@arm.com Avoid dependency on geometry shaders for VK_ARM_rasterization_order_attachment_access 2022-07-15 michal.jakubek@mobica.com Global Priority Queue Families Tests 2022-07-15 rgarcia@igalia.com Test resetting queries after copying results 2022-07-15 piotr.byszewski@mobica.com Remove some RT SkipTriangles tests 2022-07-15 piotr.byszewski@mobica.com Enable FSR basic tests for Vulkan SC 2022-07-15 toni.merilehti@siru.fi Add tests for array comparisons 2022-07-15 yiyfan01@arm.com Add Texture2D array test in which Texture2D array is rendered and sampled. 2022-07-15 michal.jakubek@mobica.com Fix for attachment count in EXT_color_write_enable tests. 2022-07-15 piotr.byszewski@mobica.com Fix maxImageView(MipLevels/ArrayLayers) bug in SC 2022-07-15 skirank@nvidia.com Fix vkwsi Display control tests 2022-07-15 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.3.3 into vk-gl-cts/main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-bots+autoroll-info@google.com,romanl@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: angleproject:7506 Change-Id: I0b674a424cc109126b5a590430546942c6db3740 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3769550 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Eddie Hatfield 466fc0c6 2022-06-30T15:47:14 Add new prerequisite type for GL_ENUM integers This check is not applied in this commit. Bug: angleproject:7420 Change-Id: Ie84600c21aa4829c8d8c798643719c3084597af4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3759423 Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuly Novikov bf369285 2022-07-18T15:12:13 Suppress SYNC-HAZARD-WRITE_AFTER_READ in vulkan_car_chase Bug: angleproject:7125 Change-Id: Ibebe363bcc98413f259db9cb959b0ef816ed5ee2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3768935 Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Kyle Piddington c4004751 2022-06-23T14:35:21 Metal: texture allocation failures handled incorrectly When allocating large textures, allocation may fail if textures exceed the Metal memory limit. When a nil texture is returned, we should check texture allocation before assigning it as a backing object ANGLE port of the following bug https://bugs.webkit.org/show_bug.cgi?id=240790 Bug: angleproject:7459 Change-Id: Ib94f42d25df28a31513ab78fc42c6523bfbc5f76 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3722601 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org>
Amirali Abdolrashidi 496bddf3 2022-07-14T20:58:03 Skip mutable texture upload tests through feature * Added a condition in the mutable texture upload tests in VulkanPerformanceCounterTest.cpp, to skip the test if the feature `MutableMipmapTextureUpload` is disabled on that platform. Bug: angleproject:7308 Change-Id: Iff1985cabb463dc82ef15340cf3c485a0b680f0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3765180 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Chris Dalton 15cc0013 2022-07-14T23:32:05 Add a GL_ANGLE_shader_pixel_local_storage extension Plumbs through "GL_ANGLE_shader_pixel_local_storage" and "GL_ANGLE_shader_pixel_local_storage_coherent" extension strings advertised by ANGLE and stubs out an initial spec document. This change doesn't add any new procedures or shader constructs, but it does allow the PLS tests to start checking for the real extension strings and requiring the GL_ANGLE_shader_pixel_local_storage extension. Bug: angleproject:7279 Change-Id: I36877fe4117185a2121f803288123cd69a447cf3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739590 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Shahbaz Youssefi 1ae7a56c 2022-07-14T13:11:16 Vulkan: Fix double clear of AHBs Originally when deferred clears were implemented, it was assumed that it's impossible at glClear time to have a render pass open without any commends. This assumption was broken under two circumstances: - Clear of 3D attachments that don't include all layers - Clear of AHBs In these cases, the clear immediately opened a render pass with nothing but loadOp=CLEAR. If another clear followed, an assertion would fire. In this change, open render passes without commands are handled such that clears are accumulated in the loadOps. Bug: b/223456677 Change-Id: If99bcf9e24454b0c9e140cb93df7e7f76f175363 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763169 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com>
Peng Huang 8f2fbbeb 2022-07-14T11:30:12 Inline all metal command buffer decoder methods It should improve command buffer decoding slightly. Bug: angleproject:7296 Change-Id: I2481d0760c937a26c7c998131b398dd83bd0eaf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763063 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org>
Yuly Novikov ebf14fe3 2022-07-14T17:19:15 Return EXIT_FAILURE from run_perf_tests.py if any test failed Previosly EXIT_FAILURE was returned only for exceeding max_errors, which made Swarming erroneously believe that the task succeeded, even though some tests in it could have failed. Bug: angleproject:7498 Change-Id: I896fe97e7d24549202663351d5b61b206afbe6b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3762456 Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi ea138236 2022-07-12T15:51:05 Remove suppression for passing dEQP tests Numerous GLES3.2 tests are now passing. Bug: angleproject:5557 Bug: angleproject:5579 Bug: angleproject:5978 Bug: angleproject:6441 Change-Id: I6e42a3590390ff984432586c1cd642b20fcd758f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3758704 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi d9763c60 2022-07-14T14:42:27 Disable mutable texture upload on Win/Intel devs After adding the mutable texture upload CL, we are experiencing some instances of flakiness in the form of lost context/device errors in the perf tests in Win/Intel cases. * Added mutableMipmapTextureUpload as an ANGLE feature, which is used to determine if onMutableTextureUpload() should be called. * It is disabled on Windows when using an Intel GPU. * Disabled the related unit tests on Win/Intel cases. Bug: angleproject:7308 Bug: b/202744914 Change-Id: Ib8c1bddc39cc4354468831a4a599a7c343d05f0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3764460 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Brandon Schade 5911243c 2022-07-06T15:55:28 Fix linkValidateTransformFeedback for glLinkProgram From OpneGLES 3.2 spec. 11.1.2.1: A program will fail to link if the count specified by TransformFeedbackVaryings is non-zero, but the program object has no vertex, tessellation evaluation, or geometry shader. Add check in validation to account for this. Bug: angleproject:5557 Tests: ProgramPipelineTest32.CreateProgramWithTransformFeedbackVarying Change-Id: Ia86cbe8e85cb6a69fd35ddc4bc6ee37b9500c78f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3723861 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 01092c48 2022-07-12T10:11:22 Vulkan: Destroy descriptorSet cache when shader image is destroyed Similar to texture descriptor set, this applies to images used as shader resource. When a texture is used in a shader resource descriptorSet, we record it. When texture is destroyed, we also destroy that shader resource descriptorSet cache. Bug: b/237686097 Change-Id: I475982fcec45535cc285a4aebca922d01efc7ed2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3758884 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao e25137c0 2022-06-29T09:57:50 Vulkan: Move DescriptorSet cache to DynamicDescriptorPool DynamicDescriptorPool has an array of DescriptorPoolHelper. Right now mDescriptorSetCache is stored in DescriptorPoolHelper. This means when you search cache for the match, you have to iterate over the array of DescriptorPoolHelper to decide to make conclusion if there is a match or not. Each hash map search means compute hash and do key comparison. I think this was done this way because of we used to not able to evict cache when we decide to reuse DescriptorSetPoolHelper object (when we call pool->init). But with recent changes of SharedDescriptorSetCacheKey, we are able to evict specific cache entries. This CL moves mDescriptorSetCache to DynamicDescriptorPool so that cache look up can be cheaper. This also made CacheStats simpler as well. With Gfxbench gl_driver2_off and cpu clock locked, this CL improves score by 2.16% (from 4019 before CL to 4105 after CL). See bug for detailed data. Bug: b/237686097 Change-Id: Ia6fa7a6b725974e0150bc21cdf0140d9198c8332 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3735736 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 6cbf0c01 2022-07-14T11:35:46 Vulkan: Only apply MSAA FF fix up if executable has FF Due to the permanentlySwitchToFramebufferFetchMode feature, framebuffer fetch is permanently enabled on first use. Checking GraphicsPipelineDesc as previously done would thus always return true, even if the executable does not use framebuffer fetch. As a side effect, every multisampled draw turned into a per-sample shading draw. Bug: angleproject:6195 Change-Id: I748abddd2003297d6ff37a98e69cce4621697ad7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3763064 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Kyle Piddington eaf77ef3 2022-07-07T10:25:16 Metal fails to compile uniform blocks in ternary statements When creating an intermediate type for type expansion, Metal was copying over information about which uniform block a type appeared in. This led to a later pass, RewriteNamelessUniformBlocks, failing. This patch helps address a compile failure in the Godot engine. Bug: angleproject:7487 Change-Id: If0724f93017e41260ff11e59a5c28e8578563891 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3751106 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Gregg Tavares <gman@chromium.org>
Yuly Novikov 5d59c0eb 2022-07-14T15:04:41 Skip EGLBufferAgeTest.QueryBufferAge on Linux Intel Vulkan Fails on Optiplex 7080 Mesa 20.0.8 Bug: angleproject:7497 Change-Id: I413c9dd7a1d97b4120f4d65de3b2b0107cde15ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3762469 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Gert Wollny eb88a2ac 2022-07-11T17:16:49 Capture/Replay: Handle the case when there is no context in eglCreateImageKHR, when target is EGL_NATIVE_BUFFER_ANDROID then the context must be EGL_NO_CONTEXT, so handle this case. Bug: angleproject:4964 Change-Id: I945d2af546f3f3a14be966e5cac795b58aa3c89f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3755785 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Faye Zhang <ffz@google.com>
Roman Lavrov 16e7226d 2022-07-13T17:56:36 Propagate device type in ReuseUnterminatedDisplay. Fixes the issue with SwiftShader from https://crrev.com/c/3717277 Bug: angleproject:7494 Change-Id: Icb83087caf789518b0c3f30b10b543b299a500bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3759712 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov b038605c 2022-07-13T17:45:49 Fix test dependency on EGL initialization elsewhere. The current implementation only works because RegisterContextCompatibilityTests in EGLContextCompatibilityTest.cpp initializes EGL beforehand. Bug: angleproject:7494 Change-Id: I739ea8cdcddb1d8ea37204f5a1fa6c3844620d1c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3761276 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Amirali Abdolrashidi 32c5fd8a 2022-05-13T14:31:03 Reland "Vulkan: Flush texture updates more often" This is a reland of 8bb7c35c2159de2fa9e9a008679c692edd4402a6 * Added a condition to make sure the previous texture is not immutable when performing the optimization. * Fixed the issue where mipmap textures with unequal dimensions were not flushed. * Added related tests. * Added kEnableMutableMipmapTextureUpload, a flag to enable/disable the feature (enabled by default). Original change's description: > Vulkan: Flush texture updates more often > > * Added a pointer to the previous texture in ShareGroupVk so we can > flush the texture updates once we switch to a new texture. > > * We check if mip levels 0 and 1 are conformant in terms of > size, format and number of samples. > > * As a part of size check, we also check depths if the texture > target is either 3D, 2D array, or cube map array. For the former > two, they have to conform to mip scaling similar to width and > height. For the latter, the depth represents layer-faces and does > not change for mipmaps. > > * Added a test to ensure the pointer to the previous texture is > deleted when the corresponding texture is deleted, so the old value > is not accessed by a future mutable texture. > > * Added tests to make sure the mutable texture is uploaded with > the appropriate mip level attributes, and not uploaded in cases of > size/format inconsistencies, incompleteness, and no base level. > > Bug: b/202744914 > Change-Id: I9c2c1af87a8a49e75d3ad25523436b0cd51a7e81 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606329 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Bug: b/202744914 Change-Id: I2bdbcd0182a57c18c1a18968396251a2e366731b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646959 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu 0d3ecf46 2022-06-24T16:37:17 Vulkan: Multisample Framebuffer Fetch Implement Multisample Framebuffer Fetch. This should fix the deqp failure dEQP.GLES31/functional_blend_equation_advanced_msaa_colorburn Bug: angleproject:7351 Bug: angleproject:3586 Bug: angleproject:6195 Bug: b/234173199 Change-Id: Idd7559dcba3d91e36d8f253f1554fb931a7a6775 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3724165 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Mohan Maiya 12efe5b2 2022-06-21T15:43:42 Cleanup invalid EGL handles only if app called eglTermiate Maintain set of active threads instead of a global refCount and free display's invalid EGL resources iff - 1. app previously called eglTerminate on that display 2. there are no more active threads associated with that display Bug: angleproject:6723 Test: EGLMultiContextTest.RepeatedEglInitAndTerminate* Test: EGLMultiContextTest.ReuseUnterminatedDisplay* Change-Id: I868491bbbf0664e9129dcb0d1fa9e2243ef36d82 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3717277 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Alexey Knyazev 5897d6f5 2022-07-07T00:00:00 GL: Add emulateCopyTexImage2D workaround Using texImage2D + copyTexSubImage2D seems to be more stable than using copyTexImage2D directly. Added missing HALF_FLOAT fix to the code path that requires target texture initialization. Fixed target texture dimensions when initialization is not required. Fixes Apple GPU crashes in: * CopyTexImageTest.DeleteAfterCopyingToTextures * conformance/textures/misc/texture-copying-and-deletion.html * conformance/textures/misc/texture-copying-feedback-loops.html Bug: angleproject:5038 Bug: angleproject:5360 Bug: chromium:1130703 Change-Id: I5cce087983601e768902f01b3462ec2106e2500a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3749921 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Constantine Shablya b47603e0 2022-06-14T05:47:54 Implement GL_NV_read_depth_stencil The implementation will perform two readPixels calls, once for each aspect, and then interleave and pack the result. Bug: angleproject:4688 Change-Id: I46390df893de50b93e855e9333ffab567215a2bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3702686 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
Ian Elliott d88f7906 2022-07-01T12:57:09 Extra buffer logging/checking on Android Cuttlefish This adds a feature that will be enabled on Android Cuttlefish systems, to catch a rare crash. Test: Visual inspection of logcat output Bug: b/236098131 Change-Id: Ie35d7e017f69b36da9caf3e47c31fcc71846caed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3726963 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi 4f7d2d02 2022-07-12T11:55:19 Vulkan: SPIR-V Gen: Apply Flat to gl_ViewID_OVR in FS Follow up to https://chromium-review.googlesource.com/c/angle/angle/+/3756612 Bug: angleproject:7491 Change-Id: I0a5fdfba6474cf22b3cfcd56f02d7418f4928981 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3758703 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 3622f147 2022-07-11T20:36:46 D3D: Fix compile after CreateTemporaryFile changes Test: Compiled with "angle_enable_trace = true" Bug: angleproject:5095 Change-Id: I0afce1ced5d83aabe1a5183434029e03bee22eff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756358 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Eddie Hatfield <eddiehatfield@google.com>
Shahbaz Youssefi c525ccf7 2022-07-11T17:07:09 Vulkan: SPIR-V Gen: Apply Flat to int inputs in FS Not directly specified by the spec itself, but required according to this more generic statement: > Fragment shader inputs that are, or contain, integral types must be > qualified with the interpolation qualifier flat. This was previously fixed for gl_Layer in https://chromium-review.googlesource.com/c/angle/angle/+/3652746, but applies to gl_SampleID and gl_PrimitiveID as well. Bug: angleproject:7491 Change-Id: Ideae78ba57fe927ad0aa39460a5940dd5313ce9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3756612 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gregg Tavares 82ff27bf 2022-07-08T12:38:41 Add Metal to the perf tests Bug: angleproject:7296 Change-Id: I69cd17c464d48b933c51466bf9d21c278438c4e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3753277 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 3b5b7a29 2022-07-03T00:00:00 Caps: Check if ANGLE_texture_multisample is enabled Updated RenderbufferMultisampleTest.IntegerInternalformat and adjusted getRenderbufferParameteriv validation. Bug: angleproject:7479 Change-Id: Ieaeda4e8a8c11c3d1023f40a90639f3ecfcba9bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738148 Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 056c6c7c 2022-07-11T00:00:00 Metal: Skip invalidation of emulated formats Fixes SimpleStateChangeTestES3.InvalidateRGBThenDraw on Apple GPU. Bug: angleproject:7397 Change-Id: Ice5677004b38c3d67a9fc938d15dd64a20723380 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3755782 Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 94bbb40a 2022-07-04T00:00:00 GL: Enable pack skip emulation on all Apple drivers * conformance2/reading/read-pixels-pack-parameters.html is failing in WebKit on M1 without this workaround Bug: angleproject:4849 Change-Id: I710386d29c120e59338cd56fc9843cd6232ff96c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3743445 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Charlie Lao a1f8049a 2022-07-06T13:12:20 Vulkan: Remove VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT Some virtual machine drivers have performance cost with VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT. This CL keeps the individually freed descriptorSet in the pool and try to reuse rather than free it. This CL also removes descriptorSetCount from some API since it always allocate one at a time. Bug: b/237848471 Change-Id: I029d651101fa1050770eba9e733a166e56a69684 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3749797 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 9931dfd5 2022-05-02T00:00:00 D3D9: Implement float sources for Image9::copyFromRTInternal Bug: angleproject:5038 Bug: angleproject:6257 Change-Id: I4f21fb1e37a985e2179d9c06101fa5bd2fedb100 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3738143 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Alexey Knyazev 925ec6b5 2022-07-07T00:00:00 Clamp viewport dimensions on store Bug: angleproject:7486 Bug: chromium:1130759 Change-Id: I6131baacc940b5df7e33ba10fca8e6e148cb8670 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3751056 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mark Lobodzinski fb3e2def 2022-05-24T15:47:01 Extend labelObject functionality Modify interface to fully support labelObject return codes. Fix issues with texture implementation, including handling deferred Vulkan object creation. Bug: b/229105865 Change-Id: I0c64b72dd0b54642fb643ee7f5ccbb2a134c6787 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3703184 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Alexey Knyazev a4e00c64 2022-06-30T00:00:00 Expose EXT_compressed_ETC1_RGB8_sub_texture on Metal and GL Updated the test to ensure that this extension is exposed on Apple GPUs when using Metal. Updated emulatedEtc1 limitation to hide this extension when the main ETC1 extension is hidden. Real WebGL apps cannot enable this extension because it is not exposed in WebIDL. Removed bogus entry from IsETC1Format and use the helper consistently in all validation functions. Simplified GetNativeCompressedFormat. Bug: angleproject:7471 Change-Id: I61321fadad7d962358d0fefecd08aaddaedd2ec2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3737762 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brandon Schade afcca86c 2022-07-05T11:25:04 Fix ValidateCompressedTexSubImage3D compressed format check Fix the ValidateCompressedTexSubImage3D to perform compressed format validation only when we have a compressed format Bug: chromium:1341624 Change-Id: I5c8b3ef548cfa63b86e077f3c9e4c15e83dc7988 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3747203 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Quyen Le 0f688d62 2022-07-04T15:49:53 Metal: Allow Surfaces to be created without depth & stencil Previously, egl::Config with depthSize=0 & stencilSize=0 wasn't added to DisplayMtl's configSets. Thus every surface would be created with at least stencilSize=8 although users requested DONT_CARE. This led to wasteful memory being used to created stencil buffers even though they were not used. Fixes: - dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_depth_stencil - dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_depth_no_stencil - dEQP-EGL.*.query_surface.simple.pbuffer.rgba8888_no_depth_stencil Bug: chromium:1329376 Change-Id: Iba13b527640a6b8ce6c4b3a63346b41730a83891 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739868 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Quyen Le <le.hoang.q@gmail.com> Reviewed-by: Gregg Tavares <gman@chromium.org>