src


Log

Author Commit Date CI Message
Roman Lavrov efeb6570 2024-01-16T10:00:32 Suppress ParallelLinkProgramBenchmark.Run/gl_* on Linux Already suppressed on Windows, linux-nvidia-gtx1660-perf has a high rate of flakes. Bug: angleproject:8410 Change-Id: I5031ec0ab913938d10141121b555878883e9bb9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5201387 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 572323cc 2024-01-11T16:20:02 Fix program link after backend rejects program binary If ANGLE believes the program binary is fine, it populates the program executable. If the backend then rejects the program binary, the executable was not reset. After the rejection, ANGLE proceeds to redo the program link, in which case it fails in various ways (ASSERT failures, incorrect data etc) as it tries to accumulate info on top of the previous executable. Bug: angleproject:8471 Change-Id: Ia4d626f5f9643c39a81062da3d5d58aa4c6be762 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5189152 Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski e9aa41f5 2023-11-06T15:00:33 Trace/Replay: Add multi-context call grouping Instead of inserting eglMakeCurrent calls into the command stream where context changes occur in the traced application, track the context for all calls. During trace generation output calls grouped by context while preserving synchronization, reducing the number of context switches and improving performance. Test: Capture Diablo Immortal or Asphalt 9 trace and replay Bug: b/300965096 Change-Id: Ia02e0ddf0440ac8a9a0ef3b6af67788f2f147809 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4909217 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Cole Faust 3461be1a 2024-01-11T11:35:14 Version check usages of getPackageInfo() and of() These were introduced in api level 33, and would crash on older devices. Bug: b/268261262 Test: Presubmits Change-Id: I4f0b4dbeab50508477adc1948fa1938ae576f369 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5190807 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Peiyong Lin <lpy@google.com>
Yuxin Hu 7d9c1d5f 2024-01-11T23:09:22 Add a test to check eglInitialize works in multithread Bug: angleproject:8265 Change-Id: Ib87c5e66be1387c21642353cb3f3dc8841150ba9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5190063 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 250b2f68 2024-01-12T11:04:48 Add imports for use_resource_processor: true Bug: b/319160342 Change-Id: If3429b2407d78747e6d6d96d11d8b895e962e13d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5192476 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop a06f5f89 2024-01-10T21:50:42 Android: Apply rules to global settings on boot When we receive BOOT_COMPLETE or MY_PACKAGE_REPLACED broadcasts, parse the rules and apply them to global settings. Bug: b/293503000 Test: Manually built and installed on Android Change-Id: If081f707f5acf0f22d10837177823bac59c3d4df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5191963 Reviewed-by: Peiyong Lin <lpy@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 99ca7f24 2024-01-11T20:49:00 Android: Add ANGLE to rules so it is non-empty This allows tests to know when the rules parsing is complete and global settings have been initalized. Bug: b/293503000 Test: Manually built and installed on Android Change-Id: Ifdb7537cf210ff36900c432394b21e183b4dac3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5191962 Reviewed-by: Peiyong Lin <lpy@google.com> Commit-Queue: Peiyong Lin <lpy@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 28290eae 2024-01-11T00:00:00 Metal: Do not try to create buffers exceeding device limits Checked Metal device's maxBufferLength before creating a new buffer. Fixed: angleproject:8326 Change-Id: Ie56db8f951a733b7b6a6a07284b6d912ee59f7ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5190340 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Mohan Maiya 073b6510 2024-01-11T07:40:32 Add missing GLES1 glGetBooleanv() enums In OpenGL ES 1, capabilities that can be queried using glIsEnabled() can also be queried using glGetBooleanv(). As such, some valid glGetBooleanv() calls were returning "Invalid pname" error. Added support for the missing enums in glGetBooleanv(). Bug: angleproject:8481 Tests: GLES1 - QueryTest* Change-Id: Ic3a50eda4eae5855cd9491dbf217b5f69c1669b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5188456 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e3708149 2024-01-11T15:23:30 Add a test to ensure multiple eglInitialize calls work Bug: angleproject:8265 Change-Id: I186942a7830a35c563df503aa2b06e407288eef3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5191165 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Vasiliy Telezhnikov 80e4bcd6 2024-01-05T13:58:13 Fix crash in eglQueryDeviceStringEXT for EGL backend Underlying eglQueryDeviceStringEXT can return NULL if there is no DRM node associated with EGL device. https://registry.khronos.org/EGL/extensions/EXT/EGL_EXT_device_drm_render_node.txt Bug: angleproject:7686 Change-Id: Iec6acc43ac8c9d277df064161e718155d5c03c95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5170889 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Vasiliy Telezhnikov <vasilyt@chromium.org>
Shahbaz Youssefi c0dae760 2024-01-10T18:37:03 Wildcards instead of redundant API specification in expectations The expectations already specify the API they relate to. As such, specifying the API tag in the gtest name is redundant. For example, it is preferred to specify: 1234 MAC OPENGL : Foo.Bar/* = SKIP instead of: 1234 MAC OPENGL : Foo.Bar/ES2_OpenGL = SKIP 1234 MAC OPENGL : Foo.Bar/ES3_OpenGL = SKIP This change also adds a presubmit to make sure the latter is not reintroduced. The only possibly legitimate use case for being specific about the test name is if only a variant of the test fails (such as ES3_OpenGL_SomeWorkaround). Note that if the opposite is the case (i.e. ES3_OpenGL fails, but ES3_OpenGL_SomeWorkaround passes), it's an indication that the feature that made the test pass should have been enabled by default. Bug: angleproject:8465 Change-Id: I11476e36c83cbbeb8148b6e934c42ccd9b988de1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5185675 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 2e2d7247 2024-01-11T11:50:44 Roll vulkan-deps from eb5fcf15ff7f to 124ff11a5e15 (21 revisions) Skip VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658 added in: https://github.com/KhronosGroup/Vulkan-ValidationLayers/commit/939e7c3fcbb75f71f0dfa999064c74f27a014189 https://chromium.googlesource.com/vulkan-deps.git/+log/eb5fcf15ff7f..124ff11a5e15 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/db4d6f85af..1952e63d43 * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/cffc08a542..37a58e4c95 * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/1bfd27101e..bdd1b2ab1f * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/e2b7bb1207..4c20ea3156 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/02f1cb7d55..6f441477e7 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,cnorthrop@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:8482 Tbr: cnorthrop@google.com Change-Id: Iaa696787ae66ba44db591c18833d2b7261474c08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5185141 Reviewed-by: Solti Ho <solti@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 950d054a 2024-01-11T00:00:00 Metal: Do not defer global const initializers Since MSL supports constant global variables, they should not be included in the DeferGlobalInitializers operation. This reduces temporary register usage and thus makes shaders that use large const arrays more compatible with Apple GPUs. Fixed: angleproject:8479 Change-Id: If1cd17a0a194173e60e6b5152297054fc384c0b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5189165 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mohan Maiya f1fee64d 2024-01-10T13:35:53 Bugfix in MultithreadedAHBImport tests Depending on thread scheduling it is possible that thread0 moves beyond Step::Start before thread1 waits for it. This causes a FATAL error with log - FATAL: MultiThreadSteps.h:73 (waitForStep): \ waitForStep requires increasing order. mCurrentStep=1, waitStep=0 Fix this by making thread1 wait on Step::Thread0Created* Bug: b/261552549 Change-Id: I8e7c9ed554285fea5674263c5807db67b908a725 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5186836 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e00995d4 2023-12-21T15:57:39 Vulkan: Invalidate pipeline with FBO draw buffer change Enabling/disabling draw buffers can affect the graphics pipeline without changing the render pass description. In that case, the graphics pipeline was not being invalidated. Bug: angleproject:8463 Change-Id: I6848472dcbb3d3ce4c34d95be28c8ec3fc50dcd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5147847 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Alexey Knyazev 473dd389 2024-01-04T00:00:00 Metal: Fix out/inout parameter aliasing Ensured that MSL-internal structs are included in the parameter aliasing checks. Fixed the following tests: dEQP-GLES2.functional.shaders.function .global_variable_aliasing_fragment .global_variable_aliasing_vertex dEQP-GLES3.functional.shaders.function .global_variable_aliasing_fragment .global_variable_aliasing_vertex Fixed: angleproject:7145 Change-Id: Ia1e40e72a69e2f91b480ef5fbb75ff0f0a1a772a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5176988 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mohan Maiya c2ad86bc 2024-01-09T15:39:26 eglGetError is now a lockless entrypoint eglGetError returns last recorded error in a thread, there is no need to lock the global mutex. Bug: b/318921454 Change-Id: I9e5192becc67dc81b54abfb63d2b32283ebc69d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5181881 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 2937ee27 2024-01-08T20:01:48 Manual roll VK-GL-CTS from c92e4b2608d4 to 75a6a8315e20 (14 revisions) Includes manual ANGLE changes to reference new file names. https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/c92e4b2608d4..75a6a8315e20 2024-01-08 lorenzo@khronosgroup.org Update external sources 2024-01-07 rgarcia@igalia.com More VK_EXT_host_image_copy tests with depth/stencil buffers 2024-01-07 rgarcia@igalia.com Additional host image copy tests 2024-01-07 rgarcia@igalia.com Fix identical_memory_layout host image copy tests 2024-01-07 james.fitzpatrick@imgtec.com Check for entry points dependencies and validate all entry points from extensions 2024-01-07 rgarcia@igalia.com Add --quiet option to suppress standard output messages 2024-01-07 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.7 into vk-gl-cts/main 2024-01-05 gleese@broadcom.com Allow VK_KHR_vertex_attribute_divisor 2024-01-05 jbolz@nvidia.com Disable KHR attrib_divisor tests for VulkanSC 2024-01-05 cturner@igalia.com Populate all members of StdVideoDecodeH265PictureInfoFlags 2024-01-05 eilif.swensen@arm.com Add external_format_resolve to no_unknown_extensions 2024-01-05 marcin.hajder@mobica.com TransformFeedback API errors in compatibility profiles 2024-01-05 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkansc-cts-1.0.2 into vk-gl-cts/main 2024-01-02 aitor@lunarg.com Rename files/directories from master to main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,cnorthrop@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:8475 Change-Id: Iab2df38c310becb4785828d7129fe10c6d0228fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5177828 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Amirali Abdolrashidi 4b356c39 2023-08-17T10:49:19 Vulkan: Drop support for VMA 2.0 Since ANGLE and Chromium were last updated to use VMA 3.0, there have been no breaking issues so far. * ANGLE update: https://crrev.com/c/4777337 * Chromium update: https://crrev.com/c/4911597 Therefore, the support for the old VMA (2.3) can now be removed. * Removed ANGLE_VMA_VERSION from the build files, since they are no longer required. * Removed the VMA-related guards in the code as well. * Removed the flags and thresholds for the buddy algorithm, which were used in VMA 2.3. * Share group buffer pools is no longer a map. Bug: b/303290680 Change-Id: Ic2b29e8f95ca5c941b297b20442c5bad4b8f52e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4791667 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll f7296e95 2023-12-29T10:01:26 Roll vulkan-deps from 1fd0038f3bbb to 7f90849f10d0 (6 revisions) Skip VUID-VkImportMemoryFdInfoKHR-handleType-00667 added in https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/7199/commits/cebf29d9587aad38acf52351d4b6225e7c1d032f https://chromium.googlesource.com/vulkan-deps.git/+log/1fd0038f3bbb..7f90849f10d0 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/89824a83b7..88c5373ee4 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/741a9dfd8f..a3b11f1fcc * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/e3d690bb54..98dea76972 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,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: angleproject:8470 Change-Id: Iba9e9dae398a753fd9675e5b68551abe2dfc0c46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5155494 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Solti Ho <solti@google.com>
Mohan Maiya 295eece6 2023-12-26T17:28:04 Vulkan: Add feature to force enable sample usage Add a feature that would force enable the VK_IMAGE_USAGE_SAMPLED_BIT usage flag for an image with external format, irrespective of the requested AHB usage. Bug: b/155487768 Change-Id: Ie46012d6f905317cd42a69768b4d35b44db474c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5153131 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Amirali Abdolrashidi 82c0ba93 2023-12-21T16:18:40 Set dirty bit when GLES1 texture state changes During experiments, it was seen that some devices fail to use the tex coord pointer properly after GL_TEXTURE_2D is re-enabled and there is a draw without updating any additional attribute pointers. * The GLES1 renderer will now also set the dirty bit for the vertex array when GL_TEXTURE_2D state changes. * (via setEnableVertexAttribArray()) * Updated the following test: DrawWithTexCoordPtrThenDisableTexture2DAndDrawAnother * Updated so after GL_TEXTURE_2D is enabled, we draw without updating the vertex pointer to check that simply enabling textures is enough to use the texture data. Bug: b/310688730 Change-Id: I0d93bd6fae3d07ea86cf0e5e094ce7a29f2e5f1e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5147197 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Mohan Maiya 343e774a 2023-12-26T16:44:47 Vulkan: Bugfix in usage flags of images with external formats Enable VK_IMAGE_USAGE_SAMPLED_BIT usage flag for an image with external format only if the equivalent AHB usage was requested. Force enabling VK_IMAGE_USAGE_SAMPLED_BIT usage will mask bugs where an app or vendor gralloc module fails to include the AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE or the equivalent gralloc usage flag when creating the AHB Bug: b/155487768 Change-Id: If09cd739a6fdc3ac7905f9d4c1fc9d4098e0cdad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5153125 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Alexey Knyazev a6b9a744 2023-12-21T00:00:00 Metal: Implement vertex attribute aliasing When vertex attribute aliasing is supported, the external vertex input struct is filled post-link to account for potentially aliased attributes. Fixed the following tests: dEQP-GLES2.functional.attribute_location.bind_aliasing .cond_float .cond_vec2 .cond_vec3 .cond_vec4 .cond_mat2 .cond_mat2_offset_1 .cond_mat3 .cond_mat3_offset_1 .cond_mat4 .cond_mat4_offset_1 dEQP-GLES3.functional.attribute_location.bind_aliasing .cond_float .cond_vec2 .cond_vec3 .cond_vec4 .cond_mat2 .cond_mat2_offset_1 .cond_mat3 .cond_mat3_offset_1 .cond_mat4 .cond_mat4_offset_1 .max_cond_float .max_cond_vec2 .max_cond_vec3 .max_cond_vec4 .max_cond_mat2 .max_cond_mat3 .max_cond_mat4 Fixed: angleproject:6297 Change-Id: Ifa6b82e0d7d4e12115ec19e342cfb82ab4389f5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5148210 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 3c8501b3 2023-12-21T00:00:00 Metal: Handle embedded uniform struct arrays Preserve arrayness type information when replacing uniform declarations. Fixed: angleproject:6525 Change-Id: I09ea79ffa5bf74e06503985d4f90ccbe0bf25570 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5150729 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 706b5abe 2023-12-21T00:00:00 Avoid UB in 16-bit IOSurface tests * Removed incorrect R16UI mappings from backends * Fixed the enum used in RenderToR16IOSurface * Added more 16-bit tests Fixed: angleproject:7445 Change-Id: I7d5fb8b6a5fc7a57de8f988fdcc21e66606f875d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5148211 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Mark Lobodzinski d18f22ca 2023-12-14T11:50:19 ANGLE: Update syncval exceptions and add test for syncval errors Trace testing found some new cases where the current sync val error messages needed to be widened to cover more cases. A test was added to reproduce the behavior seen in the Asphalt 9 ANGLE trace. Test: FramebufferTest.InvalidateAttachmentStencilOnly Bug: b/316337308 Change-Id: Icde7ad560e6949712bfd785d9969b9e179d11492 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5124314 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Hailin Zhang 536042b6 2023-12-20T12:26:00 vulkan: fix etc2 srgb8_alpha8 alpha decode issue. for etc2_srgb8_alpha8 format, we should not use signed alpha decoder. Bug: b/314875175 Change-Id: I89f7eaf71e31f279da08c83989f8d692a8ba2c81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5142566 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Shahbaz Youssefi a1143857 2023-12-18T15:24:42 Fix UBO dirty bits vs PPOs This change fixes propagation of UBO dirty bits (such as through glUniformBlockBinding and glBindBufferRange) to program pipeline objects. Since PPOs concatenate the attached programs' UBOs in a list, a map of program UBO indices to PPO UBO indices is introduced to offset these dirty bits appropriately. Additionally, when the program's executable's buffer bindings change (through glUniformBlockBinding), a notification is send to the PPO to update its executable's buffer binding accordingly (which is otherwise only updated during PPO link). Bug: angleproject:8462 Change-Id: I4965ae23e6fc6cac0842e1643755e42e95d3d5cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5131418 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 16bfe951 2023-12-21T10:23:05 Add README.chromium for llvm and clspv Bug: angleproject:8369 Change-Id: I20bbb38b45aace848f8002cb49f206d98c2d7aa1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5145927 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
angle-autoroll e15a7de3 2023-12-21T10:01:41 Roll vulkan-deps from 9c3a33aed0ec to 34a8babeb440 (5 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/9c3a33aed0ec..34a8babeb440 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/c155f881ee..abb79089a8 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/40633a61aa..3798f68b73 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/b42addf414..e21dc3deb0 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/ea496a3de8..8095b050f9 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,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://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:8468 Change-Id: Icf23d4056b1f9a6caae2483125841bc6aefe3a8f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5144390 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 13685465 2023-12-20T15:39:24 Vulkan: Don't request surface extensions without VK_KHR_surface ... on headless platforms. Bug: angleproject:8467 Change-Id: Id0032ddd9f57540719d90f58b7d99cfb79f91a8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5142626 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Amirali Abdolrashidi c51259ec 2023-12-14T15:58:56 Vulkan: Ignore tex coord at draw if tex disabled In GLES1, it is possible to disable texture rendering in some cases. It is done using glDisable(GL_TEXTURE_2D). In that case, if TexCoordPointer has been enabled in the client state prior to disabling the texture, its data should no longer be used, especially if the primitive changes to use more vertices. In that case, there is a risk of unauthorized memory access. In this CL, the active vertex attributes are updated accordingly if texture is disabled using the aforementioned API call. * Updated GLES1 renderer to ignore TexCoordPointer if texture has been disabled. * Added GLES1 tests for tex coord pointer, including tests to make sure that tex coord pointer is no longer used if the texture is disabled using glDisable(), and that it is used again when texture is enabled using glEnable(). * To ensure that tex coord pointer is not used, the test draws using enough vertex data that would exceed the texcoord array size, which can trigger segfault if accessed. Bug: b/310688730 Change-Id: I5d259c83a172cc1a11733c0b42c2f9b02c9b2967 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5124259 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 0aaa8de9 2023-12-19T23:23:40 Vulkan: Fix memory tracking vs external texture acquire ... with a layout of GL_NONE. Bug: angleproject:8464 Change-Id: I94690c5693c5bcb6d510e4a27097206f0da58a41 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5138656 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e9c0241d 2023-12-19T10:23:13 Vulkan: Rely on Vulkan 1.1 entry points in tests Some KHR entry points that were promoted to Vulkan 1.1 no longer seem to be loadable with their KHR symbols. Bug: angleproject:8464 Change-Id: Id5417e5b047e6bd34d144fead518f771c17658e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5135676 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 6951508b 2023-12-19T19:30:05 Manual roll vulkan-deps from de368ee1bf18 to 06ba2decfb32 (1 revision) Manual roll requested by ynovikov@google.com Suppress SYNC-HAZARD validation errors in vkQueueSubmit(), enabled by https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/7129 https://chromium.googlesource.com/vulkan-deps.git/+log/de368ee1bf18..06ba2decfb32 Changed dependencies: * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/eebe1dfcef..0c6e58c7f0 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,geofflang@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://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: b/316013423 Change-Id: Id63a3ddd4615f8a520b68588db4520d30a687598 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5137081 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 5a062a39 2023-12-14T21:15:59 Do not update the vertex attribute limit on divisor change The effect of the divisor on the vertex attribute limit is accounted for in StateCache::updateVertexElementLimitsImpl since https://chromium-review.googlesource.com/c/angle/angle/+/5101508, and so the vertex attribute's mCachedElementLimit is now independent of the divisor. Bug: angleproject:8448 Change-Id: I3f76986d6b8d3ba6b0ebd955f9a26854ee8c20e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5122996 Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 9f148c41 2023-12-14T00:00:00 Metal: Fix triangle fan indices generation * Ensured that the second index is preserved when skipping leading primitive restart values * Restricted the search loop to the index count * Ensured that draw calls are skipped when the generated index buffer is empty to avoid Metal validation errors, also for line loops Fixed: angleproject:6458 Change-Id: I3194eb9db3e7e225448901edce167a2091563cd5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5132092 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Yuly Novikov 66da618c 2023-12-19T16:25:35 Skip UniformBufferTest.BufferBlockBindingChange on Mac NVIDIA GL Flaky Bug: angleproject:8465 Change-Id: Ic923a3af4937a346fdba0b80d486a9ed8e46402e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5136275 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 80db7c4b 2023-10-17T10:03:06 Vulkan: Remove fixed VU suppressions Bug: angleproject:5309 Bug: b/175584609 Change-Id: I8f952a1feb235b6bd060b5fe0b89c01fde6f84be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4946592 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang bd5dce9a 2023-11-21T15:39:04 Metal: Use MTLEvent instead of MTLSharedEvent when possible Refactor mtl::Sync to be abstract and have multiple implementations using either MTLEvent or MTLSharedEvent. Use MTLEvent in all cases except for EGL Syncs when the user sets the sync type to EGL_SYNC_METAL_SHARED_EVENT_ANGLE. Determine completion of the sync object by watching for completion of the command buffer where the event's signaling was enqueued. Avoid any sleep loops by waiting on a condition_variable which is notified when the completed queue serial is updated. Forked from CLs by sky@ and kbr@ Bug: angleproject:8153 Change-Id: I4547444b596366496c811cb9954872b85ab14ad8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5133706 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 4bf40237 2023-12-18T15:24:15 GL: Fix missing glUniformBlockBinding handling When a program is current and this call is made, the program is made dirty so that the GL backend reacts to this call. Prior to https://chromium-review.googlesource.com/c/angle/angle/+/4922969, the program was made dirty when its executable was installed as well (if it had any UBOs dirty), but that change removed it. As a result, if this call was made while the program was _not_ current, the GL backend would miss processing it. This call ensures that the appropriate dirty bit is set when the program is made current again. This revealed a bug in the Vulkan backend where sometimes the executable's dirty bits would not get reset. This was benign but fired an assertion, and is fixed in this CL as well. Bug: chromium:1511506 Change-Id: Iae86ba0aa5b8f9e4f20dd6df6002d37e405280e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5123005 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Yiwei Zhang 1e4c4c76 2023-12-18T19:35:13 Vulkan: avoid disabling explicitlyCastMediumpFloatTo16Bit for venus We disabled it to work around below legacy skia cts: CtsSkQPTestCases org.skia.skqp.SkQPRunner#gles_gradient_many_stops The test no longer exists in newer skia cts. Meanwhile, we have to drop the workaround for other precision issue on Mali-G52. Bug: b/316474995 Test: dEQP-GLES2.functional.shaders.algorithm.rgb_to_hsl_vertex Change-Id: I18394595632d05657e96f8b9c9675b4dd959d92b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5133372 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Charlie Lao 40f4de8f 2023-12-15T10:17:32 Vulkan: Ensure we use cached memory for readPixels stagingBuffer Previous CL crrev.com/c/5112759 does not solve the performance issue for ChromeOS. The reason is that on more recent intel GPU, there is no hostVisibleCachedCoherent heap. When we allocate staging buffer, we specify CachedCoherent as the preferredFlags instead of requiredFlags. This means we still end up getting UncachedCoherent since VMA tries to respect coherent bits as first priority. This CL Changes CachedCoherent to CachedPreferCoherent, and made Cached as required bit, thus ensures the memory allocated is cached. Since coherent bit may not be honored, thus we have to call invalidate/flush (which underline implementation will check the bit and early out if no need). Somehow on ARM GPU using cachedNonCoherent staging buffer causing many test failures, even though we do call invalidate() after allocation, and tests pass on all other GPUs. It almost indicates ARM driver have a bug with invalidate() that it is not doing expected. But before I can be sure and fixed, I added feature bit to keep ARM the old behavior, which uses UnCached memory for readPixels which should suffer the performance as well. Bug: b/315836169 Bug: b/310701311 Change-Id: I1eec6105ce74275faa893b0206be8470f0cde72f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5122318 Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White a950f005 2023-12-06T18:58:35 Move compressed format validation to Vk backend. Add test to call glCompressedTexSubImage3D() from a pixel unpack buffer. This currently fails on OpenGL. Bug: angleproject:8449 Change-Id: I863b602e39a14878af8745ff62b408bdd879bc98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5100348 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Austin Annestrand 80893f26 2023-11-30T16:57:15 OpenCL: Remove unneeded impl getters Some of the OpenCL backend (impl) getters are not needed. These are the size query for image creation, and CL source retrieval for program objects not created from source. Bug: angleproject:8438 Change-Id: I76b39b75f1ae76ec0c3c94d5715632cb9dd4900a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5078243 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand 66d29149 2023-10-16T12:43:43 OpenCL: Add scaffolding to renderer/vulkan code Start off ANCLE (OpenCL on ANGLE) with backend scaffolding code with placeholder API error returns until they are later implemented. Bug: angleproject:8377 Change-Id: I223d3482cce097ccb298e121fc03ec416e8958fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4950556 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 18a68f6d 2023-12-07T16:23:10 Fix vertex attribute limit check Bug: angleproject:8448 Change-Id: Ie5d2b71f0be86b31ec74a1d55501b60a25245668 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5101508 Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Austin Annestrand 5e619b21 2023-11-29T14:56:59 OpenCL: DoubleFpConfig query validation fix There is currently a minor bug in the CL validation code that unconditionally validates "cl_khr_fp64" extension string when client queries for fp64 support. This is correct behavior for OpenCL 1.1 and lower. However for OpenCL 1.2 and greater, this became a core query for clGetDeviceInfo via "CL_DEVICE_DOUBLE_FP_CONFIG". Thus, on some 1.2 and greater implementations (ANGLE CL passthrough), this extension string wouldn't be specified since its a core API query in that case - and validation check will incorrectly fail via: ANGLE_VALIDATE_EXTENSION(info.khrFP64) Fix is to conditionally check this for the appropriate CL versions. Bug: angleproject:8436 Change-Id: Id2bb5699fa523061d738af19edb465a78dbd880d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5075775 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 3439e421 2023-12-15T11:37:53 Vulkan: Remove AHB workaround for camera app This is now fixed in camera app main branch. The workaround is removed here. Bug: b/239181279 Change-Id: I782baf7a42a8c9a897f1947d8b2f6feba606ce29 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5126931 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand c1aaa313 2023-11-29T18:54:06 OpenCL: Updated autogen script for updated CL error handling Part 3 of Issue 8435: Updated entrypoint autogen script for CL to: - Remove errorCode param for all CL APIs returning CL objects - Init CL error TLS object for all CL APIs prior to calling ANGLE FE Bug: angleproject:8435 Change-Id: I4f1784c0bda393d5f3126f205f17ec24662424ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5075774 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand ed7c31c7 2023-11-29T18:31:43 OpenCL: Replace error-passing APIs to use angle::Result Part 2 of Issue 8435: This part replaces existing error handling for all CL APIs that return CL objects to now use "angle::Result". Bug: angleproject:8435 Change-Id: I75e41c7cbb06220cabec7cc9f9cb5107a3b6bd6d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5075773 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Austin Annestrand a9512a9f 2023-11-29T14:56:29 OpenCL: Replace error-return APIs to use angle::Result The motivation of converting existing CL APIs using "cl_int errorCode" to now use "angle::Result" is for better interop with internal ANGLE plumbing/abstractions. To facilitate this, we now make use of a TLS errorCode object that we set internally and read from entrypoint/stubs layer so that we can propagate back to user. Bug: angleproject:8435 Change-Id: I7c2a786019c33c56649be4b6e8b61bc318497bb1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5075772 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peiyong Lin fca3eb6b 2023-12-12T23:00:41 Refactor ANGLE settings UI. This patch refactors the ANGLE settings UI to make sure it aligns better with the settings global variables. This patch: 1) moves all ANGLE rule parsing logic to its own class, the parsing will only parse the rule and store them, it currently does not set the settings global variables; 2) removes the global enablement as it is now an option in Developer options and that one has better guarding condition; 3) refactors the logic to query all packages in the system, instead of constructing them with raw package name, use application name to allow a more user-friendly UI, and also allow to toggle for system applications. 4) adds two new entries to allow building ANGLE apk without any ANGLE libraries; 5) adds a README.md file to document the design. 6) removes unused functions and variables and minor renames. Bug: b/293503000 Test: manual Change-Id: I7287935791c00040b0eacba7dce3e4df5eb4de3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5118135 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Peiyong Lin <lpy@google.com>
Alexey Knyazev 8f966559 2023-12-07T00:00:00 Metal: Fix matrix vertex attributes with mixed sources Updated VertexArrayMtl::setupDraw to support matrix vertex attributes that use current and array values simultaneously. Simplified the helper function. Fixed: angleproject:8456 Change-Id: I09a26a978cda4b9ac3747325ad571d5ad2fff72d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5116500 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Yiwei Zhang 524bcb8e 2023-12-13T20:21:38 Vulkan: avoid forcing preferSubmitAtFBOBoundary with Venus It turns out benefiting Venus atop ARM while hurting in a non-trivial way on old Gen Intel due to execbuf overhead. Bug: b/314847707 Test: 2%+ gain for trex on ANV on CML Change-Id: I61eb18a05e94c97ee6a4d70f98ae30423155e632 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5118128 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Solti c8604e97 2023-12-13T19:48:16 suppress VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870 Unblock the autoroller first Bug: angleproject:8454, b/316176944 Change-Id: I7f692a81e7a8b0189f83ce6f00e0cec6e2d7e2b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5118126 Commit-Queue: Solti Ho <solti@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Solti Ho df4d9667 2023-12-13T18:28:53 Revert "Optimize HandleAllocator for fast ID churning." This reverts commit b25ffe5a9775cc912a304c8552dd9c097a93420a. Reason for revert: b/316162914 Original change's description: > Optimize HandleAllocator for fast ID churning. > > Instead of calculating ranges of IDs and the overhead with updating > them every allocation/release, store a released ID list in a small > FastVector. > > Optimize the allocate path for the "good case" of no reserved IDs so > that it either pops the last released ID or incriments a next value and > returns it. Release has a similar cost of just a push_back when there > are no reserved IDs. > > This adds a small fixed memory cost due to the FastVector and a dynamic > memory cost of mReleasedList having up to N elements where N is the > maxmimum total handles allocated at one time. > > Bug: angleproject:8434 > Change-Id: I7c5aa126b5303c105cd2464d0d0933b922cc2b8f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5101509 > Reviewed-by: Charlie Lao <cclao@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:8434 Change-Id: Ide43d787b6942cc6b622e3b5d938bfbbbf3b3ebb No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5120277 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Geoff Lang b25ffe5a 2023-12-07T16:36:29 Optimize HandleAllocator for fast ID churning. Instead of calculating ranges of IDs and the overhead with updating them every allocation/release, store a released ID list in a small FastVector. Optimize the allocate path for the "good case" of no reserved IDs so that it either pops the last released ID or incriments a next value and returns it. Release has a similar cost of just a push_back when there are no reserved IDs. This adds a small fixed memory cost due to the FastVector and a dynamic memory cost of mReleasedList having up to N elements where N is the maxmimum total handles allocated at one time. Bug: angleproject:8434 Change-Id: I7c5aa126b5303c105cd2464d0d0933b922cc2b8f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5101509 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev e172c104 2023-12-07T00:00:00 Metal: Fix temporary array initialization Ensure that temporary array declarations have literal initializers to bypass Metal compiler issues. Fixed the following tests on Apple silicon: dEQP-GLES2.functional.shaders.indexing.tmp_array .float_const_write_dynamic_loop_read_fragment .float_const_write_dynamic_loop_read_vertex .float_const_write_dynamic_read_fragment .float_const_write_dynamic_read_vertex Fixed: angleproject:7058 Change-Id: Id4a360b0a5a15da43ce4626c6dfe03556cc9d0f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5115898 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Solti 5e63cee5 2023-12-12T20:59:44 update e2e expectation Bug: b/316013423 Change-Id: I4a70fdc0b38d8e412c0ca1035564aecb1f1dbc32 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5118119 Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Solti Ho <solti@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 35e49df7 2023-12-11T21:16:57 FrameCapture: Skip eglQueryContext We don't use the return value of the call, so it can be omitted from the capture. Test: Flip capture Bug: b/308208067 Change-Id: Ib3dfea2b7bd5638092bd691e66c6b9e2b6fabf15 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5112776 Reviewed-by: Mike Schuchardt <mikes@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 9b66848f 2023-12-11T20:54:30 FrameCapture: Handle context Reset with no calls The code was assuming that setDefaultResetCalls adds reset calls for an entry point, but it has logic for skipping if the current state is already default. This CL checks to see if we added any calls for the entry point before trying to iterate through them. Test: Flip capture Bug: b/308208067 Change-Id: I8a214b0eb0df068d6b3172c0ca1406f6751f91ea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5114271 Reviewed-by: Mike Schuchardt <mikes@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Kieron Josephs 282a5fb4 2023-12-08T15:53:17 Fix out-of-bounds vector index when using SPIR-V precision fixer Accessing mVariableInfoById after id has been replaced by the precision fixer was causing an out-of-bounds access. Running SpirvVaryingPrecisionFixer::modifyEntryPointInterfaceList before SpirvSecondaryOutputTransformer::modifyEntryPointInterfaceList was causing an out-of-bounds access for the same reason. Bug: angleproject:8452 Change-Id: I54f7f105ec2fb5aeb3e4234e8e3e052bcc42977c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5105193 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang f8fae1ff 2023-12-08T13:20:36 Validate Uniform variable limits with each iteration VariablePacker would loop over all variables and sum up the total row counts before validating. Each variable can take hundreds of rows so it is possible to overflow the counters before validating them. Validate the limits with each iteration and early-out when the limits are exceeded. https://bugzilla.mozilla.org/show_bug.cgi?id=1864587 Bug: chromium:1864587 Change-Id: Ic235ada1516a0d5a9948d82b22f6316a037c09ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5106408 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao de591cff 2023-12-11T13:15:30 Vulkan: Add CachedCoherent staging buffer Right now if we allocate a coherent staging buffer, it always uncached. I believe the reason it picked uncached is that most usage for staging buffer is data flow from CPU to GPU. CPU only sequentially write into staging buffer. Uncached may has better performance here due to write combined. But this performs horrible if CPU ever read from it. This CL adds a CachedCoherent staging buffer and let staging buffer use that for coherent memory. UncachedCoherent is currently not used, but I still kept here in case we find regression for certain type of usage. Bug: b/315836169 Change-Id: Ica331914c1f4729baa9d2eab048dc3099a2887b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5112759 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Alexey Knyazev 5c8cb8a6 2023-12-07T00:00:00 Update WebGLReadOutsideFramebufferTest tests Enabled robust resource init for these tests as they access out-of-bounds values. This flag is required to pass some of the tests on Vulkan backend. WebGL clients always set it. Fixed subresource index computation on D3D11 to pass CopyTexSubImage3D with 3D textures there. Added a similar test for 2D array textures. Bug: angleproject:4092 Fixed: angleproject:4136 Change-Id: I191c6df3c672e583568aadecac5885da015cfa8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5106511 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang f035cdb4 2023-12-11T13:45:22 Fix SyncID initializer. Requires brace initialization to work on all compilers. Bug: angleproject:8430 Change-Id: I6e79f2446f057bf9eaaaecfc9f82b26320c5ba56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5111600 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 80fca933 2023-12-08T18:30:01 Tests: Add Thimbleweed Park trace Test: angle_trace_tests --gtest_filter="*thimbleweed_park*" Bug: b/315540661 Change-Id: I78d45d51531b81dbe05427db0dff4dc685b98cbc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5106864 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Alexey Knyazev 7288507c 2023-12-07T00:00:00 Lift SNORM framebuffer completeness suppressions The CTS has been updated to allow GL_EXT_render_snorm exposure on OpenGL ES 3.0 contexts. Bug: angleproject:8048 Change-Id: If00df67dbcb541565ad236983b9d406a9f4444e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5106510 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev bc301691 2023-12-07T00:00:00 Run PackUnpackTest on all backends Fixed negative zero serialization for capture/replay. Bug: angleproject:4092 Change-Id: Ic12a556f56e40064da8bf3a8ce7d01af92c7086a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5106509 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev ede15b85 2023-12-07T00:00:00 Metal: Run multi draw tests Added ANGLE_INSTANTIATE_TEST_COMBINE_3. Used the new macro for multi draw and BVBI tests. Bug: angleproject:6963 Change-Id: If05800f92f670bf21b7ff889a2fb8bb30f62a488 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5106508 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao d0eb968d 2023-12-08T16:11:46 Vulkan: Fix the AHB leak for AHB backed buffer object For client buffer backed OpenGL buffer object, we call InitAndroidExternalMemory which calls AHB acquire. But when buffer object is released/destroyed, we never call ReleaseAndroidExternalMemory, which end up leaking AHB. Bug: b/314791770 Change-Id: I693c74213e73008497a6dfeca93ea62e84c71352 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5106599 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Charlie Lao <cclao@google.com>
Alexey Knyazev 0b0b4b22 2023-12-07T00:00:00 Avoid UB in VertexAttributeTestES3.DrawWithUnalignedData The test uses a signed normalized vertex attribute, which requires a floating point vertex input. Bug: angleproject:7001 Fixed: angleproject:7068 Change-Id: I97afc97b03a58130e0d6ee63ec7ee3e44f1e0230 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5105194 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang c27a4a1d 2023-11-27T14:44:07 Re-use EGL sync object allocations. Create a pool of EGL sync objects with their implementations that can be re-used. Update all backend implementations to support multiple calls to initialize/destroy. Pool size of 32 chosen through experimentation using Chrome. Bug: angleproject:8430 Change-Id: I86fea41aed35eddccc953efb3802bf5fdb7f3cb2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5063341 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi b8ca8de4 2023-12-05T13:36:53 Vulkan: Don't crash when glCopyTexImage2D redefines itself The Vulkan backend marks a level being redefined as such before doing the copy. If a single-level texture was being redefined, it releases it so it can be immediately reallocated. If the source of the copy is the same texture, this causes a crash. This can be properly supported by using a temp image to do the copy, but that is not implemented in this change. Bug: chromium:1501798 Change-Id: I9dde99aa0b88bc7d5f582ff15772f70b36f424e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5089150 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi dc4b1acd 2023-11-30T15:42:32 Translator: Limit private variable size to 64KB This is indirectly fixing an issue where passing large arrays in SPIR-V such that an internal cast is needed (such as array inside interface block copied to local varaible) causes an overflow of the instruction length limit (in the absence of OpCopyLogical). By limiting the size of private variables to 32KB, this limitation is indirectly enforced. It was observed that all the test shaders added in this CL fail on the Nvidia OpenGL drivers, so such a limit seems to be reasonble. Bug: chromium:1505009 Change-Id: Ia36134b2bf8501a5b875814db3566be28b183e0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5077408 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d788c2c0 2023-12-04T22:43:39 Remove team members no longer part of the project Bug: None Change-Id: I66bf34ece50995fdecfab55a2198e9946e9be4cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5087208 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 6d9f0aee 2023-11-30T00:00:00 Metal: Ensure helper invocations when derivatives are used Set sample coverage mask to ensure that fragment shader helper invocations are performed when derivatives are used. Fixed the following tests on Apple silicon: dEQP-GLES2.functional.texture.mipmap .2d.projected.nearest_linear_repeat .2d.projected.linear_linear_repeat .cube.projected.linear_nearest .cube.projected.linear_linear dEQP-GLES3.functional.texture.mipmap .2d.projected.nearest_nearest_mirror .2d.projected.linear_nearest_clamp .2d.projected.linear_nearest_repeat .2d.projected.linear_nearest_mirror .2d.projected.nearest_linear_repeat .2d.projected.linear_linear_clamp .2d.projected.linear_linear_repeat .3d.projected.nearest_nearest_mirror .3d.projected.linear_nearest_clamp .3d.projected.linear_nearest_repeat .3d.projected.nearest_linear_clamp .3d.projected.nearest_linear_mirror .3d.projected.linear_linear_clamp .3d.projected.linear_linear_repeat Fixed: angleproject:8443 Fixed: angleproject:7023 Change-Id: I13fc52532b94de098dcf3e9f5f02d48a6c8913c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5089131 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Daniel Cheng bc7af34c 2023-12-06T00:15:33 Use googletest flag macros to access googletest flags. The implementation details of flags can change; fixing this proactively makes it easier to roll googletest. Bug: chromium:1409870 Change-Id: I5efa2487d9e38e122ca20f201748faf8e8050347 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5092928 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Daniel Cheng <dcheng@chromium.org>
Cody Northrop f58ba088 2023-11-05T16:40:37 Tests: Add Warcraft Rumble trace Test: angle_trace_tests --gtest_filter="*warcraft_rumble*" Bug: b/309345647 Change-Id: I6e78fb0465edcfa97943ff8374c568dcd9b8eba7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5007173 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi e9d5f13e 2023-12-04T22:36:41 Vulkan: More trace points in the readpixels path Occassionally we hit a bad path in this case, this change makes it clearer from the traces which bad path is hit. Bug: b/310701311 Change-Id: Ic674d6396b0e88f1a1db3ded7efe195fb7397135 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5087207 Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev d7077e9f 2023-12-05T00:00:00 Update macOS end2end expectations Bug: angleproject:2273 Bug: angleproject:2408 Bug: angleproject:3837 Bug: angleproject:5325 Bug: angleproject:5360 Bug: angleproject:5594 Bug: angleproject:6358 Bug: angleproject:6418 Bug: angleproject:6454 Bug: angleproject:6457 Bug: angleproject:6540 Bug: angleproject:6702 Bug: angleproject:6751 Bug: angleproject:7068 Bug: angleproject:7309 Bug: angleproject:7445 Change-Id: I7f4c012ed2de6af83188ed69170b19f8d2bb19de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5087774 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 5d70a41c 2023-11-30T00:00:00 Metal: Use a separate struct for last fragment data Used a separate MSL struct type for reading from framebuffer attachments to not fetch unnecessary draw buffers and to be able to set a sample mask. Removed TranslatorMSL::isSampleMaskAllowed() Ensured that the lastFragmentOut variable is not added when PLS does not use framebuffer fetch. Fixed: angleproject:8442 Change-Id: Ia3320fc6063277479b5aa9b7fea34457465add75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5079450 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 74f9da02 2023-12-04T19:53:25 Vulkan: Remove spam about depth/stencil feedback loop It triggers a warning even if the application is appropriately using BASE and MAX levels to avoid feedback loop. Bug: b/289436017 Change-Id: Ie7e8281908802e91dfaad1b49dd95197ac6de1a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5086070 Commit-Queue: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 18d51f01 2023-12-03T18:26:12 Tests: Add Black Clover M trace Test: angle_trace_tests --gtest_filter="*black_clover_m*" Bug: b/314683298 Change-Id: Icee6102aa5161f2054134831e00eb99b8048c448 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5082209 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Chris Forbes a1cd2198 2023-12-04T11:42:13 Fix yuv_2_rgb and rgb_2_yuv GLSL function emulation The color conversions themselves were already correct, but Y was assumed to be full range, and u,v assumed to be centered on zero. This change folds the range expansion and chroma bias into the transforms. In order to accomplish the bias the matrices are extended to be mat4x3, and the provided color value is extended to a vec4 with w=1. Various other methods are possible (and potentially more efficient if the standard is not a constant) but just folding everything into the matrices is the most straightforward. Test: atest CtsNativeHardwareTestCases Bug: b/308437613 Change-Id: I33f797450c9ad9e758100eb8530d86548939f4ed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5082558 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi fb6b960c 2023-11-27T14:24:28 Remove GL_CHROMIUM_texture_filtering_hint This was using an unregistered Vulkan extension to set the precision of SwiftShader's internal filtering for the sake of Chrome. That's baked in at build instead. Bug: angleproject:8349 Bug: chromium:726075 Change-Id: I12849d2d29d99626f22a92ee9d74366f78658476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5063344 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 90767546 2023-12-01T12:27:15 Vulkan: Add test for __samplerExternal2DY2YEXT then swizzle Added a correctness test SourceYUVTextureTargetExternalRGBSampleYUVSampleWithSwizzle for applying swizzle after sampler. Also removed some bug workaround for VVL and drivers since they are fixed now. Bug: b/309480316 Change-Id: If82b2251745a96335b535c67b6e0c0847268b25b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5080497 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 554d761a 2023-12-01T15:14:22 Tests: Add AFK Arena trace Test: angle_trace_tests --gtest_filter="*afk_arena*" Bug: b/314365671 Change-Id: Id0213199b0e75919701be8ec9e216a224a6725d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5078682 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi caa5e4ea 2023-11-30T14:12:42 Translator: Fail compilation if too many struct fields If there are too many struct fields, SPIR-V cannot be produced (as it has a hard limit of 16383 fields). The Nvidia GL driver has also been observed to fail when there are too many fields. Bug: chromium:1505009 Change-Id: If9b01716c1cab35a6e537da64421e29fe0eda91e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5074629 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Mark Lobodzinski 25f448f4 2023-12-01T12:33:27 Tests: Add Walking Dead Survivors trace Test: angle_trace_tests --gtest_filter=TraceTest.walking_dead_survivors Bug: b/314311102 Change-Id: Icf104613b59a8de0f89fc5fa3dd6db4ad9a3dc2b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5080498 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 6df603ed 2023-11-30T13:53:00 Translator: Optimize field-name-collision check As each field of the struct was encountered, its name was linearly checked against previously added fields. That's O(n^2). The name collision check is now moved to when the struct is completely defined, and is done with an unordered_map. Bug: chromium:1505009 Change-Id: If28d738254a541450912eba4ed168424dad9d8be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5077407 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Sergey Kataev 75e13e68 2023-11-29T22:19:46 Metal should not inline non-const global initialisers Bug: angleproject:8403 Change-Id: Iaa6126d7043931a16104ea84c5f7e737017dabc3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5076256 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Sergey Kataev <sergeyka@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi ab992c3e 2023-12-01T11:51:13 Clarify which link failed in link program perf test Bug: angleproject:8417 Change-Id: I5445518fdf6dcc2533ea055588221d6e45c45d9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5077412 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi b46cf698 2023-11-30T11:00:18 Vulkan: Fix Android deadlock with querying buffer age Similar to eglSwapBuffers, eglQuerySurface with EGL_BUFFER_AGE_EXT can cause a call to vkAcquireNextImageKHR. Bug: angleproject:6851 Bug: b/313975825 Change-Id: If3f0521219cab9aba2aeb2b70958bf0f197bc96a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5077406 Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev edcfab40 2023-11-23T00:00:00 Metal: Implement textureCubeGrad transformation for AGX Wrapped all affected built-in function calls with helpers that transform derivative values. Fixed all *.texturegrad.* dEQP failures on Apple silicon. Fixed: angleproject:7021 Fixed: angleproject:8433 Change-Id: I16b023840ad267ab72d31fde3cb0fa7048e5310c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5071254 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Roman Lavrov eef89870 2023-12-01T09:47:40 Trace tests: skip mini_world on win intel native Flaking Bug: angleproject:8440 Change-Id: Iff415531d4820937ef5e42c8fcba05c305494c38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5078288 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>