src


Log

Author Commit Date CI Message
Cody Northrop 30ae44bf 2024-10-09T14:17:03 Tests: Skip going_balls on Windows Intel Bug: b/372513853 Change-Id: Iec11e1acf3a36f7261cf46adcdfedd826ac88050 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5922076 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop 98b5cf46 2024-10-08T19:50:18 Tests: Add Piano Fire trace Test: angle_trace_tests --gtest_filter="*piano_fire*" Bug: b/372291936 Change-Id: Ia3ad52781e251c01246fb01fd800112b0d0f82d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918738 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 2bb5b443 2024-10-08T19:39:30 Tests: Add Billiards City trace Test: angle_trace_tests --gtest_filter="*billiards_city* Bug: b/372288799 Change-Id: I2e23d648d8fe27807ccbab26c28ad509349d2a01 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5917649 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop ba292370 2024-10-08T19:58:29 Vulkan: Disable imageless framebuffers on Qualcomm and PowerVR * Qualcomm with imageless framebuffers, vkCreateFramebuffer loops forever * PowerVR with imageless framebuffer spends enormous amounts of time in framebuffer destruction and creation. ANGLE doesn't cache imageless framebuffers, instead adding them to garbage collection, expecting them to be lightweight. Tests: dead_cells, chrono_trigger, batman_telltale Bug: b/369693310, b/372273294 Change-Id: I43714154661c4415ec10511ed096da7c23a9a8ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918740 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Solti f0a66ba2 2024-10-09T00:26:15 remove angle_gl_driver_all_angle when resetting Test: presubmit Bug: b/367348883 Change-Id: Ief115403cd2a908873750c97f416255e61410893 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5918343 Commit-Queue: Solti Ho <solti@google.com> Auto-Submit: Solti Ho <solti@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 4984fe12 2024-10-08T14:37:15 Add a test for framebuffer fetch and multisampling To ensure that the fragment shader is implicitly run per-sample, such that the read values are per-sample. Bug: angleproject:42264719 Change-Id: I66968ea2dd92106f222ad6a43ffef0e75ad36528 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5917026 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov d0e2141a 2024-09-30T16:55:59 Tests: GLES1 offscreen replay uses GL_OES_framebuffer_object ANGLE allows to mix GLES1 with non-GLES1 calls but the native driver crashes on e.g. glGenRenderbuffers. Use GL_OES_framebuffer_object so that we can render ANGLE and native the same way (glGenRenderbuffersOES etc) There is no glBlitFramebuffer for GLES1 though, so instead of that render a single frame to the default framebuffer. Also resize the grid from 1/3 screen to fullscreen for more useful screenshots, and remove window /= 4 resize to simplify. Bug: b/370508393 Change-Id: I9c8ac46937aa09f1be186a07548c1ec7e5b15579 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5899376 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi 878e1c92 2024-10-07T16:34:54 Vulkan: Fix line-loop draw arrays after elements Currently, when drawing line-loop arrays in Vulkan, an index buffer is created to assist in drawing (since Vulkan does not natively include a line-loop draw mode). However, when LL array draw calls are mixed with non-LL element draw calls, it can lead to some rendering issues due to the fact that the proper index buffer is not obtained. * In VertexArrayVk::handleLineLoop(), if the cached indices are the same as the last draw, the same index buffer is obtained from the LineLoopHelper object. * (Using the newly added getCurrentIndexBuffer()) * Added unit test in which a triangle element draw is places between two LL array draws. Before the fix, the second LL draw would result in an incorrect line draw. Bug: chromium:40911000 Change-Id: Ibba9a0cb2b77a2b6ae2c1e9230afe3d16b70cb63 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908694 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Roman Lavrov dd66a284 2024-10-04T13:10:14 Perf tests: custom throttling excludes VIRTUAL-SKIN*-MODEL-* These seems to be using different units and get stuck in throttling. Also ignore VIRTUAL-SKIN*-CHARGE-* which I think was the intent but the check ended up in the wrong place. Bug: b/371573999 Change-Id: I2a9e6fbbb41bebfc5d9d85ee187f4f0918dd5e61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905236 Reviewed-by: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 0b78963d 2024-06-18T12:38:38 Perf tests: add thermalservice custom temp throttling E.g. --custom-throttling-thermalservice-temp=36 IThermal interface isn't available on all devices. thermalservice is another way to get similar data, but with its own limitations (for example, on Pixel we don't see CPU ODPM temps there while we do get them with IThermal). Unlike --custom-throttling-temp that we use on Pixel, this flag does not attempt to disable vendor throttling (not sure there is even a way to do that outside of Pixel). Vendor throttling can affect perf results, higher custom temps increase odds of that happening mid-way during a trial. Bug: b/347956784 Change-Id: I1166e07e4a5c88417eb379d5cb6a7440b169d073 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5639336 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi aa61c076 2024-10-08T12:14:13 Autogen files for GL_ARM_shader_framebuffer_fetch_depth_stencil Bug: angleproject:352364582 Change-Id: I3e736195be3a21c2ae48b4ab2922f9ae7bfcbf32 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5916185 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexey Knyazev af33337a 2024-10-07T00:00:00 Metal: Remove unused MSL helpers These helpers are never emitted. Bug: angleproject:372169468 Change-Id: I306164aaf4db1b7070e3e4a0599f0f02a1e29c7d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912762 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi aec90a8d 2024-10-07T10:56:24 Fix ignoring blit bits when attachments are missing GLES requires that the bits provided to glBlitFramebuffer are silently ignored if either the read or draw framebuffer is missing the corresponding attachment. In WebGL, this is forbidden. ANGLE was forbidding this because of WebGL, but a recent CTS test revealed that we shouldn't be doing that when !WebGL. Bug: angleproject:370917919 Change-Id: I202fbf665d8a102f0aea72709b80dfdabeb71a2e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912614 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev 0f7371ae 2024-10-07T00:00:00 Metal: Remove ANGLE_tensor macro Its replacement is never used. Fixed: angleproject:372053408 Change-Id: I1d54efcc1a1ecac1d0c6dae5ff7524b501297fe0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912904 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang 166b72c9 2024-09-30T19:07:26 GL_ANGLE_blob_cache implementation. Bug: chromium:370538323 Change-Id: Ic51a951e78b48b315e36f518bcc39ff2d54660a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5900761 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cody Northrop 770dc68f 2024-10-04T13:05:24 Tests: Add Thief Puzzle trace Test: angle_trace_tests --gtest_filter="*thief_puzzle*" Bug: b/371518149 Change-Id: I593964bdf4a39edf2445a54a400f5faddd4fcaff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5909872 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Geoff Lang 492cf265 2024-09-27T13:44:22 Stubs for GL_blob_cache_angle Bug: chromium:370538323 Change-Id: Ib56b28c24305db8931f382b16a24975b7277fa7e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5900760 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 37c69bd6 2024-10-07T11:00:14 Tests: gold tests assert that filter matches a test As described on the bug, test retries result in an unexpected value passed to --isolated-script-test-filter, which doesn't match any traces. Assert that there is a match as a (permanent) workaround. Bug: chromium:371977204 Change-Id: I415507ea999005a9ac04489582cf77b7d3e29e2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5912615 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Cody Northrop c99f1106 2024-10-05T17:21:37 Debug: Allow forcing GL_RENDERER and GL_VENDOR It can often be useful to force the GL_RENDERER and GL_VENDOR strings to values recognized by applications. Bug: b/371749458 Change-Id: I045a76e733e1b59ad257caceed396847abf3d7fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5910908 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev cd10ad46 2024-09-30T00:00:00 Metal: Rework allowSamplerCompareGradient feature * AMD drivers may fail when a sample_compare function is used with explicit derivatives. To avoid such failures, the effective level is computed from the texture size, passed derivatives, and texture coordinates, if needed. The level value is then used for sample_compare instead of the explicit derivatives. * Apple2 GPUs do not support setting texture sampler compare state via Metal API. As a result, all sample_compare functions including those without LOD options do not work on Apple2 GPUs. This feature was attempting to incorrectly emulate a subset of sample_compare functions with a hard-coded compare state. There are no plans to support shadow samplers on Apple2 GPUs, as it would require non-trivial emulation, so this feature is no longer relevant for that platform. * Metal on macOS 10.15 only supports constant zero as the level parameter for sample_compare functions. Ignoring the passed derivatives and using zero LOD on old OS versions is a better fallback than dropping the derivatives altogether because many applications use the derivatives to set the level to zero anyway. Bug: angleproject:365066518 Bug: angleproject:368059227 Change-Id: I4028421b785ae49328b72658e0a9783275461779 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5903970 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mohan Maiya b3d85cce 2024-09-30T14:28:35 Vulkan: Consolidate write colorspace override states ColorspaceState struct is now used to cache write colorspace related states to determine the colorspace of Vulkan draw image views. ImageViewHelper methods are called during initialization and when colorspace related states are toggled dynamically which in turn process these states and determine the final write colorspace. We can now fully support rendering to EGLImages, with colorspace overrides, via texture or renderbuffer EGLImage targets Bug: angleproject:40644776 Tests: ImageTest*Colorspace*Vulkan MultithreadingTestES3.SharedSrgbTextureMultipleContexts*Vulkan ReadPixelsPBOTest.SrgbUnorm*Vulkan Change-Id: I2be2cd3b5b2b4ac8ecb803c34cde2b846cbd1cbe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5901256 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Yuly Novikov 95379bb4 2024-10-07T14:14:16 Suppress flaky end2end test on Linux NVIDIA Vulkan SixteenBppTextureTestES3.RGB5A1UploadRGBA8 Bug: angleproject:362486580 Change-Id: I2e2f36cce2e98e92b6b84d816cf09dd778a5e21d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5913434 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Mohan Maiya b38cc7fa 2024-09-30T12:43:09 Vulkan: Consolidate read colorspace override states ColorspaceState struct is now used to cache read colorspace related states to determine the colorspace of Vulkan read image views. ImageViewHelper methods are called during initialization and when colorspace related states are toggled dynamically which in turn process these states and determine the final read colorspace. Bug: angleproject:40644776 Tests: ImageTest*Colorspace*Vulkan SRGBTextureTest.SRGB*TextureParameter*Vulkan SRGBTextureTestES3.SRGBDecodeTexelFetch*Vulkan Change-Id: I16b3666cd80865936b826dc0738fc9210dabeda9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5901255 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Mohan Maiya 605c2f85 2024-09-27T12:00:58 Vulkan: Bugfix in FramebufferVk::blit(...) If any color attachment of GL_DRAW_FRAMEBUFFER is already in use in the currently started renderpass, don't reuse the renderpass for blit. Bug: angleproject:40644776 Tests: Texture2DTestES3.UnitTest_DMSAA_dst_read* Change-Id: Ib4266fc65d0ac7151f362f263e9e706adb1231ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5895158 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana f9709279 2024-09-20T16:02:56 CL/Vulkan: Add support for printf builtin processing The support for printf builtin in clspv enabled through the SPIR-V non-semantic clspv reflection instructions - PrintfInfo and PrintfBufferStorageBuffer [1]. The printf buffer is setup with a separate descriptor layout and the pipeline layout is updated accordingly. Also, printf is enabled as default option now for clspv. [1]: https://github.com/KhronosGroup/SPIRV-Registry/blob/master/nonsemantic/NonSemantic.ClspvReflection.html Bug: angleproject:369724757 Change-Id: I20b245eb0fea69941bd1aeb42534f8b729ec17e8 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893958 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao b61f9f9e 2024-10-04T11:07:23 Vulkan: Add operator<< for descriptorSet for debugging Right now it is using streamOut() function which is hard to use with WARN(). This replaces the streamOut function with standard c++ operator<< so that we can use in WARN()/INFO() along with other logs for debugging. Bug: b/368566032 Change-Id: Iec98b4c59f360cbbfb8fbdd85d5d1150fcca8f4a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908773 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao d147a2ca 2024-10-04T10:45:55 Vulkan: release descriptorSets from TextureVk::refreshImageViews When texture has to refresh its imageViews, the existing descriptorSet cache will become obsolete (because the cache key contains view's uniqueSerial). This CL proactively releases all cache so that we don't keep these invalid cache any more. Bug: b/368566032 Change-Id: I82a221b8b8fd072ee3a52b11264addba385526d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908772 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao eb4eaea9 2024-10-03T17:15:21 Vulkan: Improve SharedCacheKeyManager::addKey performance This function walks a vector of keys. When there are many keys this could be slow. Also when we have to grow the vector size, it involves memory reallocation which means copy the data from old storage to new storage. This CL changes mSharedCacheKeys to use std::deque instead of vector which solves storage reallocation problem. It also adds angle::BitSet64<64> to track all available (i.e., empty) slots in mSharedCacheKeys so that we don't have to loop most of time. You only loop all keys once to find all empty slots and then subsequent addKey() call will be O(1) until all empty slots are used. Bug: b/368566032 Change-Id: I4d32b461761f1cd64380f5527883b84357bb44c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908690 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev a921694b 2024-09-30T00:00:00 Metal: Support EXT_texture_shadow_lod Bug: angleproject:365108862 Change-Id: Ieb0b53253c5d9091e0c74baccf808622d9578d5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5907407 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev d550d96f 2024-09-30T00:00:00 Metal: Remove allowSamplerCompareLod feature * Apple2 GPUs do not support setting texture sampler compare state via Metal API. As a result, all sample_compare functions including those without LOD options do not work on Apple2 GPUs. This feature was attempting to incorrectly emulate a subset of sample_compare functions with a hard-coded compare state. There are no plans to support shadow samplers on Apple2 GPUs, as it would require non-trivial emulation, so this feature is not needed. * Metal on macOS 10.15 only supports constant zero as the level parameter for sample_compare functions. Ignoring the requested level and using zero on old OS versions is a better fallback than dropping the parameter altogether because many applications set the level to zero anyway. Bug: angleproject:365066518 Bug: angleproject:368059227 Change-Id: I2cdc0bda5842842d62ad5663427da7f1f37bddda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5907619 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang c94c37c1 2024-09-23T17:22:27 WebGPU: Skip ReadPixels if texture creation failed If texture creation failed due to an unsupported format, ReadPixels would crash calling a null conversion function. Mark this case as UNIMPLEMENTED for now. Bug: angleproject:42266974 Change-Id: Ifa34d9db3d0d14e8e382c2323b4e70d2b1a7d2a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5889090 Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cody Northrop f1458429 2024-10-04T09:50:38 Tests: Add Going Balls trace Test: angle_trace_tests --gtest_filter="*going_balls*" Bug: b/371526637 Change-Id: I4fad1ef0e7ec450b22f86767398d3283e2c89427 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908703 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop 3f132f0c 2024-10-03T19:36:20 Tests: Add Woodoku trace Test: angle_trace_tests --gtest_filter="*woodoku*" Bug: b/371501416 Change-Id: I766aac5f0409ab65264955685ac2267c2de457eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5908693 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Yuly Novikov c861f0d6 2024-10-04T14:18:52 Skip KHR-GLES3.framebuffer_blit.scissor_blit on S22 Started failing after VK-GL-CTS roll. https://chromium-review.googlesource.com/c/angle/angle/+/5903935 https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-s22-test/1316/overview Bug: b/267953710 Change-Id: I63e09c9c1d73a230cf2c12fc079793390d00b095 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905074 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>
Shahbaz Youssefi cd7f2949 2024-10-03T14:14:41 GL: Workaround constructor bug on Nvidia Bug: chromium:328015191 Change-Id: Id581d4eef63860c213313d2d2faaa316685904b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905821 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi b16d105f 2024-10-03T10:25:32 Remove Desktop GL front-end support For Desktop GL applications, please use Zink! Bug: angleproject:370937467 Change-Id: Ie734634bb62a2e98c80e1b32d8b3d34624da3c04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5905428 Reviewed-by: Geoff Lang <geofflang@chromium.org>
angle-autoroll 6024e9c0 2024-10-02T08:01:43 Manual roll VK-GL-CTS from 65470ff2e321 to 179dd9f858f0 (27 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/65470ff2e321..179dd9f858f0 2024-09-30 lorenzo@khronosgroup.org Fix build 2024-09-30 mark@igalia.com Support standalone executable builds on Android 2024-09-30 javed@igalia.com Add tests for draw count clamping with null index buffer 2024-09-30 piotr.byszewski@mobica.com Capture replay tests for VK_EXT_descriptor_buffer 2024-09-30 javed@igalia.com Add tests vkCmdDrawIndexedIndirectCount draw count clamping 2024-09-30 rgarcia@igalia.com Add R8 and R16 large image tests in host image copy test group 2024-09-30 ziga@lunarg.com Add missing linked shader object test case 2024-09-30 tapani.palli@intel.com Fix issues with GLX reset notification strategy 2024-09-30 kamil.goras@mobica.com Split KHR-GLES32.core.tessellation_shader.vertex.vertex_spacing 2024-09-30 jimblackler@google.com Handle resize events in EGL bounding box tests. 2024-09-30 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.9 into vk-gl-cts/main 2024-09-30 lorenzo@khronosgroup.org Merge remote-tracking branch 'vk-gl-cts/dev/VK_EXT_depth_clamp_control' into main 2024-09-30 lorenzo@khronosgroup.org Update Vulkan spec to 1.3.296 2024-09-30 lorenzo@khronosgroup.org Merge remote-tracking branch 'vk-gl-cts/dev/VK_KHR_compute_shader_derivatives' into main 2024-09-20 lorenzo@khronosgroup.org Update SPIRV-Tools, SPIRV-Headers, glslang, Vulkan-Docs, Vulkan-ValidationLayers external sources 2024-09-19 piotr.byszewski@mobica.com Check limits before running mapping_to_large_index DRLR test 2024-09-19 ziga@lunarg.com Test pipeline without render pass or VkPipelineRenderingCreateInfo 2024-09-19 piotr.byszewski@mobica.com Remove invalid dynamic rendering local read tests 2024-09-19 piotr.byszewski@mobica.com Fix pipeline binary graphics tests 2024-09-19 piotr.byszewski@mobica.com Fix pNext chain loop in FSR tests 2024-09-19 kamil.goras@mobica.com Split KHR-Single-GL46.arrays_of_arrays 2024-09-19 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS (glGetUniform), PART 11 2024-09-19 marcin.hajder@mobica.com Port KC-CTS tests to VK-GL-CTS (scissor_blit), PART 12 2024-09-19 marcin.zajac@mobica.com Suballocated DRM images 2024-09-19 piotr.byszewski@mobica.com Test feedback loop with dynamic rendering local read 2024-09-19 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.9 into vk-gl-cts/main 2024-09-18 jimblackler@google.com Fix error in test logging in all CtsDeqpTestCases If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Change-Id: Idbc50f78119327844e1488db25d58c1c588f9ff6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5903935 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Gowtham Tammana b5d548bb 2024-09-20T17:06:54 CL/Vulkan: Update map interface for CLMemoryVk Clean up the map interface of the CLMemoryVk to account for any offsets. Bug: angleproject:369724757 Change-Id: I12c7bf2f7f94cd7fbf57a8ee10748d2275a2ba70 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893956 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana 0a452697 2024-09-19T16:33:26 CL/Vulkan: Enable support for multiple descriptor set handling The clspv transcompiler can generate multiple descriptor sets depending on the kernel e.g. printf storage buffer is setup in a separate descriptor set, and kernel arguments in a separate descriptor set. This change enables setting up of multiple descriptor sets and appropriately bind them. Also, creation of descriptor set and pipeline layout are deferred to kernel enqueue time as it is quite possible that kernels are built in a batch before their use. Bug: angleproject:369724757 Change-Id: I80eb93f4a3b8afc7461c299cc283526cc4b872fa Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893955 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana 371539c3 2024-09-19T16:26:44 CL/Vulkan: Move descriptor set and pipeline layout cache to context Move the descriptor set and pipeline layout caches to context so that cache is shared across programs. Bug: angleproject:369724757 Change-Id: I517d0cc712adb3f8b91d68e5bca8d3ac3ddb39ff Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893954 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski 9edd74e2 2024-10-02T09:31:31 Tests: Add Traffic Rider trace Test: angle_trace_tests --gtest_filter="*traffic_rider*" Bug: b/370733451 Change-Id: I35703fcbc350fbbcaf3544ba6143d5bbb1966483 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5902662 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Austin Annestrand 55980dbd 2024-06-07T13:45:23 common: Improve/fix spir-v utils This change improves the handling of macroed-sections of the code. Also, fixed some typos. Bug: angleproject:370557215 Change-Id: I437b8c4d835dada4554569c72ef7100568c6be48 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5898609 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Corentin Wallez be8cc064 2024-10-02T15:12:42 DisplayWgpu: Remove wgpu::FeatureName::SurfaceCapabilities This feature used to allow querying the wgpu::TextureUsage allowed with a wgpu::Surface. This is no longer necessary to have as an extension since wgpu::Surface supports this capability by default (after it was made a replacement of wgpu::SwapChain). Remove the now useless mention of this feature that was blocking the removal of the feature's code from Dawn. Bug: b/42241264 Change-Id: Ia097f2f6077fa655a2b4b495cdcf3f1fa5f23d55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5904059 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop f680925b 2024-10-01T14:07:03 Tests: Add Warhammer 40000 Freeblade trace Test: angle_trace_tests --gtest_filter="*warhammer_40000_freeblade*" Bug: b/370798324 Change-Id: I77b95721363f3d2cc97a52b2e83ffe5d92e40305 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5902286 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jiewei Qian 435bd0a9 2024-10-02T16:37:06 ssci: use canonical date format Bug: chromium:370881022 Change-Id: Ie8a310b11517fd1be7f95f246bcb9cfe48d95791 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5903336 Auto-Submit: Jiewei Qian <qjw@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 7ff7775b 2024-09-19T00:00:00 Metal: Align internal texture wrapper names Used consistent internal names for all ESSL 3.00 texture wrappers. Bug: angleproject:368059227 Change-Id: I69c162d7b1557bb9a92cba902f4fdd5b4c30ee2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5890621 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 371ab6d8 2024-09-19T00:00:00 Metal: Refactor texture wrappers * Removed variadic macros. * Removed invalid overloads. * Added MSL compile guards to not fail shader compilation on macOS 10.15. Bug: angleproject:368059227 Change-Id: I5376b410670a50cf700f1c33823f43c89c10b876 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893780 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 86872374 2024-09-19T00:00:00 Metal: Refactor textureGrad wrappers * Removed variadic macros. * Removed an invalid overload. * Updated emitter to not output unused variants. * Added MSL compile guards to not fail shader compilation on macOS 10.15. Bug: angleproject:368059227 Change-Id: I816b8b96b264d0ca943bca566987755460b3a72f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893778 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev 39b5f5fc 2024-09-19T00:00:00 Metal: Refactor textureLod wrappers * Removed variadic macros. * Removed an invalid overload. * Updated emitter to not output unused variants. * Added MSL compile guards to not fail shader compilation on macOS 10.15. Bug: angleproject:368059227 Change-Id: If15fcb0cb772e3ee2e2e1669f894fb8de4e76578 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5896390 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 80e5e611 2024-09-19T00:00:00 Metal: Refactor textureGradOffset wrappers * Removed variadic macros. * Removed invalid overloads. * Updated emitter to not output unused variants. * Added MSL compile guards to not fail shader compilation on macOS 10.15. Bug: angleproject:368059227 Change-Id: I47e0c04176bd9f4b6e6abcd266ae4c673135c93b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893503 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Gowtham Tammana cc44090d 2024-09-18T12:28:53 Vulkan: Add an extra descriptor set index In the case of CL, the clspv transcompiler can generate upto four descriptor set indices, so add an extra index to vk::DescriptorSetIndex. Also, adding aliases for CL specific naming. Bug: angleproject:369724757 Change-Id: I45ef8a6d9246c7863ebc6edf08479bc7c661c151 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893953 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Imran Ziad 0040cda1 2024-09-25T18:16:36 Vulkan: Invalidate host visible non-coherent buffers on mapping We can not trust the cache during CPU readback when the buffer memory type is non-coherent. Bug: b/366134076 Change-Id: I89920cfa468ee0be0feb607fea9d60bc0732191f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5890707 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Imran Ziad <imranziad@chromium.org>
Amirali Abdolrashidi 572fd30e 2024-09-25T13:33:01 Clean up LineLoopIndirectTest The helper test function runTest() for LineLoopIndirectTest includes some special cases in its args that are not used in all cases, such as consecutive indirect calls. This CL aims to split this function into separate test cases to make each test more readable. * Added functions for some of the common procedures. * Split runTest() into each test suite with the help of the common functions and values as well as the special cases for each. * Removed runTest() from this test suite. * Updated an old bug number (667 -> 42265165). Bug: angleproject:360758685 Change-Id: I98e1facff0a6bad0ee2deca9313644379345d9c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5892535 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Amirali Abdolrashidi 67a5ea45 2024-09-23T16:09:12 Vulkan: Fix the error from multiple lineloop draws Since Vulkan does not support line-loop draws natively, such a draw call requires the conversion of the related buffers to prepare them for this operation. For glDrawElementsIndirect(), the index and the indirect buffers would need conversion. However, what currently happens in this case is that the original buffer pointer is overwritten after the conversion, removing the link to the original buffer. Therefore, if there is a second line-loop call just after the first, it will try to use the converted buffer as the new source, which leads to errors due the buffer already being in use. The index buffer for the draw is bound when the related dirty bit is handled. Therefore, instead of using the draw index buffer directly for handling the line-loop scenario, we can use the index buffer in the form of a local pointer passed between functions. Then, in order to reconcile line-loop with the other cases, the draw index buffer is set just before setting up the indexed draw. * Functions handling line-loop draws do not modify the element array buffer in VertexArrayVk directly, but use local buffer pointers to pass the current element array pointer to further processing and drawing. * Added mCurrentElementArrayBuffer for ContextVk to be bound to the index buffer to used for draw instead of the one from its vertex array object. * Before the indexed draw, mCurrentElementArrayBuffer is set to the last destination index buffer. * Added unit test that makes a line-loop draw and then a non-LL call using the same element array. Bug: angleproject:360758685 Change-Id: I6d6328f6326c1a1f9f80e5ef346aa077c867d344 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5878764 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Juston Li e06b07a9 2024-09-27T18:17:16 Vulkan: populate ycbcr conversionDesc for yuv VkFormats For this case, the external format has a vulkan equivalent VkFormat and is YUV, so conversionDesc needs to be populated. YcbcrConversionDesc::update() expects externalFormat to be 0 in this case since it has an equivalent. Bug: b/368429977 Bug: b/352595520 Change-Id: Ifdae7a539555d78bbbf9d11cdbb946cb815c7709 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5896250 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov 03b5ea39 2024-09-27T14:03:16 Traces: --offscreen syncs on N-2 frame GPU completion This avoids the issue described on the bug where an app's assumption about double buffering can create a race. This prevents the replay from getting too far ahead rendering to offscreen framebuffers. Also correct mOffscreenFramebuffers to use mTotalFrameCount as the use of mOffscreenFrameCount appears accidental. Bug: angleproject:370089935 Change-Id: I30f438eb66201fe77d61710cbe6e90d47e839dd8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5895974 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 7c811715 2024-09-25T11:09:44 Vulkan: fix crash when clearing stencil with ClearBuffer Follow up to [1] which fixed a crash with glClear, but the bug remained with glClearBufferiv. This change refactors the "is stencil write masked out" query to always take the framebuffer's stencil bit count into account (practically always 8), which also happens to make the rest of the code checking this query more accurate in the presence of nonsense masks where the bottom 8 bits are 0. [1]: https://chromium-review.googlesource.com/c/angle/angle/+/3315158 Bug: chromium:40207259 Bug: angleproject:42266334 Change-Id: I68a6b0b75c67ed2cdc8c4d03b243efe5495efce1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5889788 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mark Lobodzinski 7b0212b3 2024-09-27T10:02:58 Retrace cod_mobile for minimum requirements Test: angle_trace_tests --gtest_filter=*cod_mobile Bug: b/369984808 Change-Id: Ibf3b5c446311d27b0a78867cbd8cc523f76adcbc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5895156 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shufen Ma 0621c95c 2024-09-09T09:43:43 Add test for repeated indirect line loop draws This test is used to verify that two indirect draws drawing line loop and sharing the same index buffer works. Bug: angleproject:360758685 Change-Id: I4386e404ed0e0accf0dbb1edab8671e7f2d9939d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5855003 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexey Knyazev baf0c6b2 2024-09-19T00:00:00 Metal: Refactor texture[Lod]Offset wrappers * Removed variadic macros. * Removed invalid textureLodOffset overload. * Split bias variants into separate wrappers. * Updated emitter to not output unused variants. Bug: angleproject:368059227 Change-Id: I983d84685479e5154f2ecfb15b525c1acbb9e280 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5890517 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev bc9c772d 2024-09-19T00:00:00 Metal: Refactor textureProj[Offset] wrappers * Removed variadic macros. * Split bias variants into separate wrappers. * Updated emitter to not output unused variants. Bug: angleproject:368059227 Change-Id: I6e08e92dfbc2378bfc4ccd7760dbe28f6bc64f27 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893163 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mark Lobodzinski 0ec8a7f1 2024-09-26T11:06:25 Prevent multiple solutions when retracing with get_min_reqs Skip extensions that implicitly enable other extensions in the retracer script when running to determine minimum requirements. Test: Retrace cod_mobile with get_min_reqs Bug: b/42266279 Change-Id: Iee6f629d1b338362809ff8880d8a5d9ed7c574de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893959 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Shahbaz Youssefi 05c62ebc 2024-09-24T13:41:57 Fix check for whether stencil write is masked out The stencil write mask is the only thing that decides what bits get written to. Previously, this was masked with the reference bitmask to determine if any bits get written to, which is incorrect. The effect of this was that the Vulkan backend would use the READ_ONLY layout for the depth/stencil attachment even though stencil could have been written to the attachment. Bug: angleproject:42266334 Change-Id: Ice6a35f4691fc8e09c7d5e1db6439c3079dfa039 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5887905 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev b4ec5850 2024-09-19T00:00:00 Metal: Refactor textureProj(Grad|Lod)[Offset] wrappers * Removed variadic macros. * Updated emitter to not output unused variants. * Added MSL compile guards to not fail shader compilation on macOS 10.15. Bug: angleproject:368059227 Change-Id: If9d9479c056da6a76cff78c7c5b42101a0fcce1e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5893255 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang fe8c0390 2024-09-25T19:00:34 WGSL: Run SeparateCompoundStructDeclarations to name structs Borrow SeparateCompoundStructDeclarations from the Metal backend to separate struct definitions and name nameless structs. Refactor id generation into a callback. Bug: angleproject:42267100 Change-Id: I8ed6f13113a5d5e450d30ce187ce1df52e572000 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5889089 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Geoff Lang 7e249881 2024-09-25T17:31:18 HLSL: Emulate mix functions when the last parameter is a bool. Add emulation for the ESSL 310 variants of mix that use int and uint vectors and a bool selector. Bug: angleproject:369533080 Change-Id: I0491c50c65529b9d922d4745c0989131b9981048 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5892352 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: dan sinclair <dsinclair@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 994bbbfc 2024-09-23T23:30:10 Vulkan: Don't require renderability in AHBs If the AHB usage includes GPU_FRAMEBUFFER, in practice it should be impossible for the corresponding Vulkan format to not be renderable. However, to guard against potential driver bugs, renderability is still checked if the AHB usage includes that bit. Bug: b/368429977 Change-Id: Iae23432c369cd933f14c143f67c08720d76009fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5881904 Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Hao Li 2af09236 2024-09-24T13:55:04 Vulkan: Enable monolithic pipelines on Intel Windows The hang issue is fixed and not reproduced on Intel Windows drivers 101.5379 and later. Bug: angleproject:369043994 Change-Id: Ic395ca47e65fa6467baf09e54b7e24c0d7d71ad3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5885989 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Chris Dalton 966739ac 2024-09-19T23:49:06 Drop PLS support for EXT_shader_pixel_local_storage Supporting this backend drastically increased the complexity of the codebase, with little return. We don't support memoryless attachments on the web anyway, and since this extension requires us to literally draw the load/store operations, input attachments on Vulkan perform better. Once this implemention is completely removed, we will delete the PLS allow list, which isn't required for the other PLS implementations. Bug: angleproject:7279 Change-Id: Ibb036d36cbd33467e7a94398ce171cda7349e4f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5874412 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Matthew Denton a6ee4641 2024-09-25T11:41:47 WGSL: Output default uniform block and accesses to it Default uniforms are put into a WGSL struct, and all accesses of those uniforms now output struct accesses. Similarly to I/O vars and builtins, these are outputted in a pre-pass, but in the future it might make sense to do what Vulkan does and do an AST transformation to put the default uniforms into a UBO which should be outputted similarly. This does not handle bool, matCx2, or array of element size < 16. Bug: angleproject:42267100 Change-Id: If29e2895a8aba3212b581813316af87273c1515c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5878759 Reviewed-by: Liza Burakova <liza@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Yuly Novikov fe6c13d7 2024-09-25T13:34:49 Skip dota_underlords on Linux NVIDIA Recently became flaky on GTX 1660 driver 535.183.1.0. Bug: angleproject:369533074 Change-Id: Ieba8657366687f742812643cb25cadfd7ba09817 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5889565 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev 036e3ff1 2024-09-23T00:00:00 Remove Framebuffer::usingExtendedDrawBuffers This function is unused. Bug: angleproject:369533073 Change-Id: I604a032442ff04fc23b5bc72deebaf94cc2878c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5889566 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Yuly Novikov f1843343 2024-09-25T14:36:04 Skip flaky end2end test on Metal AMD PolygonModeTest.DrawLinesWithDepthOffset flaky on MacBookPro16,1 Bug: angleproject:369540617 Change-Id: I4c67fde9824817b63215496410490e071d61d278 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5890845 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Geoff Lang 6cd8a2db 2024-09-20T14:01:17 WebGPU: Use SurfaceTexture instead of SwapChain. The SwapChain api is deprecated. Bug: angleproject:342213844 Change-Id: I664d09eb0a0e8bca2ad73d9362f1f754f4dfbc7b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5873858 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Yuxin Hu eaffa034 2024-09-24T20:56:04 Revert "Vulkan: Consolidate colorspace override states" This reverts commit bffcd235ba6c031603d798daaa98f1cf9a3f3e46. Reason for revert: Breaks Android test `org.skia.skqp.SkQPRunner#UnitTest_DMSAA_dst_read`. Details: https://b.corp.google.com/issues/369388539. Original change's description: > 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> Bug: angleproject:40644776 Change-Id: I5bf6cf2ed0c8ec22fc02d8c3da92673ee85fe002 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5888506 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Geoff Lang 1798e1f0 2024-09-24T10:21:53 GL: Avoid infinite loops clearing GL errors When a GL_CONTEXT_LOST error is generated, every subsequent call to glGetError will also return GL_CONTEXT_LOST. Avoid this by early returning. The error will be picked up later by the HandleError call. Bug: chromium:368263759 Change-Id: I132e3ecaf240e90f26060e1188736a3374bf88dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5887225 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Igor Nazarov f5f419ec 2024-09-04T20:22:20 Vulkan: Add verify-restore in CompressAndStorePipelineCacheVk() Change fixes following 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. Solution: The `StorePipelineCacheVkChunks()` function now check what chunks exist in the blob cache (if `lastNumStoredChunks` parameter is positive) and restores any missing chunks if their number is less than `lastNumStoredChunks`. First call to `StorePipelineCacheVkChunks()` passes zero (0) to the `lastNumStoredChunks`, which will skip the check and store all chunks unconditionally. If "verifyPipelineCacheInBlobCache" feature is enabled, the `StorePipelineCacheVkChunks()` will be called again to restore possibly missing chunks. If "hasBlobCacheThatEvictsOldItemsFirst" feature is disabled, the function will be called repeatedly in a loop (opposed to only once), until all chunks are present or until number of missing chunk stops decreasing. Bug: angleproject:4722 Change-Id: Ibbbdb2f878d6aafd7ab5586fc654e2b9be900a9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5837042 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Geoff Lang 0b610712 2024-09-20T12:00:17 WebGPU: Sync index buffers, add indexed draw calls Bug: angleproject:368600230 Change-Id: Ibf1c4921635b525b7650e70ce7dc939e2bad2ebb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5828229 Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 75297ee9 2024-09-24T13:30:55 Skip dEQP GLES3 crashes on Metal AMD dEQP-GLES3.functional.shaders.builtin_functions.precision.* crash on MacBookPro16,1 Bug: angleproject:369219143 Change-Id: I3ec2ea9e0aef7600dcadd0d939934da9d27a227c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5887047 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cody Northrop ff5dfad5 2024-09-20T11:23:07 restricted_trace_perf: Change loop order Before this CL we are doing: For each renderer For each loopcount For each trace Do the test Write out summary of all results We don't get useful data unless the entire script completes. We are seeing some devices disconnect more often, so let's change the order to preserve data. The loop becomes: For each trace For each iteration For each renderer Do the test Write out summary for the trace Output becomes: native_1945_air_force vulkan_1945_air_force native_1945_air_force vulkan_1945_air_force etc. The final output is unchanged. Raw data will be in a different order. Bug: b/369203495 Change-Id: I09b189b5c578dd520123e4ac850018e75b219aa8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5884633 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Geoff Lang b563ede4 2024-09-20T20:30:21 WebGPU: initDefaultUniformBlocks outside of an ASSERT initDefaultUniformBlocks was not being called in release builds and crashing when attempting to read the uniform layout info. Bug: angleproject:42267100 Change-Id: I9e13ffee1260e4f30aed24c7bfa9e767639a5c2b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5878925 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi a6ec0bb9 2024-09-23T10:50:28 Vulkan: Fix recursion in ensurePipelineCacheInitialized() If the initial data was loaded from the blob cache, this function called getPipelineCacheSize() to initialize mPipelineCacheSizeAtLastSync. However, that function itself lead back to ensurePipelineCacheInitialized(), causing a recursion. This was previously undiscovered as the conditions that would lead to the global pipeline cache needing a lock were yet to materialize in the wild. Since the preferMonolithicPipelinesOverLibraries feature was made more widely enabled in [1] and consequently a race condition was fixed in [2], this recursion was discovered as a deadlock due to the mutex use. While this change avoids the recursion, it simultaneously optimizes the syncPipelineCacheVk() function by making sure the lock is taken once intstead of twice when retrieving the pipeline cache size and subsequently data. This also avoids a previously encountered race condition where the pipeline cache was modified in between the two queries and VK_INCOMPLETE was returned from the second call. [1]: https://chromium-review.googlesource.com/c/angle/angle/+/5870466 [2]: https://chromium-review.googlesource.com/c/angle/angle/+/5872715 Bug: angleproject:42265839 Change-Id: Ic682b3d20ec4411ba180b3bafb807fdde8166d5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5883153 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Steven Noonan <steven@uplinklabs.net> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Roman Lavrov fdec6935 2024-09-20T16:29:03 Workaround supportsSurfaceMaintenance1 on Linux with llvmpipe Presence of multiple ICD appears to confuse the loader and we end up with support reported but vkGetPhysicalDeviceSurfaceCapabilities2KHR not actually working (see bug for more detials) Bug: angleproject:368647924 Change-Id: Idc813b99f873643d067cc4b4e38f1ed5249500b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5875015 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 1e74ce33 2024-09-17T14:44:36 Reland "Vulkan: Prefer monolithic pipelines everywhere" This reverts commit 1503a10737e28ac9d1bb98c2f3e369880c63ca43. Reason for revert: Fixed threading + undo for buggy drivers Original change's description: > 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> Bug: angleproject:42265839 Change-Id: I007a3efc69e0edc040b0feddcd84e191f68ded9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5870466 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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>