src


Log

Author Commit Date CI Message
Shahbaz Youssefi 6384f76b 2022-11-16T21:47:04 Vulkan: Move PipelineCacheAccess to namespace vk In preparation for a change that uses it in that namespace. Bug: angleproject:7369 Change-Id: Icc75b8839d702fd3e6d3d00c1d8f81619cdd89cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031150 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 11de5157 2022-11-14T14:48:33 Capture/Replay: Reset Shaders We've been resetting Programs correctly, but not Shaders. This hasn't been a blocker so far, but it has been identified as a performance problem for traces that compile mid-trace. We're not getting cache hits because the persistent blob cache is not updated until a shader is deleted. Part of the challenge here is ShadersIDs and ProgramIDs share a ResourceIDType, so separating them requires a bit more tracking. To fix, start tracking which ShaderProgramIDs are actually shaders and emit the correct glDelete* command. Test: diablo_immortal MEC Bug: angleproject:7823 Change-Id: I934f6eee243ab9681dca5fdebdad33ba31457cf5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4029226 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Gert Wollny 494640e5 2022-11-18T12:02:28 Capture/Replay: Make secondary contexts current during MEC When replaying, the context is made current at the beginning of the context setup function, and is still current when we hot the validation point at the end of the setup function. When a context is current is has a valid default framebuffer, and hence, during a replay of the trace the context serialization will contain this framebuffer. However, during MEC the secondary contexts were not made current during capture, and hence they dind't have a default framebuffer which resulted in a validation error. Therefore, make the secondary contexts current when they are captured during MEC to make sure we also capture the default framebuffer. Bug: angleproject:7812 Change-Id: Iaccc4150e8a71a02286e772882fb150bef1d82a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4037982 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuxin Hu 3db679eb 2022-11-22T10:37:31 Revert "Vulkan: Remove useRelaxedPrecision" and "Vulkan: remove SpirvVaryingPrecisionFixer" This reverts commit cb618b3d42d9013c48b5aa233efc4d80a9c4efa4 and commit 427086a9c7612da7325cb36054859a929c3727d5 Reason for revert: IMG reported that they need to keep the "precision qualifier matching" feature to make triangle clipping work properly, because the clipping needs to to know the decoration in vertex shader output in order to sort the data correctly for clipping. Original change's description: > Vulkan: Remove useRelaxedPrecision > > Bug: angleproject:7488 > Change-Id: I30ca3e2740d8810a01615ca778eb072d77ad34d9 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3856658 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Original change's description: > Vulkan: remove SpirvVaryingPrecisionFixer > > Bug: angleproject:7488 > Change-Id: I957839bd8fbdf1cd849d5ed7e9edd65fd1a5f2cb > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780874 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Yuxin Hu <yuxinhu@google.com> Bug: angleproject:7488 Change-Id: I90b584cbc549a663bca734a59d135a1d1d5bcbfc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4049421 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 27727e50 2022-11-21T00:00:00 Fix ProvokingVertex typos Aligned the parameter name with the upstream specs Moved ValidateProvokingVertexANGLE to validationESEXT.cpp Bug: angleproject:2829 Change-Id: I820a90c20ef0a1873640c933b1de52526cac7e70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4043701 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Amirali Abdolrashidi b2f55ec3 2022-11-14T16:07:19 Vulkan: Add memory allocation/deallocation counter * Added a counter to the renderer object to keep track of the memory allocations and deallocations per allocation type. * The counters are updated with the functions onMemoryAlloc() and onMemoryDealloc(), which can be added next to the allocation or deallocation point. * Currently used for buffer memory and image memory. * Removed some of the redundant arguments from vk_helper and suballocation functions. Bug: b/242641395 Change-Id: I58b38f619df7bef0ba5fa3373a8db5aed0ef142c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4014164 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao c5724a8d 2022-11-17T15:48:16 Vulkan: Retain mCurrentGraphicsPipeline if RP started ContextVk::mCurrentGraphicsPipeline is created before renderpass started. Right now we retain mCurrentGraphicsPipeline immediately. In future CL of per context queue serial, renderpass will not have queue serial until started, which means we can only retain pipeline object after renderpass started. This CL moves the mRenderPassCOmmands.retain(mCurrentGraphicsPipeline) call to renderpass start time. This exposed a bug that ContextVk may have a dangling mCurrentGraphicsPipeline pointer to an already destroyed object, if the program has been destroyed. When ProgramExecutableVk::resetLayout() calls ContextVk::onProgramExecutableReset () we early out because executable no longer matches. This causes mCurrentGraphicsPipeline still point to now deleted pipeline object. This CL fix this dangling pointer bug by always clear mCurrentGraphicsPipeline to null in ContextVk::onProgramExecutableReset() without checking if program executable is the one gets reset. Bug: b/255414841 Change-Id: I6d698c517d7a948b65c465eaaa59ea0bca24e2c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4035107 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Alexey Knyazev fc1c8cd1 2022-11-01T00:00:00 Refactor validation of partial compressed texture uploads Optimized ValidCompressedSubImageSize for valid usage and simplified its control flow. Fixed false negative validation when the replaced image region does not fill the entire level but nevertheless reaches the image boundaries. Updated InternalFormat::getCompressedImageMinBlocks to use IsPVRTC1Format helper function. Fixed InternalFormat::computeCompressedImageSize for 3D compressed texture blocks. Removed redundant checks from ValidateES3TexImageParametersBase. Optimized IsPVRTC1Format helper function to be a constexpr. Adjusted tests, added suppressions for Intel and Adreno. Bug: angleproject:7473 Change-Id: I6fadce949785a35e2706b06eeb00e878aa3710a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4037671 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang 15c8a055 2022-11-22T13:31:39 GL: Only reset transform feedback varyings when necessary. ProgramGL sychronizes all state before linking. This means setting the transform feedback varyings to 0 when transform feedback is not used. Skip this call to synchronize transform feedback varyings when it will have no effect. This is a speculative fix for crashes on IMG drivers. Some of the logs mention glTransformFeedbackVaryings reading invalid memory. Bug: chromium:1322820 Change-Id: Ib4ba9c6ea6f9ab8accb82f243472c4d4443b7fd5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4049420 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Nicolas Capens 37d6a9db 2022-11-18T17:42:21 Support versioned library names Previously ANGLE_GLESV2_LIBRARY_NAME was expected to be the library name without extension, and on Linux .so would be appended. This didn't allow for building ANGLE as libEGL.so.1 and libGLESv2.so.2 as is common. This change checks if the library name already contains a dot, and if so doesn't append the platform specific extension suffix. Bug: b/259282560 Change-Id: I81cda218180ae7fe6321e1ac7e4eff7257bf1493 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4038450 Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Nicolas Capens <nicolascapens@google.com>
Shahbaz Youssefi 68b47e58 2022-11-16T10:46:59 Vulkan: Initial support for VK_EXT_graphics_pipeline_library When available, this change uses VK_EXT_graphics_pipeline_library to create pipelines. Currently, it is only used when graphicsPipelineLibraryFastLinking is available. This restricts the use of this extension to devices where monolithic pipelines are not any more performant than linked libraries. A future change adds support for other implementations by providing async pipeline creation. Bug: angleproject:7369 Change-Id: I1e3b7ac4aa56e75c7d6f4d0d5ea91cb0b862e581 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031489 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Steven Noonan <steven@valvesoftware.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 1f69f580 2022-11-18T14:33:20 Perf tests: Add --fixed-test-time-with-warmup Warmup trials combined with fixed-test-time was broken recently. It was already fragile and only worked when parameters were provided in the right order. On Android we're relying on this combination to get steady results without hitting thermal limits. To address this: - Add a new parameter that encapsulates the combination - ASSERT that flags aren't provided in unsupported combinations Test: python3 restricted_trace_perf.py --fixedtime 10 Bug: angleproject:7755 Change-Id: I56fce1f65d4f0538e623951163a9c8736cb3fb03 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4027282 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 202fcb8d 2022-11-21T15:05:13 TraceTest: Route EGLSync entry points through WGL Test: diablo_immortal trace Bug: angleproject:7402 Bug: angleproject:7839 Change-Id: I8897337bac38cb1923e58a9503de01454766158d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4044865 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
angle-autoroll 356b2a59 2022-11-18T18:50:03 Roll VK-GL-CTS from c4fe10a0c86d to 2db7b0a1c310 (7 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/c4fe10a0c86d..2db7b0a1c310 2022-11-18 tapani.palli@intel.com Fix for the string query tests on desktop GL 2022-11-18 aitor@lunarg.com Add tests for out-param aliasing against other variables 2022-11-18 cturner@igalia.com Fix a typo setupVertexInputStete -> setupVertexInputState 2022-11-18 rgarcia@igalia.com Improve failure error messages in format_feature_flags2 tests 2022-11-18 amber@igalia.com Add tests for linearly tiled images 2022-11-17 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.3.4 into vk-gl-cts/main 2022-11-16 ziga@lunarg.com Merge vk-gl-cts/dev/VK_EXT_pipeline_protected_access into vk-gl-cts/main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC jonahr@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: jonahr@google.com Change-Id: Ia91e36411440ba5fe572d0971b54ae6857bbeb9c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4037817 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Geoff Lang f37a32f0 2022-11-14T14:11:06 Remove DisplayGbm and SurfaceGbm. The Gbm classes were used to emulate WindowSurfaces on ChromeOS for testing. These emulated features are not used in any shipping configuration and cause issues because ANGLE opens drm devices uneccessarily. Bug: chromium:1344962 Change-Id: If564e40744f7825035bbbd63c141b154c534ed72 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023096 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Brian Ho <hob@chromium.org>
Charlie Lao 0c0bbcf5 2022-11-18T22:18:55 Revert "Vulkan: Only allocate default attribute if needed" This reverts commit 85c98a92bb763452133bd7b4580d80625bb2c75d. Reason for revert: This caused regression on pixel 6, https://ci.chromium.org/ui/p/angle/builders/ci/android-arm64-exp-test/1969/overview Original change's description: > Vulkan: Only allocate default attribute if needed > > mDirtyDefaultAttribsMask has all bits set when starts. > ContextVk::handleDirtyGraphicsDefaultAttribs() is looping all dirty bits > and try to allocate buffer for it, which means we are looping 16 > times when app starts. This CL changes to allocate a buffer only if used > by program. > > Bug: b/258862506 > Change-Id: I2f0a75d1fe141c9ac3101088fdc4ce4f60b0c4ee > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4024544 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Commit-Queue: Charlie Lao <cclao@google.com> Bug: b/258862506 Change-Id: Iff7d9c6d605613773f0b91a5539cefd6da6454eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4038449 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Charlie Lao <cclao@google.com>
Charlie Lao 8378032e 2022-11-15T11:47:55 Vulkan: Remove get API for mLastCompletedQueueSerial In preparation for per context queue serial, this CL makes mLastSubmittedQueueSerial and mLastCompletedQueueSerial private to CommandQueue. Before this CL, we have a get function to return the last submitted serial and last completed serial and passing these serials around. This works because the serial is a single uint64_t number. With per context queue serial, this will be an array of serials and there is potential risk associated with access it from different threads. This CL makes these serials private to CommandQueue and when you want to know if GPU is completed with resource, you ask RendererVk/CommandQueue directly. This way we can ensure they have thread safe access in the CommandQueue (no lock is necessary, but all access will be restricted to one class). Bug: b/255414841 Change-Id: Ica565decce4a80588e0b447e179a2b634b55d7c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4021676 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Jonah Ryan-Davis 95cfa687 2022-11-18T15:26:36 Revert "Map AHARDWAREBUFFER_FORMAT_R8_UNORM to GL_R8" This reverts commit dcf3ab1228428b2f9d1449852e2359bad70e2dfe. Reason for revert: Causing AOSP roll build failures: https://android-review.git.corp.google.com/c/platform/external/angle/+/2308065?tab=checks Original change's description: > Map AHARDWAREBUFFER_FORMAT_R8_UNORM to GL_R8 > > Bug: b/259551816 > Test: cvd start --gpu_mode=guest_swiftshader > Test: atest librenderengine_test > Change-Id: I874278fe50dd1b501c11c484c55ed91e67a7013b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4034130 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/259551816 Change-Id: Iac19db493ecda89bc49d05cc34f5b51818e39737 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4035110 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi c7414946 2022-11-16T10:35:33 Vulkan: Enable async pipeline cache sync by default Bug: b/246683126 Change-Id: I593650364250f8802e9f546ab9957cf1c30e596a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031487 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 81e9dc56 2022-11-04T00:00:00 Reland "Metal: Skip disabled draw buffers" This is a reland of commit 4b084310d7bbb33631d58a461eb5814c12220926 Do not try to create a command encoder with no attachments since it may crash some Metal drivers. Do not reset pipeline descriptors. Original change's description: > Metal: Skip disabled draw buffers > > When creating render pass descriptors, do not > assign textures to disabled color attachments. > > When creating pipeline descriptors, reset > pixel formats of disabled color attachments. > > Exit early when MTLRenderCommandEncoder is not created. > > Added: > * DrawBuffersTest.None > * DrawBuffersTest.NoneWithDepth > * DrawBuffersTest.NoneWithStencil > * DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment > > Fixes: > * conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html > > Bug: angleproject:6430 > Change-Id: I7f650c761f757985b027388c350c01340a83fd51 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180 > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Bug: angleproject:6430 Change-Id: I13977bd7ef32c4c85420706215b4f4d3a65629ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4030310 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 70cf2322 2022-11-16T10:25:07 Vulkan: Move async pipeline cache sync feature to backend Bug: b/246683126 Change-Id: I194e488e04580cee7055c0674091f1228984edf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031486 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Solti Ho <solti@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White 386ef2ee 2022-11-17T13:16:27 Fix EGL validation of core robustness attribute. Implement EGL validation of EGL_CONTEXT_OPENGL_ROBUST_ACCESS. Previously, only the _EXT flavour was validated. Note that EGLRobustnessTest was changed to only exercise the core version. Bug: chromium:1385480 Change-Id: I51f93d6cd344d073cd9656c9fff9636ca4eac99d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4030882 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Jason Macnak dcf3ab12 2022-11-17T09:52:36 Map AHARDWAREBUFFER_FORMAT_R8_UNORM to GL_R8 Bug: b/259551816 Test: cvd start --gpu_mode=guest_swiftshader Test: atest librenderengine_test Change-Id: I874278fe50dd1b501c11c484c55ed91e67a7013b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4034130 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7e7a47df 2022-11-16T21:29:20 Vulkan: Adjust logicOp dynamic state workaround Bug: chromium:1379201 Change-Id: I355d0034de12e5aaf95c160efcace34ff7062337 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031149 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jie A Chen <jie.a.chen@intel.com>
Austin Eng 91ee237f 2022-11-17T03:19:34 Revert "Metal: Skip disabled draw buffers" This reverts commit 4b084310d7bbb33631d58a461eb5814c12220926. Reason for revert: Crashing in webgl2_conformance_metal_passthrough_tests https://chromium-review.googlesource.com/c/angle/angle/+/4003180/comments/6e35ee21_38288238a Original change's description: > Metal: Skip disabled draw buffers > > When creating render pass descriptors, do not > assign textures to disabled color attachments. > > When creating pipeline descriptors, reset > pixel formats of disabled color attachments. > > Exit early when MTLRenderCommandEncoder is not created. > > Added: > * DrawBuffersTest.None > * DrawBuffersTest.NoneWithDepth > * DrawBuffersTest.NoneWithStencil > * DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment > > Fixes: > * conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html > > Bug: angleproject:6430 > Change-Id: I7f650c761f757985b027388c350c01340a83fd51 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180 > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Bug: angleproject:6430 Change-Id: I485691bdcc4214ed6958f606591f23331bfbea53 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4032391 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Austin Eng <enga@google.com> Reviewed-by: Austin Eng <enga@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xinghua Cao 03e69803 2022-11-16T15:49:44 Fix a document error This patch fixes an error of the document, which describes the translation from uniform block to StructuredBuffer. Bug: angleproject:7832 Change-Id: Ice98f41ce558a47a6c19983e24ddbd3ea435d59d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4029670 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 7fb1a25d 2022-11-16T11:40:55 Make BitSetT::Mask return a bit set This allows a Mask function to be implemented for BitSetArray, which is added in this CL. When using larger bitsets on 32-bit systems, the current Mask implementation prohibits its use. This is in preparation for a follow up change that uses Mask on such a bitset. Bug: angleproject:7369 Change-Id: If995d96ec1583a546f20bff277f3223e2f2490f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031493 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov b205207a 2022-11-16T14:39:00 Lock gpu clocks using nvidia-smi to avoid overheating For now only applies to Windows Nvidia (GTX 1660) bots where I tested this. Default clocks boost to 1800+ reporting 110W+ initial power usage which can't be dissipated by the setup and and gpu quickly hits ~90C and enters aggressive throttling. Locking to 1410MHz yield a much more modest 50~60W usage with reasonable gpu temps in the 70C~80C range over long runs at 100% utilization. Also log gpu temperature before/after running tests. Bug: angleproject:7671 Change-Id: Id43bede3b1d6a445f8caee6bbbaa43f7f380199b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031495 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 2dde7357 2022-11-16T10:39:32 Vulkan: `const` render passes Bug: angleproject:7369 Change-Id: I1ee1449bd8ea8c6a3e26e50a7f3734fad91dc911 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031488 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 5ef24b26 2022-11-16T11:17:53 Vulkan: Limit logicOp dynamic state workaround to old mesa Bug: chromium:1379201 Change-Id: I618507b118b4420793ec172f3ed1f0dddbb2ae86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4031492 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 3f9223b2 2022-11-15T20:31:55 Shader: Initialize mMaxComputeSharedMemory Uninitalized values are causing retrace failures. mMaxComputeSharedMemory is otherwise only set when the shader is compiled. Test: retrace_restricted_traces.py Bug: angleproject:7815 Change-Id: I9884ac3c8550775d435d6fa7b11d7aebc63c14d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4026669 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Gert Wollny <gert.wollny@collabora.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 4b084310 2022-11-04T00:00:00 Metal: Skip disabled draw buffers When creating render pass descriptors, do not assign textures to disabled color attachments. When creating pipeline descriptors, reset pixel formats of disabled color attachments. Exit early when MTLRenderCommandEncoder is not created. Added: * DrawBuffersTest.None * DrawBuffersTest.NoneWithDepth * DrawBuffersTest.NoneWithStencil * DrawBuffersTestES3.DrawWithDisabledIncompatibleAttachment Fixes: * conformance2/rendering/fs-color-type-mismatch-color-buffer-type.html Bug: angleproject:6430 Change-Id: I7f650c761f757985b027388c350c01340a83fd51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003180 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Lubosz Sarnecki 2fa255da 2022-11-09T16:44:02 FrameCapture: Don't capture trailing zeros in shader strings. This prevents C build errors like the following when applications provide incorrect shader string lengths: error: null character(s) preserved in string literal Bug: angleproject:7402 Change-Id: Iac7bab58533d152c4b6ed525f0cbcbcb8a7c35ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4020417 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 66fda678 2022-11-14T11:10:54 Capture/Replay: Delete buffer after test support for coherent The buffer created to test coherent and persistzent mapping is not used later, so it should be deleted. Since this buffer is created and deleted before any VAO is created, we also have to check whether a VAO exists before the buffer may be detached from it. Bug: angleproject:7814 Change-Id: I875f845e592325093dd90b48ba9cd3c7228fad47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023047 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao 8028bffc 2022-11-14T16:45:07 Vulkan: Flatten GarbageAndSerial class ObjectAndSerial templated class is only used by GarbageAndSerial. The serial number here means queue serial. This CL simply flattens the template class to GarbageAndQueueSerial to clarify the serial here is the queue serial that tracks GPU completion. Bug: b/259148812 Change-Id: I81e88a03ccffcf8fb632e3ac7dce886375dc51a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023098 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov e6491c2f 2022-11-15T19:35:47 Revert "Add temporary logging of gold_session.Initialize stdout." This reverts commit 05d86e06003bc9bcfdf62d769d6c6229e7680f5e. Reason for revert: this helped caught an issue https://anglebug.com/7550#c6, but recent outputs seem normal so no longer needed Original change's description: > Add temporary logging of gold_session.Initialize stdout. > > Normally looks like: > Loaded 1549 known hashes > ... > > Suspecting that in failure cases it's going to result in something > different. > > Bug: angleproject:7550 > Change-Id: I0190d4f679fc4161fc36a3008ba2e7d6d4764277 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804752 > Commit-Queue: Roman Lavrov <romanl@google.com> > Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Bug: angleproject:7550 Change-Id: I7c6e1569299ca4c834f29fcd01c3e707e373de16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4024759 Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Commit-Queue: Brian Sheedy <bsheedy@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
Charlie Lao 9483002d 2022-11-14T16:01:15 Vulkan: Clean up submitFrame/submitCommands ContextVK has two functions, submitFrame, and submitCommands. ContextVk::SubmitFrame means to be frame boundary or FBO boundary, usually refers to submission triggered by API, for example, glFlush/glFinish or FBO switches. ContextVk::submitCommands was added later to mean any kind of submission. It could be triggered by internal logic, for example, when we think we have accumulated too much staged updates. The odd thing is that ContextVk::submitFrame calls ContextVk::submitCommands, which calls RendererVk::submitFrame. I believe this is because when we introduced ContextVk::submitCommands, we did not bother rename RendererVk's API. This CL renames RendererVk::submitFrame and CommandQueue::submitFrame and CommandProcessor::submitFrame to submitCommands to be consistent with ContextVk's function names. This CL also removes unused function ContextVk::isSerialInUse() This CL also removes unnecessary vk:: namespace in CommandProcessor Bug: b/259148812 Change-Id: If074e381168950143ad56a728f23caa298e5f355 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4027284 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Charlie Lao 139b9df8 2022-11-14T15:53:15 Vulkan: getCommandBufferOneOff could reuse if serials are equal When one off commands serial is equal to last completed serial, it means completed. We should reuse command buffer instead of allocate a new one. Bug: b/259148812 Change-Id: Ibc006a93e1ee775a436396a0d35cf4ab2b363940 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023097 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov d8d85253 2022-11-15T12:38:05 Add gFixtures.clear() to ReleaseFixtures Not necessary as we only call it on termination but if ReleaseFixtures is called for e.g. eviction testing, it leaves bad state behind. Bug: b/258723409 Change-Id: I345c9197742f78ec952cacecdc9ba55b518f9f53 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4024757 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Cody Northrop 124ba087 2022-11-14T15:14:37 Tests: Add Minetest trace Test: angle_trace_tests --gtest_filter="*minetest*" Bug: angleproject:7831 Change-Id: If182136cd14207d7243a2fcd56737dd0ea28b2de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4022260 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Roman Lavrov f67d1224 2022-11-15T10:55:50 Delete osWindow and eglWindow in ReleaseFixtures valgrind rightfully reports these as leaks Bug: b/258723409 Change-Id: I02dbd771c6f7bd9e7df2269c77d8bd95af593044 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4025992 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Charlie Lao 85c98a92 2022-11-11T17:01:40 Vulkan: Only allocate default attribute if needed mDirtyDefaultAttribsMask has all bits set when starts. ContextVk::handleDirtyGraphicsDefaultAttribs() is looping all dirty bits and try to allocate buffer for it, which means we are looping 16 times when app starts. This CL changes to allocate a buffer only if used by program. Bug: b/258862506 Change-Id: I2f0a75d1fe141c9ac3101088fdc4ce4f60b0c4ee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4024544 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Alexey Knyazev 44d8fef8 2022-11-01T00:00:00 Add ANGLE_provoking_vertex spec Renamed provoking vertex enums to use _ANGLE suffix. The newly defined enums alias those from the desktop OpenGL extensions. Updated tests to use the new enum names. Bug: angleproject:2829 Change-Id: I72b686773536d3d54a653114cee5292007510a55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4013700 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Dan Glastonbury 40e4bc63 2022-11-09T12:40:48 Make DrawRangeElements validation consistent with DrawElements According to the WebGL specification, when an empty buffer is bound to GL_ELEMENT_ARRAY_BUFFER binding point, one of the possibilities is to return an error when trying to draw with an index count other than zero. This is the behavior of DrawElements variants but not DrawRangeElements. This change brings variants of DrawRangeElements behavior in line with that of DrawElements. Bug: angleproject:7822 Change-Id: I6844efd1038d95c652b72e52209dfdd74f006f9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4015418 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Roman Lavrov 4878b317 2022-11-14T11:41:20 Fix variable names UpdatePreCacheActiveTextures and updateExecutableActiveTexturesForShader do similar things but there seems to have been some naming confusion. Bug: b/242887117 Change-Id: Ib568f922c79b6ea36a225b4547e2abfc73b8ec08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4022143 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis fe3b0e38 2022-11-14T13:05:56 Skip flaky PBOExtension tests on Win until fix lands. An extra buffer is allocated by CoherentBufferTracker::canProtectDirectly that is being caught by the Capture/Replay context serializations. Bug: angleproject:7814 Change-Id: Id0b375d8fe7213fe0a34b667b721300fbc3908f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023668 Auto-Submit: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Amirali Abdolrashidi f62405c5 2022-10-31T18:47:52 Add utilities to get the Android backtrace * Added getBacktraceInfo(), which returns the backtrace information from the ANGLE code, including the addresses and the symbols if possible * Returns the data in an instance of the new class BacktraceInfo. * In order to access this function, backtrace_utils.h has been included in vk_utils.h * New GN flag to make use of this feature: * angle_enable_unwind_backtrace_support * Current only available on Android (debug mode) * If the flag is disabled, getBacktraceInfo() returns an empty object. * Added functions in util/ (per platform) to print the BacktraceInfo data. * Example of usage: angle::printBacktraceInfo(angle::getBacktraceInfo()); * Minor edit: Moved cstdint from android_util.cpp to its header. Bug: b/258475923 Change-Id: I6115462a1a2845d40c7cafc14ce52df09ecdcf34 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3995843 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Roman Lavrov d13c14d0 2022-11-11T10:32:13 Crash with a mesage when OSWindow::New returns nullptr Happens when !IsX11WindowAvailable() Bug: b/258723409 Change-Id: Ib16f7ffa9c9cd7ca75cb5659ae393b87d1e96326 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4023025 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 518209e8 2022-11-10T16:37:20 Fix Mac build sprintf was deprecated Bug: angleproject:7824 Change-Id: If261426f1bf4e8d7997f051b87ea4817d1e3a264 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4020418 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop fbf2d2f3 2022-11-05T23:00:51 Tests: Add Hungry Shark Evolution trace Test: angle_trace_tests --gtest_filter=TraceTest.hungry_shark_evolution Bug: angleproject:7820 Change-Id: I6e83efbb566d512c8e60bd27f00144c8c28593e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4007226 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 9c019cb3 2022-11-08T13:29:08 Vulkan: Features for graphics pipeline library Bug: angleproject:7369 Change-Id: I561cc095dcf2d4c71d24de8a6ca08d45567ad937 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4014519 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 5459baf9 2022-11-05T21:47:12 Tests: Add 1945 Air Force trace Test: angle_trace_tests --gtest_filter=TraceTest.1945_air_force Bug: angleproject:7819 Change-Id: I90ed9e74e206bd6e2d2b1ca0071d8526f582b353 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4007225 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki e99e40c9 2022-10-11T12:27:18 FrameCapture: Implement shadow memory for coherent buffers. On certain devices like the Pixel 6 it is not possible to mprotect Vulkan allocated memory required for coherent buffer tracking. To overcome this limitation implement a shadow memory for coherent buffers when running FrameCapture that is exposed to the app and syncronized with the Vulkan memory and can be mprotected for coherent buffer tracking. Add a test to determine whether memory protection can be used directly or will require shadow memory. Run this test only on build configurations with assertions enabled. Determine the requirement of shadow memory through a deny list of device manufacturers and models, which is checked against ANGLE's SystemInfo. Add ANGLE_CAPTURE_FORCE_SHADOW environment setting and Android equivalent to force enable shadow memory. Test: angle_end2end_tests --gtest_filter="BufferStorageTestES3.*/ES3_Vulkan" Bug: angleproject:7402 Change-Id: I74b7930259d3bc1846ef96fffa782f8bc553b043 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3945018 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 5a89387b 2022-11-01T10:50:26 Vulkan: Remove the best-practices layer It doesn't produce anything actionable in ANGLE (any more), but is regularly a source of false positives. Bug: angleproject:5336 Bug: angleproject:7470 Bug: angleproject:7795 Bug: b/166641492 Bug: b/166793850 Change-Id: I7fb322386e779c8c1f9a7805eb522926d8780446 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996803 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 7fefd230 2022-10-20T00:00:00 GL: Adjust APPLE_clip_distance exposure Partial revert of I458cad29c10b9d9193c5233e24bac53361ba104e APPLE_clip_distance cannot be implemented on top of EXT_clip_cull_distance because the former is defined both for ES 2.0 and ES 3.0 while the latter is defined only for ES 3.0. Although some ES 3.0+ drivers allow gl_ClipDistance built-in in ESSL 1.00 shaders, this behavior is not specified so ANGLE should not allow it. Added independent ESSL 3.00 gl_ClipDistance and gl_MaxClipDistances definitions. Adjusted translator unit tests. Bug: angleproject:4452 Change-Id: Ib582ce0ac7ccb65f0200ef1d17eaab0c83b228cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963745 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 78e28cb8 2022-11-03T11:05:48 Vulkan: Remove glslang fallback ANGLE's SPIR-V generator is battle tested by now. Bug: angleproject:6210 Change-Id: I2ed88642e3ede435e3f906fbd701133be6873fb7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4002868 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 5b218196 2022-11-06T11:39:23 Metal: Remove compilation through SPIR-V Direct metal generation is stable. Bug: angleproject:6081 Change-Id: If9e76f61ad38f2fc9963f0181dfd03c99ffa3e2b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003675 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Roman Lavrov 6b3e4d8b 2022-11-07T09:32:33 Ensure replay is at the first frame on startTest(). Currently trials continue from the next frame after warmup, so the frame that they start from fluctuate depending on how the warmup went. This was supposed to be tackled by aligning to frameCount() but the first warmup trial wasn't aligned as it would stop after a condition was reached. Only stop on mTrialNumStepsPerformed % stepAlignment == 0 Bug: angleproject:7671 Change-Id: I0da74d89547eda6e78762ee7745204d0da6fe73a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4008998 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Gert Wollny 98469694 2022-11-02T12:13:35 retrace: better error reporting For a resonable error reporting the output must be captured. Print the output on error only, if it is not written anyway. Bug: angleproject:7800 Change-Id: Ie0ca819b7e269317073f8f1c79819e35a33a4325 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003220 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Roman Lavrov 67300089 2022-11-07T09:52:14 Improve error messages when failing to load a library. https://groups.google.com/g/angleproject/c/SE6zIKU9LzY/m/WvyFvPW1DQAJ Bug: None Change-Id: Id44d96e14f8cc6607c40c746d51719753f3904dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4008999 Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Yuly Novikov ea86e8a2 2022-11-07T14:33:57 Skip PixelLocalStorageTest.DrawStateReset on Pixel 6 Fails similarly to existing suppressions on Pixel 4 Bug: angleproject:7771 Change-Id: I4b73728827408be71de3f9e9cc2b1808c2cb0597 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4009018 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>
Stephan Hartmann e64c4493 2022-11-07T15:34:38 IWYU: add unistd.h for access in rx::DeviceVkLinux Bug: chromium:957519 Change-Id: Ie23c3ceb6757ac48f2aca97c8c212103c81d4fda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4009019 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 335b5aba 2022-11-07T09:28:10 Capture/Replay: Make CaptureMidExecutionSetup param constant There is no need for for the context parameter to be non-constant. Bug: angleproject:7805 Change-Id: I1d998cf40f61a977ebce6d1160a859e082d99688 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4008198 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 109604b8 2022-11-07T09:26:05 Capture/Replay: remove unused context param from scanSetupCalls Bug: angleproject:7805 Change-Id: I4e00876ad6174c15aaa9503cf9eeaa6ea041c2a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4004416 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Kimmo Kinnunen c47e7711 2022-11-04T10:32:14 Metal: remove duplicate code in RenderPassDesc conversion Remove duplicate code that was due to a rebase error in "Metal: Remove use of ANGLE_MTL_AUTORELEASE from mtl_state_cache" 415ff51b8005ab462c3bd883dff75d31499132dc Bug: angleproject:7813 Bug: angleproject:6833 Change-Id: If4af7a49033f31dfa1e10571388e8ad9922939e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003223 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Chris Dalton 9bda9a79 2022-10-22T22:05:11 Add Store Ops to pixel local storage Browsers will need the ability to pre-empt pixel local storage, which means every plane will need a backing store to dump to. Store Ops allow the app to still avoid memory transactions at the end of PLS even if their plane has a backing texture. Bug: angleproject:7279 Change-Id: I3a3efa21773f87c03cd346a996e3c638028c68ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3974652 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Chris Dalton 54f29c4a 2022-11-04T09:57:36 Suppress PixelLocalStorageTest.ClearState on iOS (simulator) Update the suppression after a rename of the test. Bug: angleproject:7756 Change-Id: Ia389b87d9ca2356b0a76c1a2d389bc8f5e1eed7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4006413 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jason Macnak a032bd10 2022-11-04T10:36:07 Vulkan: Handle extension enumeration returning less than requested Speculative fix for b/249457381 where we have previously seen extensions enabled/disabled based on settings which may be loaded/changed between vkEnumerate*() calls. Bug: b/249457381 Change-Id: I36aa8aec38037ff3d8c9a036d27289e1abb930fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4006713 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 7fa69511 2022-11-04T10:10:05 FrameCapture: Skip glGetActiveUniformBlockName calls. Since moving to plain C traces removed references to uniform block indices, this call should also be part of the related skip list. This fixes capturing traces using the call an not hitting UNREACHABLE when handling TUniformBlockIndex. Bug: angleproject:7731 Bug: angleproject:7402 Change-Id: I510aceaa0965c2469367212784b504ea251a2541 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003222 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Chris Dalton 3605b399 2022-10-20T17:00:02 Move PLS clear values back into context state The API that required packing raw data into a buffer was un-ergonomic for developers and difficult to implement for WebGL vendors. Bug: angleproject:7279 Change-Id: If7c98908c285462c5775e8e2d8811883be139f64 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3972376 Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kenneth Russell 3226cce3 2022-11-02T16:02:46 Update EGL_ANGLE_metal_shared_event_sync implementation. Rename the extension's .txt file to match the current name of the extension. Update function signatures to take EGLSync rather than EGLSyncKHR. The two types are conceptually incompatible. This extension requires the use of eglCreateSync rather than eglCreateSyncKHR because the latter takes an array of EGLInt, but EGLAttrib is needed to express pointers (to MTLSharedEvents) in the attribute list. Revise ContextMtl::flush to use WaitUntilScheduled on older operating systems not supporting MTLSharedEvent. Bug: angleproject:7809 Change-Id: I39197616dc3e1e7ec6dc68dd83b4fde05184debf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4000941 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Robert Mader dd560015 2022-09-28T14:40:01 Reland "Vulkan: Implement EGL_EXT_device_drm[_render_node]" This is a reland of commit 8900cbf96a3127880b1667d2242dc13a98cfe029 Original change's description: > Vulkan: Implement EGL_EXT_device_drm[_render_node] > > These extensions are needed by Exo for zwp_linux_dmabuf v4 support. > > Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the > information about the filesystem layout, needed by the EGL version. > As ChromeOS is currently the only user, implement the extension only for > Linux where we can reasonably assume `/dev/dri/...` file paths. > > We do not, however, limit us to the GBM backend - having the extension > working in e.g. a nested X11 or Wayland environment is quite helpful. > > Bug: angleproject:7686 > Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7686 Change-Id: I66dfd7aa51f76cb9668dbfbd0f3e1f32123bff7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003941 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Charlie Lao 71d28a9b 2022-11-02T13:19:20 Vulkan: Remove unused ShaderAndSerial The serial in the ShaderAndSerial is unused. This CL removed ShaderAndSerial and replaced with ShaderModule directly. Bug: b/257116399 Change-Id: I50d42af7818a12888309a80423531d75135e0bfd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3998747 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 9340f01d 2022-11-03T00:00:00 Metal: Restore load actions after attachment updates Framebuffer invalidation sets attachment load actions to MTLLoadActionDontCare. Restore them to MTLLoadActionLoad after content changes, which may be caused by texSubImage uploads. Fixes: * SimpleStateChangeTestES3.InvalidateThenSubUploadThenBlend * conformance2/renderbuffers/invalidate-framebuffer.html Bug: angleproject:7397 Change-Id: I8a1b223c92b1fd082f4961161efafaf6b60f8698 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4001808 Reviewed-by: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 319f8228 2022-11-03T16:58:07 Revert "Vulkan: Implement EGL_EXT_device_drm[_render_node]" This reverts commit 8900cbf96a3127880b1667d2242dc13a98cfe029. Reason for revert: anglebug.com/7811 Original change's description: > Vulkan: Implement EGL_EXT_device_drm[_render_node] > > These extensions are needed by Exo for zwp_linux_dmabuf v4 support. > > Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the > information about the filesystem layout, needed by the EGL version. > As ChromeOS is currently the only user, implement the extension only for > Linux where we can reasonably assume `/dev/dri/...` file paths. > > We do not, however, limit us to the GBM backend - having the extension > working in e.g. a nested X11 or Wayland environment is quite helpful. > > Bug: angleproject:7686 > Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:7686 Change-Id: I703351e93c4befbd3415b9ba04730066ee9c6afd No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4003857 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Robert Mader 8900cbf9 2022-09-28T14:40:01 Vulkan: Implement EGL_EXT_device_drm[_render_node] These extensions are needed by Exo for zwp_linux_dmabuf v4 support. Unfortunately `VkPhysicalDeviceDrmPropertiesEXT` doesn't give us the information about the filesystem layout, needed by the EGL version. As ChromeOS is currently the only user, implement the extension only for Linux where we can reasonably assume `/dev/dri/...` file paths. We do not, however, limit us to the GBM backend - having the extension working in e.g. a nested X11 or Wayland environment is quite helpful. Bug: angleproject:7686 Change-Id: I6de14e68ffbc479450bd22a182bc138365efb516 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996703 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 5e95a4d9 2022-10-07T00:52:38 Add an EXT_shader_pixel_local_storage impl of PLS Translates ANGLE_shader_pixel_local_storage shaders directly to EXT_shader_pixel_local_storage. Polyfills load/store operations using internal fullscreen draws. Since the ANGLE extension needs the ability to preserve all active PLS planes to textures, we can only support this extension when the backend context also has access to ES 3.1 shader images. Bug: angleproject:7279 Bug: angleproject:7771 Change-Id: Id348bde412efcc081ff29ee05ec59ad652f77569 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966075 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny a55c5315 2022-11-02T10:43:08 translator: handle tesselation shaders when force-init outputs Bug: angleproject:7804 Change-Id: Ie3565c1fa1a3563192eb2faf3830883f2788b77a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3998632 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 1b88c41f 2022-10-31T10:58:09 Vulkan: Remove the disableFifoPresentMode feature Workaround was added for old Intel bots, no longer applicable. Bug: angleproject:3153 Change-Id: Ib248927fbb1be33d8bd89a0c8185761f7f1ed6fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993361 Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Yiwei Zhang 8f420fd0 2022-11-01T18:51:41 Repurpose enableCompressingPipelineCacheInThreadPool For platforms with a higher blob cache limit, say 32MB, compressing the bigger pipeline cache data is better delegated to a background thread. This change repurposes this default disabled workaround as a feature for such platforms. This change also enables enableCompressingPipelineCacheInThreadPool for mesa venus driver. Bug: b/246683126 Test: apps runs normally and cts passing Change-Id: Ied1d9b3ee351f71abedeed04d21c700c1ad7cd18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3997592 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 86d9d876 2022-11-01T22:21:52 Finish renaming GL_PIXEL_LOCAL_STORAGE_ACTIVE_PLANES_ANGLE Fix a couple spots that missed the rename. Bug: angleproject:7797 Change-Id: Iee44b525f70e00e631e07ec2e984c7a41c3b616a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996109 Reviewed-by: Steven Noonan <steven@valvesoftware.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny e3d0bee6 2022-11-01T13:54:16 retrace: Check for the output json file after upgrade To check the success of writing a new trace we have to look in the output directory, otherwise even skipped traces will report success. Bug: angleproject:7800 Change-Id: Icd2d79c3ebe55cd02f55635b1ccf48d19f46acea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996704 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Cody Northrop bae82cfa 2022-10-31T17:11:45 TraceTest: Route eglGetError through WGL eglGetError is not implemented, but shouldn't crash on Windows. Bug: angleproject:7799 Change-Id: I61158ab21b86539020b5d492486333a56908ab69 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3995984 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Sean Risser f3e047b5 2022-10-12T16:28:32 Add new retrace command get_min_reqs `retrace_restricted_traces.py get_min_reqs` finds the minimum required GLES version and extensions and record them to a trace's json file. TracePerfTest has also been modified to use the new "RequiredExtensions" json field to determine if it should run a test or not. This allows several lines to be removed from TracePerfTest's constructor. get_min_reqs uses a divide-and-conquer strategy to find the extensions. This approach should be faster for traces where the number of required extensions is less than 20. This adds a new command to retrace_restricted_traces.py called get_min_reqs. This runs an existing trace multiple times to find what the minimum required GLES version is, then records that version to the trace's json file. Bug: angleproject:7639 Change-Id: I42530e438054efec1ad79ababebe06d221d5c695 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3884175 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Sean Risser <srisser@google.com>
Akihiko Odaki 31a090ca 2022-11-01T22:09:44 Debug: Handle LOG_EVENT on Apple platform Trace() lacked the code path to handle LOG_EVENT for Apple platform, leading to the "unreachable" code path. Fix the problem by logging the message as info-level with the OS interface, as done for Android. Bug: angleproject:7802 Change-Id: I45811102c07c9f65c5a828f71c37bd8d0cd672e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996521 Auto-Submit: 小田喜陽彦 <akihiko.odaki@gmail.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Dalton 9f693aa3 2022-10-22T14:45:59 Implement an allow list for PLS In order to guarantee no data is lost while using the EXT_shader_pixel_local_storage extension, we need to restrict applications to a small subset of commands while pixel local storage is active. This CL implements the allow list for GL entrypoints using wildcard matching inside the code generator, and adds custom validation for the more specific restrictions that go into effect when PLS is active. Bug: angleproject:7279 Change-Id: I5dd48bd93c10e8775f32be32a4fcf17855eb2f0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3932552 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Gert Wollny 9737c632 2022-10-24T11:34:51 retrace: Add --show-test-stdout arg to validation This argument is checked when running validation, so we have to define it. Bug: angleproject:7800 Change-Id: Ia24a8c8a82a8bdcefcf707bd9c9183ead4ee095d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3990622 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 7ea302b6 2022-10-31T09:21:18 Capture/Replay: Special-case EGL image attribute pointer write If we don't special case this, the taken code path may end up writing "(nil)" if we have a null pointer, and compilation of the test will fail. Bug: angleproject:7793 Change-Id: Ic9fe9ccca0304069adbbb996666bc643e7d29278 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3990758 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 822471f0 2022-10-24T08:08:03 retrace: Add a catch-all clause to report all errors With that running the a batch of tests from an external script can bail out early when a trace fails. Bug: angleproject:7800 Change-Id: I5041e863a8cdc212b7057b88e3f0fd68a5115470 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3990621 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 27561f04 2022-10-30T09:38:00 Capture/Replay: Emit always gContextMap2 when capturing traces Bug: angleproject:7800 Change-Id: I12fc39d709527865a9b248a00c95d281c4e4d743 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993317 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev adcda453 2022-11-01T00:00:00 Suppress new clip distance tests on iOS Bug: angleproject:7768 Change-Id: Ib61efbb97dd9d6b238d4a59fc50983515f9d89fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3996442 Auto-Submit: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 67ee4976 2022-10-31T15:34:19 Vulkan: Skip BestPractices-ImageBarrierAccessLayout Bug: angleproject:7795 Change-Id: I98f6840f9cd2956f7e73d0496a26f504516c48e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993364 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexey Knyazev 805e00b8 2022-10-27T00:00:00 D3D11: Add clip and cull distance support Added gl_ClipDistance and gl_CullDistance support to HLSL translator. Added enabled clip distance GL state emulation. Added limitSimultaneousClipAndCullDistanceUsage limitation. Expanded and optimized related end2end tests. Bug: angleproject:4452 Change-Id: Id66312505254ceff43d5258d486ddcdb0462db47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3990944 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 7b102c18 2022-10-31T10:29:45 Vulkan: Disable logicOp dynamic state on Intel/Mesa Hits a stack overflow inside the driver. Bug: chromium:1379201 Change-Id: I52e5254b37688a027cbcf5ee5752de36b9b2a3aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993360 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 9d9b8b07 2022-10-24T15:56:42 Docs: Fix up trace replay options The restricted_traces README was missed in prior update. Bug: angleproject:7755 Change-Id: I65380ef902d3b8a39cec16829c3e0e8170e2667b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3975599 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Chia-I Wu 32fb3be6 2022-10-27T16:05:30 Vulkan: disable rasterization order feature if isQualcomm It is simpler to just disable it for Qualcomm. Bug: b/255837430 Change-Id: I884a9635ed2c6049fa4f79e10613f87f3f40f199 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989644 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Chia-I Wu <olv@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chia-I Wu 5fc46a22 2022-10-27T16:02:31 Vulkan: Specify rasterization order only when there is fb fetch The original change had a performance impact on Qualcomm open source driver on some traces trex_200 22ms -> 39ms car_chase 80ms -> 190ms because it is expensive to make fb fetch coherent on Qualcomm hardware. This fixes the regression by making sure we specify the rasterization order only when there are indeed fb fetches. But we believe other workloads can still be hit by the issue even after this fix. We will disable rasterization order for Qualcomm driver in the next commit. Bug: b/255837430 Change-Id: If240dcbfd73112a72dc1e537821636ca16290eaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989166 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Chia-I Wu <olv@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Chris Dalton <chris@rive.app>
Yuxin Hu ce62d52f 2022-10-27T18:41:11 Fix Mid Execution Capture for External Texture How we capture eglCreateImage and eglCreateImageKHR have changed recently. Fix the code that recreate eglCreateImageKHR calls for external texture type in Mid Execution Capture. Bug: angleproject:7758 Change-Id: I2bd35ec3349f1d4f1aef1bf7f76ac50d4abca53d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989645 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Tiago Vignatti 4abae6f9 2022-10-28T11:09:15 Metal: Fix 8-bit type name This fixes a probable typo for the 8-bit unsigned integer value type. Test: build ANGLE with Metal renderer enabled on iOS. Bug: None Change-Id: I2a332d996633fd81d01eece75817efb5683a5b31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3989426 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Alexey Knyazev ac5a9c53 2022-10-26T00:00:00 Metal: Optimize ReplaceClipCullDistanceVariable The intermediate ANGLEClipDistance variable is not needed when generating MSL output directly. Bug: angleproject:6291 Change-Id: Ie3d32a903645be002f21c44a6233f9cd0155605a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3981716 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kyle Piddington <kpiddington@apple.com>