src


Log

Author Commit Date CI Message
Mohan Maiya 49ea6f00 2024-09-08T11:32:16 Cleanup ImageTest skip conditions Early-return with a compiler guard prevents a test from being recorded in the skip test list log. Make sure to use the "ANGLE_SKIP_TEST_IF" macros for AHB tests. Bug: angleproject:40644776 Change-Id: I3e15203b8e17512ecb89abc7e53769c06b770213 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5842744 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Mohan Maiya bffcd235 2024-09-13T14:58:00 Vulkan: Consolidate colorspace override states ColorspaceState struct is now used to cache colorspace related states and used to determine the colorspace of Vulkan image views. ImageViewHelper methods are called during initialization and when colorspace related states are toggled dynamically which in turn process these states and determine the final read and write colorspaces. We can now fully support rendering to EGLImages, with colorspace overrides, via texture or renderbuffer EGLImage targets Bug: angleproject:40644776 Tests: ImageTest*Colorspace*Vulkan MultithreadingTestES3.SharedSrgbTextureMultipleContexts*Vulkan SRGBTextureTest.SRGB*TextureParameter*Vulkan SRGBTextureTestES3.SRGBDecodeTexelFetch*Vulkan ReadPixelsPBOTest.SrgbUnorm*Vulkan Change-Id: I1cc2b5bd834b519b83deab4d80a2fcaabeb271d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5841290 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 167b9e8d 2024-09-18T21:51:38 Vulkan: Fix pipeline cache store vs monolithic pipeline race The thread that creates monolithic pipelines needs to hold the pipeline cache lock, as well as the thread that stores the pipeline cache contents to the blob cache. Bug: angleproject:42265839 Change-Id: I17cf9d2bb3f27d531f368003cb4ee00007a464fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5872715 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand 1bed7fdd 2024-09-13T15:29:07 CL/VK: Fix missed PushConstantRegionGroupOffset Adding missing reflection instruction to parser: NonSemanticClspvReflectionPushConstantRegionGroupOffset And add related PC routine during NDRangeKernel. Bug: angleproject:366412385 Change-Id: I2ffa48dee46a23840390312f20e7103f68daa0c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860310 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand cce1497c 2024-06-07T15:03:07 CL/Vulkan: regionOffset as GWO for uniform clspv states: region_offset: the sum of the global ID offset into the NDRange for this uniform region and the global offset of the NDRange Since we currently do not support non-uniform at the moment, we just treat the PushConstantRegionOffset as the global work offset. Bug: angleproject:366412385 Change-Id: Ifd9953f21cd7826198b2cfe7d30ddec68ea2c7a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860309 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand 741e5355 2024-06-07T16:39:53 CL/Vulkan: Add missing PushConstantNumWorkgroups Adding support for: NonSemanticClspvReflectionPushConstantNumWorkgroups Bug: angleproject:366412385 Change-Id: Id4cfc1ee456d3a7f6d058f3f4a6a580381b2d471 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860308 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand 8eecc8e9 2024-05-30T13:30:08 CL/Vulkan: Update CL_DEVICE parameters Update device fields for the following: - Change address bits from 64 -> 32 - Report OpenCL C version to 1.2 - Change non-uniform wgs support to false We either did not support nor take full advantage of these features, thus leading to the omission or change/downgrade. Bug: angleproject:366412386 Change-Id: Ia6b361d0285d5a1a88013a49fd747a3d03db9655 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860307 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 86a24b84 2024-09-20T09:36:02 Add TraceFrameIndex atrace counter This adds TraceFrameIndex atrace counter so that we can identify the exact frame index in the trace. Bug: b/319871513 Change-Id: I6cd20dd78746dd03b43ecea2ac7b102902e82d37 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5874417 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Yuxin Hu 0de7c43f 2024-09-19T16:57:23 Remove unused functions Static function Display::GetEglDisplaySet() is no longer used. The function was first introduced in https://chromium-review.googlesource.com/c/angle/angle/+/3294581, but the usage was removed in https://chromium-review.googlesource.com/c/angle/angle/+/4742383. Remove the unused function. Bug: b/362604439 Change-Id: I007a5850f642a46f6d141ee88cfd6e221f9358fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5877313 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Alexey Knyazev c2051a2d 2024-09-19T00:00:00 Metal: Refactor texelFetch[Offset] and textureSize wrappers * Removed variadic macros from texelFetch[Offset] and textureSize function wrappers. * Updated emitter to not output unused variants. * Aligned parameter types with GLSL and MSL specs. Bug: angleproject:368059227 Change-Id: I7cbd6f60e70e0357aa5ca12d6adbe1064eed94fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5876034 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov 2ca686d2 2024-09-20T13:48:04 Suppress flaky test on Linux NVIDIA Vulkan dEQP-GLES2.functional.texture.completeness.cube.npot_mirrored_repeat Bug: angleproject:362486580 Change-Id: If1255fd052e8d0e80ef694733af3676414c5beee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5873134 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Amirali Abdolrashidi b682d810 2024-09-18T14:24:22 Remove limitation for INT_MAX In LimitToInt(), a limit was placed so INT_MAX/2 would return instead of INT_MAX. This was done to avoid dEQP errors due to imprecisions rising from querying the limit as a float. However, it seems that the underlying issue has been resolved. Therefore, it should be safe to remove this limit. * Set the LimitToInt() return value limit back to INT_MAX. Bug: angleproject:361369308 Bug: angleproject:42262938 Change-Id: Icf861797656bf95690ee4f0964635dd6f3c97198 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5874170 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi f0f65290 2024-09-10T15:30:30 Translator: Add check for atomic counter offset For GLSL shaders, atomic counter offset should not exceed the maximum atomic counter buffer size. This issue was seen on a dEQP test when increasing the LimitToInt() limitation from INT_MAX/2 to INT_MAX+1 or INT_MAX. * Added check to the translator to make sure the offset does not go beyond the max atomic counter buffer size. * Packed the existing checks into a single function. * (checkAtomicCounterOffsetIsValid()) * Added mMaxAtomicCounterBufferSize to TParseContext for the check. * Also added the related cap (maxShaderStorageBlockSize) for D3D11. * Increased the limitation in LimitToInt() to (INT_MAX / 2 + 1). * Added test based on dEQP test that failed on some platforms as a result of updating said limitation. * From KHR-GLES31.core.shader_atomic_counters.negative-large-offset Bug: angleproject:361369308 Change-Id: Id6128c75e12445b2a0029f4a2eb2bdb379cad48d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5851650 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev 95664631 2024-09-19T00:00:00 Metal: Fix OES_texture_3D texture function wrappers * Removed redundant variadic macros and templates for GL_OES_texture_3D functions. * Added missing texture3D function variants. * Emit texture3DProj variant with bias only when the GLSL function call has that parameter. Fixed all failures in KHR-GLES2.texture_3d.* tests. Bug: angleproject:368059227 Change-Id: I9c0b209988563710824c38d0535997e351bbd6bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5875725 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 5eb71dc1 2024-09-19T00:00:00 Metal: Simplify ESSL 1.00 texture function wrappers * Removed redundant variadic macros and templates for ESSL 1.00 and GL_EXT_shader_texture_lod functions. * Emit texture2D, texture2DProj, and textureCube variants with bias only when the GLSL function call has that parameter. Bug: angleproject:368059227 Change-Id: I1b60d0b874a08dcdd0a92585b2642336134236e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5872916 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mark Lobodzinski 04c2879e 2024-09-18T11:30:07 Modify retracer script to output min requirements json diff After the ANGLE retracer script runs with the get_min_reqs option, ouptut the json file diff. Bug: b/42266279 Change-Id: Ia744e4e36fb9f8b7e8d498d44412af733c7ed9b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5874161 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Igor Nazarov cb9d52f8 2024-09-11T15:26:49 Vulkan: Add Pipeline blob cache per chunk CRC check Each chunk now have it's own CRC value, that is calculated starting from beginning of the data up to the end of the chunk. This way last chunk will have CRC of the entire data, avoiding calculating it separately. The `GenerateCRC32()` was splint into `InitCRC32()` and `UpdateCRC32()` function, which supports calculating running CRC32. Calculating CRC this way has some performance hit, when using many small chunks. Increasing chunk size to at least 1 MB almost negates any overhead from running `UpdateCRC32()` multiple times. On S921B with locked frequencies, calculating CRC for 89 MB of data using single call took 7.13 ms and 13.34 ms, when using multiple calls. However even this difference is negligible, because compressing 291 MB of data to 89 MB took 9.22 seconds. Bug: angleproject:4722 Change-Id: Ic6f3245b3aa7319ac13502d2c43e1a084a9bc8b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854709 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Igor Nazarov 8469debb 2024-09-04T20:04:10 Vulkan: Add dual slots in CompressAndStorePipelineCacheVk() Change fixes following problem: Currently, each call to `CompressAndStorePipelineCacheVk()` stores chunks in order, starting from 0. This overrides previously stored chunks. In case of app termination (kill) in the middle of this process, the entire cache data will be corrupted, since it will partially contain chunks from the new and old caches. Solution: In order to fix this problem, this change introduces `slotIndex` into the `chunkCacheHash` calculation. Slot index is managed by `vk::Renderer::getNextPipelineCacheBlobCacheSlotIndex()` method, which will alternate between 0 and 1 when "useDualPipelineBlobCacheSlots" feature is enabled, and always 0 otherwise. Additionally, chunk storing order is reversed: last chunk is stored first and the first (0 chunk) - last. This is done because 0 chunk is the first that is loaded in `GetAndDecompressPipelineCacheVk()` and used as indication that there is data in the cache. Writing it last, ensures that other chunks will be also available. When "useDualPipelineBlobCacheSlots" is enabled, each call to `CompressAndStorePipelineCacheVk()` will use slot index opposed to the slot that is stored in the cache, avoiding damaging existing data. After writing all chunks for a brief moment there may be 2 instances of the data. However, data for the previous slot will be immediately erased (by writing 1/0-sized blobs) starting from the 0 chunk. To control if erasing of old pipeline cache data will be erased by using 0-sized or 1-sized blobs blobs, added `useEmptyBlobsToEraseOldPipelineCacheFromBlobCache` feature. The `GetAndDecompressPipelineCacheVk()` function will iterate over each available slot index checking only 0 chunk until data is found. In case of the OpenCL API, features will always have following values: - "useDualPipelineBlobCacheSlots" -> false - "useEmptyBlobsToEraseOldPipelineCacheFromBlobCache" -> true Note: this solution requires 2X pipeline cache size space in the blob cache to work as expected, otherwise it will exacerbate other problem: When blob cache is full, but still allows to store the current pipeline cache data, storing next chunk may trigger eviction of already stored items. Depending on the blob cache implementation, eviction process may choose to evict chunks from the current pipeline cache data. As the result: blob cache will not contain all chunks. The above problem will be addressed in the follow up CL. Bug: angleproject:4722 Change-Id: I2920bc3d89263280cdfe0466446fca26415e2b25 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5756576 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Alexey Knyazev e6c22c93 2024-09-19T00:00:00 Metal: Remove invalid ESSL 1.00 texture functions * 1D textures are not supported in GLSL ES * 2D textures do not support sampling with 3-component coordinates * Metal backend does not support rectangle texture type * Cubemap textures do not support sampling with projection Bug: angleproject:368059227 Change-Id: Iec33f4293d995b9f244274338d444604ffd23249 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5872915 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Liza Burakova bb14aa4d 2024-09-19T11:17:05 WebGPU: set vertex buffers. This change actually sets the vertex attributes that are added to the render pipeline description owned by the context, as well as sets the vertex buffer in the pipeline. Bug: angleproject:359823692 Change-Id: I5e94b357a4e6eadc1bbba54965cef94f90113b4e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5789155 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
Yuly Novikov 260953c3 2024-09-19T14:30:12 Suppress flaky test on Linux NVIDIA Vulkan KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_16_1 Bug: angleproject:365974429 Change-Id: Ic2fe52a7a3adcb3dbdf9e2e585831dfab4d04699 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5875723 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuxin Hu 44b6203c 2024-09-02T16:23:44 Add new functions defined in VK_KHR_Synchronization2 extension Add vkCmdPipelineBarrier2 and vkCmdWriteTimeStamp2. The other functions introduced in VK_KHR_Synchronization2 are not being used at the moment. Bug: b/356985874 Change-Id: I4f8b432aee9b11debcb8abe8b3089f88ad7a069b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5832709 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Austin Annestrand 59f1e537 2024-09-03T17:56:47 CL/VK: Add ArgumentWorkgroup handling Each OpenCL kernel can have ArgumentWorkgroup args - which are treated as spec constants. Bug: angleproject:366415134 Change-Id: I2761010610e5b991e959006e7b78f1241a687960 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860304 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7bdd5f77 2024-09-18T12:51:25 Vulkan: Remove syncval suppressions for fixed bugs Bug: angleproject:42265220 Change-Id: I282f77330867682eee121f67d5357658bf375844 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5873529 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Amirali Abdolrashidi e38d25b1 2024-06-21T18:22:32 Vulkan: Implement EXT_clear_texture * Added new functions to TextureVk to clear the image. * clearImage() * clearSubImage() * Both implemented via clearSubImageImpl(), with the former a special case of the latter. * For multisample or renderable images, stagePartialClear() from ImageHelper is called to add the update. * For single-sampled non-renderable images, a buffer is filled with the pixel data and applied to the image as a buffer update. * Added new update type: ClearPartial * Used for renderable textures. This includes multisample textures. * LOAD_OP_CLEAR is used in a render pass to perform the clear. * UtilsVk::clearTexture() * (Uses ClearTextureParameters) * Uses the following functions to get the VkClearValue from the input data and format: * GetVkClearColorValueFromBytes() * GetVkClearDepthStencilValueFromBytes() * ClearPartial updates can also be superseded and removed similar to Buffer updates. * Updated UtilsVk::startRenderPass() to accept a VkClearValue* as an input arg. If used, the render pass will use LOAD_OP_CLEAR. * Enabled the feature "clearTextureEXT" on Vulkan. * Added new unit tests in ClearTextureEXTTest for various formats and pixel sizes. * Added related multisample tests in FramebufferTest.cpp. * FramebufferTest_ES31.ClearTextureEXT* * Disabled some of the new tests failing using OpenGL. * Disabled stencil-only-related tests on Pineapple. Bug: angleproject:42266869 Change-Id: I89c631d68a4ed63d9991abe1783333255ade20dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5778348 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 7c6f1c05 2024-08-20T17:50:00 Vulkan: Enable UtilsVk::startRenderPass() for DS Currently, UtilsVk::startRenderPass() assumes usage for color ops and only uses color aspect flags and layouts. This CL will add the option to use it for depth/stencil as well. * Added the aspect flags to the args of startRenderPass() * For the existing usage of this function, which use the color bit, the image layout "ColorWrite" is used as before. * For depth/stencil usage, the layout to be used therein will be DepthWriteStencilWrite. * The follow-up CL will use this. Bug: angleproject:42266869 Change-Id: I135df3b91064b6e711e6109e9e7b734bc6361396 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5801657 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 3f89dfc2 2024-08-20T17:31:43 Update validation for EXT_clear_texture * Added the validation condition that the texture level to be cleared should have been defined beforehand. * Added the condition to clearTexSubImage() at the frontend to return if any clear extent was zero. * In the validation tests, added checks for the following: * Clearing a texture level before defining it. * Clearing a compressed texture, which is not allowed. * Added setConfigAlphaBits() to ClearTextureEXTTest setup. * Replaced EXPECT_PIXEL_COLOR_EQ with EXPECT_PIXEL_RECT_EQ for ClearTextureEXTTest tests for better coverage. Bug: angleproject:42266869 Change-Id: Ieeb49e9005eba6ef9156d49ff46c71cdf4f04162 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5801655 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Mark Lobodzinski a98f83bc 2024-09-13T10:49:08 Add pre-upload Required Extensions check to trace sync script Add a check to make sure that a new ANGLE trace has been run through the retracer with the 'get_min_reqs` argument before uploading to CIPD. Bug: b/42266279 Change-Id: Id6f847faf22a42062ab189ea9bc7fb9c3506e66b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860299 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Matthew Denton 7e462c22 2024-09-17T15:32:41 WGPU: Implement SetUniform() enough so GetUniform() works Lays out a shadow buffer for basic uniforms per-shadertype in std140, which is close to matching WGPU's layout. This does not actually pass the buffer to WGPU as a uniform buffer. GetUniform() just reads from the shadow buffer. This is copied from the VK backend and so some code is deduplicated. Bug: angleproject:42267100 Change-Id: I727dc9e09a7ccabbb617f148dd68590469883b07 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5867444 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
Igor Nazarov dfa516ce 2024-09-12T15:25:08 Vulkan: Fix chunkIndex is not 16 bits when computing key Replace `uint8_t` with `size_t` in `ComputePipelineCacheVkChunkKey()`. This fixes the bug and also makes type consistent with the rest of the code. Also `CacheDataHeader::setData()` made consistent with `getData()`. Bug: b/246683126 Change-Id: Ib1f8b680622c3d4f912d8a21ed8b740c3d17483e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854707 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e8b8749d 2024-09-18T12:00:46 Fix use-after-out-of-scope in CapturedTest The pointer passed to glVertexAttribPointer goes out of scope in frame2(), but was in use by frame3(). Bug: chromium:367752715 Change-Id: Idd8a2d0cced047776efff7015f6548b6f4969aba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5873528 Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 1a97e039 2024-09-17T11:40:29 restricted_trace_perf: Support multiple users This CL adds some tracking data for the current user and storage locations. It moves away from using sdcard at all. Test: restricted_trace_perf.py with non-default user Bug: b/361388557 Change-Id: Ifff9b5e4ba9b184cc5a4339417723ecb7d35a4a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5869168 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev b98e6bc0 2024-09-12T00:00:00 Translator: Add EXT_texture_shadow_lod functions Added translator support for functions defined in the GL_EXT_texture_shadow_lod extension. Trivially enabled on GL and Vulkan backends. Bug: angleproject:365066518 Bug: angleproject:365108862 Change-Id: Ie1fc8f50e321a559d4506c479d9cebbb48802091 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5867416 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 6e0ae899 2024-09-17T12:12:03 Vulkan: Suppress more rasterizer-discard VUs due to VVL bugs Bug: angleproject:42266678 Change-Id: I7321c28362d1a2be529b9d173c8429c757c26fd8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5869444 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao dbdc9551 2024-09-16T10:19:47 Vulkan: Let asyncCommandBufferReset control garbage cleanup So that people can toggle the flag to compare perf/power difference with async thread doing garbage clean up AND command buffer reset. This also renames feature flag asyncCommandBufferReset to asyncCommandBufferResetAndGarbageCleanup to reflect the implementation. Bug: b/255411748 Change-Id: Id459e6f4dc81ec76b6c0c2dba0db46041ea6ae8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5867389 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Austin Annestrand 72d01332 2024-05-23T16:34:14 CL/Vulkan: Add missing EnqueuedLocalSize PushConst Additionally, we move down "processKernelResources" after "getOrCreateComputePipeline" since new push constant needs LWS value and we might modify ndrange's LWS after "getOrCreateComputePipeline". Bug: angleproject:366412385 Change-Id: Ia287d667e0616256d1f9c039566b79aae1337154 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860306 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 9685cb96 2024-09-17T11:41:28 Vulkan: Clean up PackedClearValuesArray::store The code was a bit confusing, raising question why there is check of aspectFlags != VK_IMAGE_ASPECT_STENCIL_BIT. I believe this was originally from https://chromium-review.googlesource.com/c/angle/angle/+/2142711, and then followed by https://chromium-review.googlesource.com/c/angle/angle/+/2410366. The code seems to having some special logic to handle packed depth stencil clear value. This code may have been changed a bit. When I am looking at current code base, I am not seeing good reason doing it this way. Caller is handling the packed format by reading out depth value and pack them together and then store. This CL replaces store/storeNoDepthStencil pair to storeColor/storeDepthStencil. Bug: b/167301719 Change-Id: I40cfca1e51654f5ddaf4b2e8460ae5a26c656f2b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5870921 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Roman Lavrov 0f4c807a 2024-09-16T12:55:40 Tests: disable batching in gold tests on Android setRequestedOrientation from a previous trace appears to affect pixels. We often see this on CI when a new trace is added which reshuffles traces. For example, in this sequence the first trace sets landscape orientation and the second one goes back to portrait: angle_trace_tests --gtest_filter=TraceTest.dota_underlords:TraceTest.dragon_raja \ --run-to-key-frame --save-screenshots --verbose \ --render-test-output-dir=/tmp/g When the second trace is run independently, the resulting pixels are slightly different. This CL disables batching tests on Android so each trace runs as a new instrumentation/activity. This way the previous trace orientation does not seem to matter. The impact on shard runtime seems minor. Bug: b/367401313 Change-Id: If1c41e45d063d434f92d46be8dd381e645a3ff0a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5866850 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Austin Annestrand 89f9ea08 2024-06-18T10:23:22 CL/Vulkan: Fix missing init() for clLinkProgram Fixing missed init() call/routine when creating the CLProgramVk object during clLinkProgram. Bug: angleproject:366411889 Change-Id: I13402b823746a59b3f0539830a6cde64b6201ae9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860305 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gowtham Tammana f2d9d755 2024-09-10T10:28:37 CL: Drop image_descriptor and format from image create The image descriptor and format are part of the state and as such remove them passing down through the create() Bug: angleproject:365694588 Change-Id: I6e5c4595c0093f15df65f43ed607643cb7c2ae14 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854004 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana dda301f6 2024-06-17T19:42:09 CL: Add additional state getter for CLImage Much of the image state is validated by the frontend, and as such add corresponding getters for the state. - The row and slice sizes are updated to account for zero values - New getters for width,height,depth and array size are added Bug: angleproject:365694588 Change-Id: I3398a14a3bb2aff078290423d6963e646f3c32df Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854003 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Gowtham Tammana ad4159f3 2024-06-20T12:26:32 Vulkan: Add utils for cl state to vk state Add utils for translation of vk state from/to cl state in vk_cl_utils. Bug: angleproject:365694588 Change-Id: I74f33416a2746048c0b74793b06bee612cf51eb3 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854002 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi f8031fbe 2024-09-17T11:35:58 Vulkan: Unsuppress fixed VU errors Bug: chromium:359904720 Bug: angleproject:362545033 Change-Id: I2721344843ffbddd6c56261359360473ad896a39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5870469 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Mohan Maiya f2eb8781 2024-09-14T16:16:53 Vulkan: Selectively enable emulateR32fImageAtomicExchange Only emulate R32F imageAtomicExchange if shaderImageFloat32Atomics feature is not supported Bug: angleproject:42264071 Change-Id: I305ab88bf3ac918eff5d8c399f0ed02ec8c60c2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860814 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 1503a107 2024-09-17T10:46:29 Revert "Vulkan: Prefer monolithic pipelines everywhere" This reverts commit e9ab557c744c29088174b6c7bc93692fe7f32dbd. Reason for revert: kills Windows Intel UHD 770 machines http://anglebug.com/42265839#comment34 Original change's description: > Vulkan: Prefer monolithic pipelines everywhere > > Apparently, every vendor prefers this, and > graphicsPipelineLibraryFastLinking has no bearing on the driver's > preference. > > Bug: angleproject:42265839 > Change-Id: Ied8d82e0a9e08fe5efe3f625e2612764f67f9768 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5861024 > Commit-Queue: Yuxin Hu <yuxinhu@google.com> > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:42265839 Change-Id: I95fa61b2242684b63adc2841b777bde923e34d41 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5868055 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya 1b4d6185 2024-09-12T09:18:46 Vulkan: Cleanup sRGB related code Image and image view code is littered with sRGB related enums, even in places that don't deal with sRGB. Remove sRGB related parameters from initLayerImageView and getLevelLayerDrawImageView methods, which now assume default values. Add dedicated methods that allow overriding sRGB state values. Also introduce ColorspaceState struct that consolidates all sRGB related states, this will be used in follow up changes to track and infer colorspace of image views Bug: angleproject:40644776 Change-Id: Ifb366db48043e376f9ff6c30c852c44dd96562a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860808 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Roman Lavrov 44bbfbda 2024-09-16T09:59:56 Tests: deqp no longer logs unused test expectations Similarly to https://crrev.com/c/5238992, deqp is the only suite that does this. Also, this applies only to the current platform (for example, unused expectations with tag VULKAN are not logged when running under Swiftshader). If we actually want to check for unused expectations we should revisit the approach and do it consistently across suites. Logging can cause obscure issues as described in b/361100186#comment3: Tests are executed by first listing the tests, then splitting the list into chunks and executing sequentially with filter=*test1:test2:...testN. The problem is that first part, "listing the tests", is pretty clunky, and instead of using a proper format we usually just parse stdout somewhere. So what's probably happening is "Line 20: expectation was unused." gets printed while listing tests, and the first word, Line, is assumed to be a test name, so we end up with filter=*Line Bug: b/361100186 Change-Id: Id7836640877e3adae04b53f03867028103f159b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5866130 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi e9ab557c 2024-09-14T22:11:18 Vulkan: Prefer monolithic pipelines everywhere Apparently, every vendor prefers this, and graphicsPipelineLibraryFastLinking has no bearing on the driver's preference. Bug: angleproject:42265839 Change-Id: Ied8d82e0a9e08fe5efe3f625e2612764f67f9768 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5861024 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 6d58359b 2024-09-12T00:00:00 Add shadow sampler LOD tests for cubemap arrays Added tests for GLSL 3.10 shadow samplers in fragment shaders with TEXTURE_CUBE_MAP_ARRAY target (with an extension). Bug: angleproject:365066518 Change-Id: I0d47b0af24383177d428ebace045e77f5563593c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5866449 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 3cabe8c2 2024-09-16T11:09:45 Tests: fix python assertion android_helper.py:43: SyntaxWarning: assertion is always true, perhaps remove parentheses? assert (cls.current_user != None, "Call _GetCurrentUser before using IsMultiUser") This does "assert x" where x=tuple (bool, str) and is never falsey Bug: b/361388557 Change-Id: I79a2d07ac59d611cf5e47f54f3ddb6a336322655 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5866133 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
Liza Burakova ca2e588b 2024-09-12T14:20:33 WebGPU: Add support for depth/stencil clears This CL also adds helper methods to create webgpu depth/stencil attachments for a render pass descriptor, as well as depth/stencil attachment images. Bug: angleproject:42267012 Change-Id: Iebef99ba34db2e50f56449d0737b3dbb03b90f2e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5750001 Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Alexey Knyazev b5280aa3 2024-09-12T00:00:00 Add shadow sampler LOD tests for cubemaps Added tests for GLSL 3.00 shadow samplers in fragment shaders with TEXTURE_CUBE_MAP target. Bug: angleproject:365066518 Change-Id: I2b8577310ea5c258d4d13611607f5c4d9be57e04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5865112 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 5e45d53f 2024-09-15T11:12:01 Tests: Add Downwell trace Test: angle_trace_tests --gtest_filter="*downwell*" Bug: b/367019385 Change-Id: Iad12378a0d770e24b5a74db9eee78b0d8cbaa094 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5863490 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 005345d4 2024-09-16T11:02:37 Suppress flaky dEQP GLES2 test dEQP-GLES2.functional.texture.filtering.cube.linear_mipmap_linear_nearest_clamp_etc1 on Linux NVIDIA 535.183.01 driver. Bug: angleproject:362486580 Change-Id: Icdf6add6fe4c1f27c8903df12eb42e8b91bffa57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5865110 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>
Gowtham Tammana 937c5dc8 2024-09-09T12:18:55 Vulkan: Make image{Read,Write} helper interface api agnostic Removing ContextVk dependency on the imageRead/imageWrite helper utility functions. Bug: angleproject:42266971 Change-Id: I493e1fb11e8ae192f766c822cbee278c49c23bfe Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5845197 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 9decad75 2024-09-12T00:00:00 Add shadow sampler LOD tests for 2D arrays Added tests for GLSL 3.00 shadow samplers in fragment shaders with TEXTURE_2D_ARRAY target. Bug: angleproject:365066518 Change-Id: Iab68d7de6709e470ae6a4cd7d94682b454ed2880 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5861427 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 0cce8fd3 2024-09-12T00:00:00 Add EXT_texture_shadow_lod stubs Bug: angleproject:365108862 Change-Id: Ib879c2994871a41ad680bfe487593ea8ccbba7cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860118 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 6ee07959 2024-09-13T17:12:26 Remove the suppressed VVL error https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/8523 is fixed. Remove the VVL error from the suppressed list. Bug: b/365580001 Change-Id: Ib7a3819e740393306995df1eabec14e1b9878d7a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860811 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Mark Lobodzinski 27738fe4 2024-09-04T19:53:01 Fix retracer script error due to blank argument Traces fail when running the retracer script if the --request-extensions argument is passed with a blank value. Bug: b/42266279 Change-Id: I1e465caaaa7a5f8d8048c09890b5d01eeb2d0df1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5860298 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Hailin Zhang bf29f7bd 2024-09-13T11:36:23 vulkan: fix eagl compile issue. fix https://chromium-review.googlesource.com/c/angle/angle/+/5858255 build issue for eagl. Bug: b/311022968 Change-Id: Icc6f3276338572f0303e49bede256c1a7239d3ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5862027 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Hailin Zhang 8c12874c 2024-09-12T11:26:29 vulkan: add double buffer swapchain for fifo mode. Double buffer swapchain usually drop the performance. But at B* the default fps cap for silver device still at 30fps. This change is for reduce latency. Bug: b/311022968 Change-Id: Ida4044f439bbe3f235d53f5d1d2f945533cbb094 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5858255 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev e90de4b2 2024-09-05T00:00:00 Add shadow sampler LOD tests Added tests for GLSL 3.00 shadow samplers in fragment shaders with TEXTURE_2D target. Bug: angleproject:365066518 Change-Id: I5b93d030cd14a388541acaff9f7a707ad599dba3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5845491 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov 7dcfc32b 2024-09-12T16:25:28 Remove renamed VUID VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870 was renamed to VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870 in https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/6adb436617e6c66fbc8b2a24996659f5c5bbb63f Bug: angleproject:42266877, angleproject:42266639 Change-Id: I382625d33ef6728835d8e9db307d32b7910ac9b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5855187 Commit-Queue: Solti Ho <solti@google.com> Reviewed-by: Solti Ho <solti@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 1205d218 2024-09-12T11:46:48 Suppress flaky failures on new Linux Intel and NVIDIA drivers Intel Mesa 23.2.1: Texture2DTest.NegativeAPISubImage/ES2_WebGPU NVIDIA 535.183.01: KHR-GLES32.core.texture_cube_map_array.image_op_compute_sh KHR-GLES31.core.texture_cube_map_array.image_op_fragment_sh Bug: angleproject:362486580, angleproject:360083331 Change-Id: I5038f867ccda43331def4b6ee4253b580a1a6f1f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854328 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> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev f0919be3 2024-09-05T00:00:00 GL: Reset color mask before clearing textures Some OpenGL drivers may apply last used color mask state to ClearTexImage operations. Bug: angleproject:347047859 Change-Id: I0bbf103793857b96e50fae8d6dfafc96b8dfe224 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854319 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Matthew Denton 1a5fee10 2024-09-11T17:37:54 Fix missing include Bug: angleproject:42267100 Change-Id: Iafa56c8bfcfd898ca58bfe0cc0bb67ca253813e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854007 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Matthew Denton <mpdenton@chromium.org>
Charlie Lao c9d55051 2024-09-06T10:56:07 Vulkan: Consolidate dirtyRanges before vertex conversion Detect two ranges overlap or are continuous and merge them. This reduces number of dispatch calls as well as avoids redundant conversion. Bug: b/357622380 Change-Id: I06b73a1e9fd573d79af985b247f4d66bf97f756e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5851642 Auto-Submit: Charlie Lao <cclao@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 9f002018 2024-09-11T16:31:50 Suppress flaky test on Linux NVIDIA Vulkan KHR-GLES31.core.draw_buffers_indexed.color_masks Bug: angleproject:365974429 Change-Id: Ib7d1a38aa0d4af999975957791d88b90c770f4a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5854322 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> 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>
Cody Northrop 3c93f29b 2024-09-10T20:27:16 Test: Add Chrono Trigger trace Test: angle_trace_tests --gtest_filter="*chrono_trigger*" Bug: b/365875548 Change-Id: Ifd9f2c09f93716341fb36b79e7c7ae5291fa9ed2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5852912 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Dan Glastonbury c335ddfa 2024-07-19T11:48:54 Check only important stencil bits in partialClearNeedsInit When determining if a partial clear is taking place, instead of checking all bits of the stencil masks, only check the lowest bits corresponding to the bit depth of the active drawing stencil attachment. This results in combinations of masks, such as 0xFFFFFFFF and 0x7FFFFFFF as 0xFF and 0xFF, which are equal and not different. Change-Id: Id94082b6f689af92b00fb6d9a6cf65a1e3b4396a Bug: chromium:354025373 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5721289 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 958b657f 2024-09-10T20:34:57 Manual roll vulkan-deps from 725499142cb6 to 3b92cef97feb (32 revisions) Manual roll requested by yuxinhu@google.com Manual roll changes: suppress VUID-vkCmdDrawIndexed-Input-08734 until VVL issue angleproject:365580001 is addressed. https://chromium.googlesource.com/vulkan-deps.git/+log/725499142cb6..3b92cef97feb Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/a496a34b439022750d41d2ba04fbbe416ef81c9a..12a17b7ce41436427e358608183100b1103274da https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/efb6b4099ddb8fa60f62956dee592c4b94ec6a49..2a9b6f951c7d6b04b6c21fe1bf3f475b68b84801 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/e1782d6675b88225225e331a6318554d473c54db..d160e170d74ff45cb2a88dfb365bdfd896016f7c https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/c758bac8bf1580b5018adafd3a2ec709237b0134..1108bba6c97174d172d45470a7470a3d6a564647 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/fbb4db92c6b2ac09003b2b8e5ceb978f4f2dda71..ea5774a13e3017b6d5d79af6fba9f0d72ca5c61a https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/af7b0a35d009b5ad6e0b280a5b81388608ebfe39..99de3c17fbc2db6b6da0347916c9e01a383c2758 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,yuxinhu@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:365580001 Tbr: yuxinhu@google.com Change-Id: Iac9c8b6310d3ebb955dd09fd26b71d373e13b479 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5849280 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 8a8ca298 2024-09-10T14:34:11 Tests: Add Brawlhalla trace Test: angle_trace_tests --gtest_filter="*brawlhalla*" Bug: b/365824633 Change-Id: If3a5213661ffb041903a84a12713e04588b516e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5851640 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao 10d56e63 2024-09-06T10:56:07 Vulkan: use mEntireBufferDirty if range covers entire buffer Detect the dirtyRange covers entire buffer and set mEntireBufferDirty instead of add range into mDirtyRanges. This will get into a much simpler code path that will not have any redundant conversion. This also removes quite big portion of overlapped ranges cases without much of overhead. Bug: b/357622380 Change-Id: Iedaa3662a6fc52257e71d39ab75baddf6ad3e41b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5840476 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Charlie Lao <cclao@google.com>
Matthew Denton c2a9300c 2024-09-10T19:33:33 WGSL: Rewrite input/output variables GLSL builtin variables and in/out variables correspond to WGSL's main function params and return value, so rewrite them accordingly. This is done by generating structs to use as main function params and return values, generating similar global structs, and copying the former into the latter so the rest of the program can just use the variables stored in the global structs. Bug: angleproject:42267100 Change-Id: Ic3e1196f6fb95b963ce03845096a59ea7599d608 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5835347 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Yuxin Hu 61a255cb 2024-09-10T10:56:58 Skip the critical_ops trace on S22 This trace crashes on S22: https://chromium-swarm.appspot.com/task?id=6bf09c55e48e1710. Skip it to keep the bot green and investigate the crash offline. Bug: b/267953710 Change-Id: Id8fc9f4b014ed3d97ca7cce2f56bc49cd9ef380f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5851574 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 6afcbd3e 2024-09-10T10:31:42 Vulkan: Disable dynamic rendering on ARM Due to driver bugs. Bug: b/356051947 Change-Id: Ic345496010b051ad054811a8c34bb3f816bbf258 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5851632 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Rafael Cintron 6655e94f 2024-09-09T15:41:09 Remove Feature Level 9_3, part 2 Remove all of the remaining feature level 9_3 code. Bug: angleproject:355462523 Change-Id: Ifd15d8f5486d3e7f8f2e134f23872abf4a8ea51c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5847452 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Liza Burakova 84492ff3 2024-09-10T13:11:07 Sync vertex attributs in VertexArrayWgpu. This change only sets vertex attributes within VertexArrayWgpu and sets them in the render pipeline description owned by the context. It does not yet set attributes in the output pipeline created in CreatePipeline, as vertex buffers are also not set yet. Bug: angleproject:359823692 Change-Id: I1c3848e15d790026d53d4ab5614b1125f773e06a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5781788 Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Dan Glastonbury d40d1a67 2024-09-05T14:56:46 Metal: Fix OverrideMTLClearColor handling of no texture It's possible for OverrideMTLClearColor to be called with no texture. This can happen with multiple draw buffers where the bound program executable and framebuffer has incompatible component types. When the render pass is prepared by a drawing command, these incompatible attachments are skipped. As demonstated by the new test case, when switching to the framebuffer that has previously been prepared by such a draw, if the state is clean, the render pass attachments are not updated and |texture| is unavailable for use in determining any emulated clear color. Fixed: angleproject:364687937 Change-Id: I1ec9b564dc8cdb5faf7a1ed0f935d38502ca5514 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5836314 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Amirali Abdolrashidi 941b3df3 2024-08-21T17:23:16 Vulkan: Add new threshold for CPU buffer subdata Currently, with preferCPUForBufferSubData enabled, when the GPU is busy, we use the CPU to copy subdata, which includes duplicating the buffer. If the buffer is large, this can cause performance regression. To avoid this, we should avoid using the CPU in cases that can lead to such regressions. * Enabled preferCPUForBufferSubData for all ARM devices. * This feature is only used in the following cases: * If the buffer is smaller than than 32K; or * If the copy size is greater than 1/8 of the total buffer size. * Significant performance improvement observed in several traces. Bug: b/360118138 Change-Id: Ibc8e3de9b4e081c69457c85facba893283c8fb38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5824347 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 53476d6f 2024-09-04T14:34:11 Vulkan: Do vertex conversion with fine grain dirtyRange Right now when we do vertex conversion with multiple dirty ranges, we are merging dirty ranges into single range and then UtilsVk::convertVertexBuffer() is called for the merged dirty range. If there is big gap between two ranges, the merged range could be very big. This means we end up doing many unnecessary conversion. This CL tracks individual dirty ranges and issues dispatchCompute for each dirty range, thus minimize the unnecessary conversions. On S24, this change further reduces TraceTest.gangstar_vegas frame time from ~6.0ms to ~3.8ms, almost parity to native GLES's ~3.6ms. Bug: b/357622380 Change-Id: Ia103f3963bdb5996ff3f95164c955a3e4f33f311 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5787633 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Dan Glastonbury a0126d55 2024-09-06T11:58:58 Metal: Clear mRenderPassesSinceFlush to avoid infinite recursion When there is more than kMaxRenderPassesPerCommandBuffer render passes with active occlusion query, it's possible for the Metal backend to end up in infinite recursion of the following call sequence: `ensureCommandBufferReady` -> `flushCommandBufferIfNeeded` -> `flushCommandBuffer` -> `endEncoding` -> `endRenderEncoding` -> `prepareRenderPassVisibilityPoolBuffer` -> `getBlitCommandEncoderWithoutEndingRenderEncoder` -> `ensureCommandBufferReady` This recursion is caused by the checks in flushCommandBufferIfNeeded not being disarmed once the flush has started and is most likely caused by |mRenderPassesSinceFlush| exceeding |kMaxRenderPassesPerCommandBuffer|. This change moves the clearing of |mRenderPassesSinceFlush| to the top of of `flushCommandBuffer`, before any calls to `endEncoding`, breaking the need to call `flushCommandBuffer` via `getBlitCommandEncoderWithoutEndingRenderEncoder`. Additionally, |OcclusionQueryPool::mUsed| is set to false before the results are cleared. This will also break the recursion and is added for the `mCmdBuffer.needsFlushForDrawCallLimits` case in `flushCommandBufferIfNeeded`. Change-Id: Ib54c0a87ae9c5365ae56d487b6bef99b681d9f59 Fixed: chromium:362791944 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5839224 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop bda33598 2024-09-08T16:08:04 Test: Add Critical Ops trace Test: angle_trace_tests --gtest_filter="*critical_ops*" Bug: b/365417418 Bug: b/365524876 Change-Id: I3e6f3278a9c6ea819d61a0136986631b19170018 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5843583 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Austin Annestrand fc65058c 2024-05-03T14:47:29 CL/Vulkan: Rework spec constant handling Specialization constants can be combined into a single hash map that's later iterated on when we create the compute pipeline. Bug: angleproject:364396920 Change-Id: I161356808ff0bd6a589f01854264210011bec512 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5834664 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop e19377af 2024-08-21T14:52:09 Tests: Support multiple users on Android On most Android platforms, the userId is '0' and many of our defaults just work. But on some, the default is non-zero, and that complicates things. To support this, we have to specify which user is correct, which can be determined with: adb shell am get-current-user Update everywhere we were using sdcard directly and use: Before: /sdcard After: /storage/emulated/<userId> Incorporate the userId to find the application's home directory: Before: /data/data/com.android.angle.test After: /data/user/<userId>/com.android.angle.test This CL: - Starts using a user flag in our Android scripts - Updates where tests look for test data and binaries - Updates where scripts use temp and external storage - Updates script to not use sdcard at all when root - Disables run-as when user is not default Bug: b/361388557 Change-Id: I0fb556ecb2d0f6bc6569a858c290b127217d4638 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5825122 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Mike Schuchardt 45ea2094 2024-09-06T10:36:07 Don't build api_dump for secondary abi on Android 32-bit builds of VK_LAYER_LUNARG_api_dump are extremely slow so skip them when building for arm64. Bug: b/42267058 Change-Id: I8c2d959d86a58537dafa518fb58267b38cda21f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5842279 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Charlie Lao 20511d0b 2024-09-05T17:35:33 Vulkan: Remove unnecessary perfetto trace in BufferVk::mapRange There is not much usefulness to know there is mapRange call. The more meaningful place is where we end up waiting for GPU to finish which we already have the perfetto trace in SharedFence::wait. The exitsing of this trace made a lot of noise in trace since app tends to call this a lot and there are many tiny lines on the trace. Bug: None Change-Id: I83fbbba827361d068b521bdfb2bc187865d11012 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5841067 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov 49a8d05c 2024-09-05T17:41:07 Tests: Add end2end test .so library to AOSP build m[mm] external/angle:libangle_end2end_tests__library produces libangle_end2end_tests__library.so I tested that integration with Chromium wrappers works with some manual patches; no integration is included in this CL. googlest/gtest dependencies replaced with platform libgtest, libgmock TestSuite heavily depends on rapidjson so it is currently excluded, only the standard gtest implementation is included (--gtest_list_tests, --gtest_filter, --gtest_output etc) This also disables support for expectation files as it is piped through TestSuite instance. Bug: b/279980674 Change-Id: I35cb2328d74a3ac778e1d93bb4fe4ac044920b6a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5838526 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Mark Lobodzinski 61c26fd6 2024-08-29T10:11:00 Tests: Add Passmark benchmark Unity trace Add trace of the 'OpenGL ES using Unity ' benchmark case of the Passmark performance test suite. Test: angle_trace_tests --gtest_filter=*passmark_unity* Bug: b/362801313 Change-Id: I15a57fefdb4959e60196646aa5053b6fa5960bcb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5825785 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 0a04cb90 2024-09-04T11:30:36 Translator: Limit shader size check to WebGL and Chromium shaders This is because std430 is not taken into account in the check. That can be fixed with https://chromium-review.googlesource.com/c/angle/angle/+/5835580 if ever necessary. Bug: angleproject:361369308 Change-Id: Id5eacc9bab6d959c8f9f8d09ebd87504dcfa25af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5836785 Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Austin Annestrand 59eff366 2024-05-03T11:33:25 CL/Vulkan: Enable global offset support There is a "--global-offset" clspv flag that enables OpenCL global offsets. This feature is disabled by default otherwise. Bug: angleproject:364396921 Change-Id: I89179228d2ff9e0b6750d9d0d062261dfaddec6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5834663 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 621bba6c 2024-09-04T09:58:09 Vulkan: Fix device entry points loaded as instance Bug: angleproject:359420106 Change-Id: I970ac7b924013a3c8ea5dd73f90bbe1649969753 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5836783 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Rafael Cintron d1a4b0ff 2019-05-04T17:15:42 Remove Feature Level 9_3 code Feature Level 9_3 was originally added for developers creating apps for devices which did not have the DirectX 9 API and are no longer supported. Hence, we can remove the corresponding code in the 11 backend. Bug: angleproject:355462523 Change-Id: I22db15640b435c61db4d82a815edbc65cecc4e12 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5824661 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Alexey Knyazev e13cc7df 2024-08-30T00:00:00 Metal: Add shadow sampler overloads for textureProj[Offset] Added compile guards because sample_compare with bias is not defined for older MSL versions. Fixed: angleproject:354101888 Change-Id: I3972fabc9ebe7b7475343438272e57dcfed007f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5828944 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Igor Nazarov 177d15b3 2024-08-23T19:34:34 Vulkan: Simplify WindowSurfaceVk::prepareSwap() method In case of swapchain recreate inside `prepareSwap()`, perform unlocked ANI call as usual. ANI processing will be done late in `swap()` or `getBufferAge()`. This is possible, because surface `getWidth/Height()` is no longer require valid `mColorRenderTarget`. Because of the above, `swapchainRecreatedOut` parameter was removed. Additionally, `getBufferAge()` now uses `doDeferredAcquireNextImageWithUsableSwapchain()` in order to process possible VK_ERROR_OUT_OF_DATE_KHR error and recreate the swapchain, instead of failing. Test: angle_end2end_tests --gtest-filter=EGLSingleBufferTest.AcquireImageFromSwapImpl* Bug: angleproject:6851 Bug: angleproject:8133 Change-Id: Ieb375781da2b1108d0a5e11dbb012885a946688e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5806335 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Kimmo Kinnunen edc6d2fc 2024-09-02T19:02:11 Metal: Fix watchOS supports32BitFloatFiltering use Avoid using supports32BitFloatFiltering on watchOS, turns out it is not available. Bug: angleproject:360147119 Change-Id: I9ac7101b72d05e06807ba2d18e0fabe7579f62a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5830352 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Kimmo Kinnunen 8b8b3d4d 2024-09-02T21:04:11 Metal: Flush with NoWait on iOS when hitting renderpass count limits Avoid deviating between iOS and macOS in this regard. The behavior should be the same for the caller as well as the implementation. Bug: chromium:1466696 Bug: angleproject:363984104 Change-Id: I39160bcc0a54ea9c767e1109d80cb4d71ecdf207 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5830799 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Kimmo Kinnunen e5532e6c 2024-09-02T20:55:58 Metal: Avoid using Display::prepareForCall The call can be disabled if CGL and EAGL are not in use. Bug: angleproject:363916154 Change-Id: I4aafddec37daae4470316e2ea70a48e4489573b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5830798 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Shahbaz Youssefi 377f7b68 2024-08-30T11:59:41 Vulkan: Remove redundant needs-flush check in glClientWaitSync `SyncHelper::prepareForClientWait` calls `SyncHelper::getStatus`, which already causes pending flushes in the share context to be performed. The second call in `SyncHelper::prepareForClientWait` was redundant and a no-op. Bug: b/362604439 Change-Id: I125e3e5773d29976fe916c3e2f78733f12c72ed0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5823558 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 636d838e 2024-08-27T16:30:04 Vulkan: Decouple Window Surface width/height from color RT `mColorRenderTarget` is invalidated in `releaseSwapchainImages()` method, when swapchain is recreated. It remains invalid until ANI result is processed in the `postProcessUnlockedTryAcquire()` method. In case if swapchain recreate and processing of the results are done in different API calls (prepareSwap and swap), other thread way query invalid render target size using `eglQuerySurface()` API. Currently this should not be possible, but may change in the future. Another way to have invalid render target, is if ANI fails after swapchain recreate. To avoid above problems, surface size is cached after swapchain is recreated. Implementation is moved to the `SurfaceVk` base class. The `WindowSurfaceVk::getRotatedWidth/Height()` methods were unused. `mColorRenderTarget` is now only acessed after ANI result is processed. Bug: angleproject:1319 Change-Id: Ibc007f1e8d30b6281be93c4561e05dd2f14f44d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5816834 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>