src


Log

Author Commit Date CI Message
Shahbaz Youssefi 77831a6d 2021-05-31T22:41:58 Vulkan: SPIR-V Gen: If-else blocks This change implements if-else blocks as well as a few simple binary operations (equality, less-than etc). It builds on prior work to generate the function in separate blocks and introduces a "conditionals" stack to support nesting of if-else blocks, switches and loops. Bug: angleproject:4889 Change-Id: If7694000487811837ed5946753568b41d67199f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2929660 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 1b680b77 2021-06-02T22:04:45 Reland "Make SH_CLAMP_INDIRECT_ARRAY_BOUNDS do proper AST transformation" This is a reland of a474fd7de769ae817db83490d410510cdbed75b2 The integer clamp used in this transformation is not available in es100 shaders, and float clamp is used instead. Original change's description: > Make SH_CLAMP_INDIRECT_ARRAY_BOUNDS do proper AST transformation > > This translator flag adds a clamp to non-literal indices to arrays. Two > strategies were provisioned, using the clamp intrinsic or a hand-written > function. The latter is ununsed in angle, chromium, firefox and > webkit, so this change removes this option and uses the clamp intrinsic > unconditionally. > > The clamp itself was added at output generation time with special flags > set on the index node. This is changed such that a proper AST > transformation is done and no-special handling would be necessary. > > Bug: angleproject:4361 > Bug: angleproject:4889 > Change-Id: Ieccfd2c1c347563fb5282e9fa66d39304e62f2ca > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935041 > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:4361 Bug: angleproject:4889 Change-Id: I9397ec7e6bdfb706c2a891b33fd3b2b79e883ccc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940902 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Mohan Maiya 26a54260 2021-05-26T16:53:29 Reland "Vulkan: Handle immutable sampler state change in TextureVk" This is a reland of 349c08300e08bc809c448d62e0ad969ecb17c047 Skip YUV tests on Pixel2 Original change's description: > Vulkan: Handle immutable sampler state change in TextureVk > > Transitioning between sources in RGB and YUV colorspace or between > YUV formats with different layout should force the recreation of > pipeline layout and the invalidation of texture's sampler. > > Only textures that are EGLImage targets are handled for now. > > Bug: b/155487768 > Bug: angleproject:5033 > Bug: angleproject:5773 > Test: ImageTest.SourceAHBTarget2DExternalCycleThrough*Vulkan > Change-Id: I02d5763e7f89b910313e14b57bfc5403113dfbb2 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2924415 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Bug: b/155487768 Bug: angleproject:5033 Bug: angleproject:5773 Change-Id: Ie3791bc6f6e9b53eb0db23759a14fdc038c8f5b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2939354 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Sunny Sachanandani 03d8e7c9 2021-06-04T21:22:52 Revert "Vulkan: Handle immutable sampler state change in TextureVk" This reverts commit 349c08300e08bc809c448d62e0ad969ecb17c047. Reason for revert: anglebug.com/6028 Original change's description: > Vulkan: Handle immutable sampler state change in TextureVk > > Transitioning between sources in RGB and YUV colorspace or between > YUV formats with different layout should force the recreation of > pipeline layout and the invalidation of texture's sampler. > > Only textures that are EGLImage targets are handled for now. > > Bug: b/155487768 > Bug: angleproject:5033 > Bug: angleproject:5773 > Test: ImageTest.SourceAHBTarget2DExternalCycleThrough*Vulkan > Change-Id: I02d5763e7f89b910313e14b57bfc5403113dfbb2 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2924415 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Bug: b/155487768 Bug: angleproject:5033 Bug: angleproject:5773 Bug: angleproject:6028 Change-Id: Ib8b3b54ff61f26910df2af4a6b894b3d2d5906bb No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2941547 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Jamie Madill 046f70a3 2021-06-04T15:40:16 Revert "Remove unused code from ValidateES2CopyTexImageParameters" This reverts commit fcd7affb6bfd9e17d6c12e836158f8f0fc634b14. Reason for revert: Differences in format checks make the validation logic trip a newly added ASSERT. Bug: chromium:1216276 Original change's description: > Remove unused code from ValidateES2CopyTexImageParameters > > Compressed formats are rejected earlier with > ValidateCopyTexImageParametersBase > > Bug: angleproject:5731 > Change-Id: I7809140af84f2c565008e211adf0f998a0e57e91 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2741580 > Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> Bug: angleproject:5731 Change-Id: I7734d9bce538e5679c8ee672f547941f5f693261 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2940904 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi fafd64a6 2021-06-01T17:08:07 Vulkan: SPIR-V Gen: Matrix decorations Matrices in blocks require MatrixStride and one of ColMajor or RowMajor decorations. Bug: angleproject:4889 Change-Id: I14ddb32fd3dbc977bf41703b016dc6d1c0722475 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930368 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Mohan Maiya 349c0830 2021-05-26T16:53:29 Vulkan: Handle immutable sampler state change in TextureVk Transitioning between sources in RGB and YUV colorspace or between YUV formats with different layout should force the recreation of pipeline layout and the invalidation of texture's sampler. Only textures that are EGLImage targets are handled for now. Bug: b/155487768 Bug: angleproject:5033 Bug: angleproject:5773 Test: ImageTest.SourceAHBTarget2DExternalCycleThrough*Vulkan Change-Id: I02d5763e7f89b910313e14b57bfc5403113dfbb2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2924415 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Cody Northrop 135d1483 2021-06-03T13:24:16 Tests: Skip flaky capture_replay_tests Several VulkanExternalImageTest* tests are timing out locally, but not consistently. Bug: angleproject:5721 Change-Id: Iffb6d319bb31206af3287a70259a47857b64f434 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937736 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 683064b7 2021-06-02T02:59:55 Vulkan: Fix missing operand list in OpExecutionMode parser & builder Bug: angleproject:4889 Change-Id: Ie864031caeddfcf5202044b0f9c197b3883ceaf7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2934782 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 16b10a54 2021-05-21T15:35:00 Revert "Capture/Replay: Emit SetupReplay() late" This reverts commit 54ba6f0135715737a55f2dc4fc1cb86874fb98f9. Reason for revert: breaks MEC. Bug: angleproject:5999 Original change's description: > Capture/Replay: Emit SetupReplay() late > > Only emit SetupReplay() after all captured frames have been run, > so that InitializeReplay() is called with values of > readBufferSize and the maxClientArraySize that are sufficiently > large for all frames. > > Bug: angleproject:5965 > Bug: angleproject:5895 > Change-Id: Ic59597dc27f733fb210d7cc5a144a86e54cd2040 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894486 > Commit-Queue: Gert Wollny <gert.wollny@collabora.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> Bug: angleproject:5965 Bug: angleproject:5895 Change-Id: Ia901183b2052fa2b4552ad2e09818a2894fbdf6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911878 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 9ba86e06 2021-06-03T13:41:39 Revert "FrameCapture: Write the frame cpp file even if frame is empty" This reverts commit 6619c464e5f6237d7465ec945d24164372aa4196. Reason for revert: breaks MEC. Bug: angleproject:5999 Original change's description: > FrameCapture: Write the frame cpp file even if frame is empty > > The index file will add a reference to this file, and the replay will > also expect that the frame execution function and the context function > exist, so write the file even if the frame is empty > > Bug: angleproject:5939 > Change-Id: I265d061fdae51b86131d145116ad1c0f9ca8c93f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2882581 > Commit-Queue: Gert Wollny <gert.wollny@collabora.com> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5939 Change-Id: I759d44ba847c69faf1caf97a9818836d1be3b058 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937737 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill cf853b30 2021-06-03T13:54:44 Add missing buffer validation to BeginTransformFeedback. A change to Vulkan exposed this missing validation. In the Vulkan back-end we do some caching on BeginXFB, which would perform an invalid memory access. Adding the missing validation correctly traps the error before we reach the back-end. Bug: chromium:1171685 Bug: angleproject:4622 Change-Id: I5c92575a07149e431c4f260a4555ff196822c64e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937022 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
angle-autoroll 05d5e0d3 2021-06-03T09:34:12 Roll VK-GL-CTS from 2e0ecf9812ba to c25238228ea4 (11 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/2e0ecf9812ba..c25238228ea4 2021-06-03 jari.komppa@siru.fi Static code analysis fix for bounding box test 2021-06-03 jari.komppa@siru.fi Add timer query handle reuse test for opengl es 2021-06-03 boris.zanin@mobica.com Invalid VkPipelineRasterizationLineStateCreateInfoEXT chained 2021-06-03 mika.vainola@siru.fi Fix vertex count calculation in XFB query tests 2021-06-03 pdaniell@nvidia.com Set the recursion depth for chit and miss cases 2021-06-03 siglesias@igalia.com Add depth-stencil tests that do vkCmdCopyImage() with both image aspects 2021-06-03 marcin.zajac@mobica.com Test for fragment shading rate in FragCoord.zw 2021-06-03 siglesias@igalia.com Add tests for vkCmdCopyQueryPoolResults and pipeline statistics 2021-06-02 alexander.galazin@arm.com Update glslang, SPIR-V Tools/Headers 2021-06-02 zzyiwei@chromium.org Check return code for vkGetAndroidHardwareBufferPropertiesANDROID 2021-06-02 venni.ihanakangas@siru.fi Add script for comparing dEQP SwiftShader runs 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 ynovikov@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human is aware of the problem. 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/master/autoroll/README.md Bug: None Tbr: ynovikov@google.com,angle-bots+autoroll-info@google.com Change-Id: I664cd69b0e4a594077d193fa4f81c47b8812f2c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2934721 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi c2ad5824 2021-05-31T12:20:27 Vulkan: SPIR-V Gen: Code blocks This change lays the foundation for implementing branches and loops. In SPIR-V, every block starts with an OpLabel (which identifies the block and serves as the branch target to that block), and ends in a branch. An `if` for example implies the existence of four blocks, the header including code leading up to the if, the true and false blocks and the "merge" block, including the code following the if-else blocks. This change includes support code for generating function code split in blocks, even though only one block is currently used. Bug: angleproject:4889 Change-Id: I10f96b78b6f00c20bc7f9c81e854ab5543bf8fde Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2929659 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill bc9d5223 2021-06-02T18:19:08 Experimental fix for stdout freopen race. Bug: chromium:1213184 Change-Id: I2e2741f4100b2a5516210f2250dc82511fafd05b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2933602 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 10f15011 2021-06-03T19:22:53 Revert "Make SH_CLAMP_INDIRECT_ARRAY_BOUNDS do proper AST transformation" This reverts commit a474fd7de769ae817db83490d410510cdbed75b2. Reason for revert: breaks GLES2ConformTest, see roll into Chromium: https://chromium-review.googlesource.com/c/chromium/src/+/2935093 Original change's description: > Make SH_CLAMP_INDIRECT_ARRAY_BOUNDS do proper AST transformation > > This translator flag adds a clamp to non-literal indices to arrays. Two > strategies were provisioned, using the clamp intrinsic or a hand-written > function. The latter is ununsed in angle, chromium, firefox and > webkit, so this change removes this option and uses the clamp intrinsic > unconditionally. > > The clamp itself was added at output generation time with special flags > set on the index node. This is changed such that a proper AST > transformation is done and no-special handling would be necessary. > > Bug: angleproject:4361 > Bug: angleproject:4889 > Change-Id: Ieccfd2c1c347563fb5282e9fa66d39304e62f2ca > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935041 > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:4361 Bug: angleproject:4889 Change-Id: I911cfe0199b04dbc3d6d4265775b6c2de00a9777 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2937024 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 9193a909 2021-05-26T15:07:54 Tests: Add Genshin Impact trace Test: angle_perftests --gtest_filter="*genshin_impact*" Bug: b/181794064 Bug: angleproject:6023 Bug: angleproject:6024 Change-Id: Ic0debb1e284d672b8ab179ac24cd711c9e5d7e9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921069 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi a474fd7d 2021-06-02T22:04:45 Make SH_CLAMP_INDIRECT_ARRAY_BOUNDS do proper AST transformation This translator flag adds a clamp to non-literal indices to arrays. Two strategies were provisioned, using the clamp intrinsic or a hand-written function. The latter is ununsed in angle, chromium, firefox and webkit, so this change removes this option and uses the clamp intrinsic unconditionally. The clamp itself was added at output generation time with special flags set on the index node. This is changed such that a proper AST transformation is done and no-special handling would be necessary. Bug: angleproject:4361 Bug: angleproject:4889 Change-Id: Ieccfd2c1c347563fb5282e9fa66d39304e62f2ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935041 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 8c51ac2b 2021-06-02T19:50:46 Gold Tests: Fix sharding + batching. Clearing the GTEST args from the env vars will run the proper subset of tests instead of applying sharding arguments twice. This should fix the tests on the bots running a small subset of the tests. Also updates logging control for the script. Bug: angleproject:5966 Change-Id: Ic8a21e6aacfed17eff836d4301a6a50464b2cb92 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935196 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi be873929 2021-05-26T21:55:50 Vulkan: SPIR-V Gen: Handle constants and constructors This change translates constants and constructors (minus type casting). With this change, shaders such as gl_Position = vec4(aposition, 0, 1); are translated correctly. Bug: angleproject:4889 Change-Id: I4463717cf880c6d05db179b98691d5cabc1a2d7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920192 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Yuly Novikov c39e2a18 2021-06-02T22:58:30 Skip flaky end2end tests on Mac AMD OpenGL IndexBufferOffsetTestES3.UseAsUBOThenUpdateThenUInt8Index IndexBufferOffsetTestES3.UseAsUBOThenUpdateThenUInt8IndexSmallUpdates Bug: angleproject:6025 Change-Id: Ie1038b9a33d7870c8c1f03c5a88196463615c535 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935597 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi aa2626f9 2021-05-21T15:24:55 Vulkan: SPIR-V Gen: Handle load/store access chain This change implements a key instruction of SPIR-V, OpAccessChain. Inspired by glslang's implementation, a class is added (AccessChain) that tracks "indices" into a base value. These indices could select a field of a block, an element of an array, a column of a matrix, or a component of a vector. Nuances (such as multi-component swizzle as an lvalue not representable in SPIR-V) and optimizations (such as all-literal indices to an rvalue) that are implemented in glslang have also been implemented in this change. As a result, this change implements all manners of loads and stores (with the exception of this gotcha: https://github.com/KhronosGroup/glslang/issues/2637). The change uses this feature to translate the basic shader which does `gl_Position = positionAttr;` (by implementing EOpAssign), and enables a test that uses this shader. Bug: angleproject:4889 Change-Id: I22dbe5b169ce499eaac657902164aca3b0ebc193 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911880 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Ian Elliott 152450f8 2021-06-02T15:38:35 Fix ContextVk::handleNoopDrawEvent() for when no cmd buffer ContextVk::handleNoopDrawEvent() was created to handle no-op glDraw*'s. However, it assumed/assert'd a valid mRenderPassCommandBuffer. That is not always the case. Fix this by having handleDirtyEventLogImpl() check for a valid command buffer. Bug: b/189967673 Bug: b/184888395 Change-Id: Ice7c5da842a6f41f27c24af8e858147d01be86bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935756 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Shahbaz Youssefi bcb678a5 2021-05-27T16:50:55 Vulkan: Fix deferred clears vs 3D textures Two bugs are fixed in this change. One is that framebuffer attachments to 3D textures should not attempt to defer clears. The clear staged for the 3D texture applies to all slices, not just the slice the framebuffer is attached to (and that would get cleared through deferred clears). Secondly, when clearing an attachment to a 3D texture, the clear must be applied immediately through a render pass loadOp to affect only the slice that's attached. This was already handled for layered framebuffers where the clear was applied immediately if the 3D texture render target had more layers than the framebuffer. The condition for this is generalized to check whether the 3D texture has more slices (regardless of whether the render target is layered or not). Test is based on one written by Austin Eng <enga@chromium.org> Bug: angleproject:5967 Change-Id: I43cf5fc24673323eda8390021641e2238be6e375 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2923785 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 778a4ed9 2021-06-01T22:51:24 Re-enable atomic counter tests on Vulkan/Windows Since --bot-mode, the situation that prevented these tests from working is no longer possible. Bug: angleproject:3738 Change-Id: I9ef8af8ebd204cb490e3907ca621eb30bb829532 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2931757 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 6207b871 2021-06-02T16:10:52 Mark a dEQP.GLES31 test slow dEQP.GLES31/functional_ssbo_layout_random_all_shared_buffer_36 Bug: angleproject:6021 Change-Id: Ic8c7a30c16ca8250abc964ea33268055f62ba1c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2935296 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 71584e36 2021-05-27T11:50:47 Tests: Disable trace compilation for MSVC and GCC New traces are hitting string literal limits with MSVC. Since we don't use MSVC or GCC for trace development or testing, this CL disables trace compilation for non-clang setups. Bug: b/181794064 Bug: angleproject:6009 Change-Id: I0377792a049153a5505ecda4346a3cec57c12e9e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2922682 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
John Plate 41b817f3 2021-05-31T17:38:43 CL: Add buffer enqueue commands Add buffer enqueue commands to front end and pass-through back end. Bug: angleproject:6015 Change-Id: I936530d31903e395550e4540339ebec2e6702e65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928425 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
John Plate daf18594 2021-05-31T12:04:42 CL: Refactor front end entry functions Move all front end functions that are only called from the OpenCL entry points to a separate section at the top of the front end object class bodies, which improves readability. Bug: angleproject:6001 Change-Id: Id360adbf0c439e4068c379aa4ea1da25e99f7b53 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928419 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 3c1b02b5 2021-06-01T16:22:47 Tests: Turn lineage_m on for Nvidia Linux The test is no longer failing. Test: angle_perftests --gtest_filter="*lineage_m*" Bug: angleproject:5748 Change-Id: Ic25471c1628d99b6e305c6b4ce6fa4b1e3558514 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930820 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Ian Elliott f7843da2 2021-05-27T16:41:51 Create tests for GL_EXT_shader_framebuffer_fetch extension This CL refactors most of the existing tests for the GL_EXT_shader_framebuffer_fetch_non_coherent extension, sharing shader and test code with new tests for the coherent extension. Bug: b/188095445 Change-Id: I23eac5dae9055f1c8f9eeb9c33429fd1091e68fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2923323 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
John Plate baca10b7 2021-05-29T16:26:57 CL: Remove object cache and fix multi-threading All CL front end objects used to be cached to be able to determine if an object has been created by the front end to check its validity. The validity is now checked with the existence of an intrinsic value (the dispatch table pointer), which is consistent with the patterns found in Mesa and clvk (though clvk uses a magic value). This allows the removal of all cached objects. The cached objects were stored with std::unique_ptr. These are now gone and all remaining pointers are now custom intrinsic reference count pointers. Also remove global lock which causes deadlocks, e.g. when CL API is called from a separate thread to unlock a blocking call with a user event. Most of the front end is constant and already thread-safe. The ref count is also thread-safe now (atomic). A few remaining locks will follow. Without the global lock it was now possible to make the API reentrant, and to remove the workaround with the Khronos ICD loader to skip ANGLE's OpenCL library. Bug: angleproject:6001 Change-Id: I7d3b52db9011a02cb7ea9ebdeb6e22c4c702ef5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927395 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
John Plate 076974a9 2021-05-28T11:44:54 CL: event creation for front end & passthrough Add event object to back end and implement creation and info query. Bug: angleproject:6001 Change-Id: Id4951b726b66afa289fafe1a716a7cfdb6f5826d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2925477 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Kyle Piddington d7aa0130 2021-04-26T16:56:15 Upstream Apple's direct-to-Metal backend: compile translator. This change is meant to merge the translator changes from Apple's direct-to-Metal backend. Taken from Kyle Piddington's CL: https://chromium-review.googlesource.com/c/angle/angle/+/2857366/ The goal of this CL is to merge the translator code in a state that compiles, but not to switch the Metal backend over to use this translator backend yet. Bug: angleproject:5505 Change-Id: I68a6354604498cd5fd1eb96c13fc56f3b38f2bd0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897536 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
John Plate 9459456b 2021-05-27T13:43:41 CL: kernel creation for front end & passthrough Add kernel object to back end and implement creation and info query. Bug: angleproject:6001 Change-Id: I6e3fdd2b35d7e73ed56144dc938bf21436d3559f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2922150 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
John Plate 51ab3dc3 2021-05-25T16:54:11 CL: Improve validation readablity Improve validation readablity by introducing a bit field class and by changing how the CL error code is returned. Bug: angleproject:6001 Change-Id: I51deb745454e5281de725481edef85eb30be28c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919690 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: John Plate <jplate@google.com>
Geoff Lang c12f594a 2021-05-31T10:48:20 GL: Chunk uploads of texture data >120kb on Mac. Mac drivers are hanging and crashing after large glTexSubImage uploads. Chunk those uploads to avoid this problematic path in the driver. Bug: chromium:1181068 Change-Id: I7dca0b8e49420f015ff7830283c14283a0515826 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2928098 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cody Northrop 1e832ad6 2021-06-01T13:47:53 Tests: Require cube_map_array for cookie_run_kingdom Tbr: jmadill@google.com Bug: angleproject:6018 Change-Id: Ie27b82b4716aaf5164c65e890cd2d6fad3f2b836 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2930817 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 6b837109 2021-05-31T22:23:08 Tests: Add Subway Princess Runner trace Test: angle_perftests --gtest_filter="*subway_princess_runner*" Tbr: jmadill@google.com,timvp@google.com Bug: b/189794097 Change-Id: I79ed00da91e0f304bf3899a0ab9ebfd2c1426739 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2929460 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c072daec 2021-05-26T14:26:28 Add FastVector constructor with begin/end iterators Useful to construct a FastVector out of a subrange of another container. Bug: angleproject:4889 Change-Id: I0e62b601c7d171167343d526d198fa21ba52f0f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920191 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop eeeeed39 2021-05-31T20:48:29 Tests: Add Cookie Run: Kingdom trace Test: angle_perftests --gtest_filter="*cookie_run_kingdom*" Tbr: jmadill@google.com,timvp@google.com Bug: b/189788024 Bug: angleproject:6017 Change-Id: I5cd9912d099d1749b5677cf43e25fe73ee38d17c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2927509 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop a44b16d3 2021-05-26T09:35:56 Capture/Replay: Force validation on when capturing Genshin Impact is using EGL_KHR_create_context_no_error to create a context that exposes GL_KHR_no_error. If it successfully creates the context, it sends down call sequences that check query results available immediately after genning query objects: glGenQueries(1, reinterpret_cast<GLuint *>(gReadBuffer)); UpdateQueryID(415, 0); glGetQueryObjectuiv(gQueryMap[415], GL_QUERY_RESULT_AVAILABLE, ...); This throws errors on every platform I have access to, with either native or ANGLE as the driver. The spec is ambiguous as to whether this should cause an error, but practically we can't allow this if we want error free playback of traces. To support this, we will force validation on in the context when FrameCapture is enabled. When the app submits invalid calls, they will be dropped by FrameCapture. Test: Genshin Impact MEC Bug: b/181794064 Change-Id: If882d27d74661cd95bc23687eff3056a0f64e3cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921068 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis fe93fcdd 2021-05-27T13:28:18 Workaround Mesa 20 Intel driver bug with GLX_OML_sync_control Disable the use of this extension on Mesa 20/intel, it's causing GPU hangs. Bug: chromium:1187475 Change-Id: Ic7029b1f72bd0b0f4a2c11a7fceb0a59f51be8aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920811 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Yuly Novikov 1429130b 2021-05-28T14:02:58 Gold Tests: Fix batch result reporting Previously artifacts were not reset for a new trace in a batch Bug: angleproject:5966 Change-Id: Ia6ed8c070eaaeca7e6cea887419666f630648df8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2925218 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov ce7d80bd 2021-05-27T18:16:07 Gold Tests: Fix batch uploading Uploading to Gold used to stop after the first failure in the batch Bug: angleproject:5966 Change-Id: Iff89c106b18a9aab5a43742a6085c5f9a3c9a188 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2923784 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Charlie Lao b6bd039c 2020-10-06T13:34:53 Vulkan: Fine-grained depth stencil layout transition barrier Gfxbench Manhattan uses depth attachment as texture in the same render pass, which creates a feedback loop. The layout we are using for this has kAllShadersPipelineStageFlags even though it only used by fragment shader. This creates an unnecessary vertex/fragment dependency that hurts performance on some mobile GPUs. This CL split DepthStencilReadOnly to DSAttachmentReadAndFragmentShaderRead, DSAttachmentReadAndAllShadersRead, and DepthStencilAttachmentReadOnly, so that if it is used by fragment shader, we only barrier against fragment stage. If not used by any shader, we don't block any shader stages. To make names consistent, this CL also renames DepthStencilAttachmentAndFragmentShaderRead to DSAttachmentWriteAndFragmentShaderRead, renames DepthStencilAttachmentAndAllShadersRead to DSAttachmentWriteAndAllShadersRead. Bug: b/169891513 Change-Id: Iede497e8af028861f9166a32d122f26dc7aa864a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2453599 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Charlie Lao 5e631c5f 2021-05-20T11:21:18 Vulkan: Disable shadowBuffers feature For PixelUnpack, if the feature is enabled, it always create a shadow CPU mapped memory. Then when mapBuffer is called, it let user write to the shadow memory. At unmapBuffer time, it memcpy the shadow buffer data to context's staging buffer and then issue a vkCmdCopyBuffer from context staging buffer to the PixelUnpack buffer. This involves too many data copies. The proper way to do it is simply make sure to create the buffer as CPU map-able and let user directly write to it. If we find cases that CPU waiting for GPU to finish is causing performance issues, there are two ways to improve/fix it: 1)Add event at end of each renderpass or FBO so that we know if GPU access is finished or not without have to wait for entire frame to finish rendering. 2) Create multiple buffers and ping-pong between them, at least there will be no VkCmdCopyBuffer call involved like shadow buffers do. But we will leave that to future time when we find such need. Bug: angleproject:5986 Change-Id: Ib8300e46e779d20533c1f7f81624de0ce003788b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909758 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexis Hetu 84c42d1b 2021-05-26T12:30:10 Mute MSAN false positive MSAN currently detects false positives on global/static thread_local variables which are created at library load time. This CL mutes the false positive in order to unblock running blink_web_tests with SwANGLE on MSAN bots. Bug: chromium:1211047 Change-Id: I7cd103d470177d783df7f73ca6ceeedc0774b163 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920486 Commit-Queue: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov de7f559e 2021-05-27T16:33:13 Suppress new KHR-GLES32 test on Pixel 2 Added in crrev.com/c/2921449 Bug: angleproject:6008, chromium:1214047 Change-Id: Icb42e438fc87271d1c5abbe2201d6c2bf597a4e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2923782 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Charlie Lao d151af7b 2021-05-20T10:52:46 Vulkan: Improve generateMipmapsWithBlit barrier usage ImageHelper::generateMipmapsWithBlit() implements glGenerateMipmap using vkCmdBlitImage. For each level it changes layout to VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL and issue a blit. In order to keep all mipmap levels' layout consistent, it issues a vkCmdPipelineBarrier call for the the very last mipmap level to change it to VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL as well. This creates an unnecessary barrier for the next operation, that now it sees a barrier against transfer stage. This CL changes all levels to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL so that the whole image will have consistent layout. After glGenerateMipmap call, the next reasonable usage is use it in fragment shader, so the barrier is not wasted. Bug: angleproject:5986 Change-Id: I3690ae8417d97bc504fcf036d016f289e6370526 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909757 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 2622c7b0 2021-05-26T20:11:13 Roll VK-GL-CTS from 8010f59c7034 to ea6189a7a67e (4 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/8010f59c7034..ea6189a7a67e 2021-05-26 mikko.tiusanen@siru.fi Remove empty subtest 2021-05-26 mikko.tiusanen@siru.fi Lower vector constructor test shader version 2021-05-26 mikko.tiusanen@siru.fi Test framebuffer completeness when layered rendering 2021-05-26 alexander.galazin@arm.com Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master 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 jmadill@google.com,angle-bots+autoroll-info@google.com on the revert to ensure that a human is aware of the problem. 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/master/autoroll/README.md Bug: angleproject:6008 Change-Id: I580ddda1ac7fa4614fcf00b834f51b9dc725392c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921449 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop a29a64a6 2021-05-26T09:34:52 Capture/Replay: Skip GLGetActiveUniformsiv Test: Genshin Impact MEC Bug: b/181794064 Change-Id: Ib0edfa8d1c063d43c34a65be0144bc5efc4cf19b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921067 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 5ee4a0cb 2021-05-25T14:15:14 Capture/Replay: Support GetUniformIndices Test: Genshin Impact MEC Bug: b/181794064 Change-Id: I69e2c78678b8e279478ae946131b7e1730070cb0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921066 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop fd262fdc 2021-05-26T18:10:29 Tests: Update capture_replay_test expectations Bug: angleproject:6006 Change-Id: I56d21a9d9df343fbf805c10307265cab929914c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2920087 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 163f6ac0 2021-05-26T10:57:18 Gold Tests: Add batching. This should speed up test runs on Android, which are currently much slower than the other platforms. Bug: angleproject:5966 Change-Id: I57890522b64d1d195ea0be56b4f68b6d54192d64 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919888 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Kenneth Russell 565bba3d 2021-05-26T17:58:18 Revert "GL: Skip redundant flushes." This reverts commit 7a38f3f50f3bb2f747ad3731d307f6af4c0552d2. Reason for revert: caused numerous test failures on FYI waterfall per http://crbug.com/1213507 . Original change's description: > GL: Skip redundant flushes. > > Skip flushes when there is no work submitted since the last > flush. > > Clone of geofflang's: > https://chromium-review.googlesource.com/2911879 > > Bug: chromium:1181068 > Change-Id: Idd8a1c61b814d746bf1e0225cfc4ca375a7bb224 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915675 > Commit-Queue: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> Bug: chromium:1181068 Bug: chromium:1213507 No-Try: True Change-Id: Icd1662e4ea541375b44bddaa839a5241cdad5302 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2919503 Commit-Queue: Kenneth Russell <kbr@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 17c45b65 2021-05-25T10:06:47 infra: Shard restricted_trace_gold_tests. Reduces shard time from 50+ min to <10 min per shard. Bug: angleproject:5966 Change-Id: Ia230d71a66ac9a273a10e0389cc04d8c5737bc4a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915566 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jonah Ryan-Davis 814dc299 2021-05-25T12:38:47 Add nullptr check for pfnGetPhysicalDeviceProperties This function may be called without checking the pointer. Speculative fix for a crash in GetSystemInfoVulkan. Bug: chromium:1211839 Change-Id: Ia7fa55fc328d02bdcd6d48e9b93f552aaea2b284 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2917353 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Geoff Lang f410e81a 2021-04-20T14:26:54 GL: Implement multisampled_render_to_texture Bug: angleproject:2894, angleproject:5988 Change-Id: I17b55f0655d32d9f41cb55a0467b93a00fba751b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2841084 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang f97b8193 2021-05-12T12:28:57 Make ANGLE's program hash key deterministic. ANGLE's program hash iterates over hash maps which do not guarantee a determinisitic iteration order. Copy these maps to std::map before iteration. It's unclear what must change to make these maps iterate differently, EGLBlobCacheTest.Functional does cover this path but doesn't trigger any issues. Bug: angleproject:5913 Change-Id: Ib5f2c0a0a4e05cbaeeec5d9c889718d53c5fcf1c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2892254 Reviewed-by: Sunny Sun <sunny.sun@arm.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
John Plate 1aa88398 2021-05-24T14:19:05 CL: program object creation for front end and pass-through Add program object to back end and implement creation and info query. Bug: angleproject:6001 Change-Id: If94db8ab8b491e1ac21c767347cabb6f4f3b3cba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912465 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: John Plate <jplate@google.com>
Charlie Lao a280c671 2021-05-24T19:05:44 Vulkan: Move framebuffer dirty bits handling after texture When texture changes, it notify the observer. Framebuffer object is one of the observer and is able to respond to the changes in texture object. In this specific case, when texture called TextureVk::releaseImage and requires framebuffer object to syncState and call TextureVk::initRenderTargets. The problem right now is that framebuffer object's dirty bits are processed before texture, which means if the texture is being used by currently bound framebuffer object, it will not trigger the FBO's dirty bit handling. This CL moves container object dirty bit (DIRTY_OBJECT_DRAW_FRAMEBUFFER and DIRTY_OBJECT_READ_FRAMEBUFFER) after texture/image object's dirty bits. Bug: chromium:1212206 Bug: chromium:1197431 Change-Id: I95723da1ce5b8936d66692242f2e25e7a73bafe6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915764 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao ecf2956d 2021-05-24T10:57:40 Vulkan: Convert web_gl.fuzz545ImmutableTexRenderFeedback to gl_test Bug: chromium:1212206 Change-Id: I4b87906a9e877da12d64e39bfe54b9b7cec409a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912928 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
John Plate e3dd7161 2021-05-24T12:47:38 CL: sampler object creation for front end and pass-through Add sampler object to back end and implement creation and info query. Bug: angleproject:6001 Change-Id: If5b7d09564d773d6aeda7612728e19bfec7f6155 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912806 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 7761ed1d 2021-05-11T22:55:15 Add test for Vulkan crash with texture MAX_LEVEL change Bug: chromium:1197431 Change-Id: I05fba78b32a7c5d5f1da0435084f96c510b15ed5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2889600 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Schade 2a0ca0fe 2021-05-25T10:53:52 Vulkan: Clean up GS deqp expectations Bug: angleproject:5579 Test: KHR-GLES32.core.geometry_shader.layered_rendering.layered_rendering Change-Id: I84a2487a80334b51e7200833ec05fe7d3b773c90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2917815 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
John Plate a6210a8f 2021-05-23T19:02:46 CL: image object creation for front end and pass-through Add image object to front end and implement creation and info query. Cache more Device info for Image validation. Bug: angleproject:5956 Change-Id: I38374f4c2c85287109c464ac90eb1bf49b07fa0a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912805 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 7a38f3f5 2021-05-21T15:07:44 GL: Skip redundant flushes. Skip flushes when there is no work submitted since the last flush. Clone of geofflang's: https://chromium-review.googlesource.com/2911879 Bug: chromium:1181068 Change-Id: Idd8a1c61b814d746bf1e0225cfc4ca375a7bb224 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2915675 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
John Plate efd8da4d 2021-05-21T15:39:11 CL: buffer object creation for front end and pass-through Add Buffer object to front end and Memory object to back end. Implement creation of buffer and sub-buffer objects. Make cl::Object destructor virtual to support destruction of Buffer. Cache more Device info for Buffer validation. Add missing and move existing version checks into validation. Bug: angleproject:5956 Change-Id: Iea7665be5f6bdd8469e81f5fe4935a9fb0e03436 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2912677 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: John Plate <jplate@google.com>
Shahbaz Youssefi c229ccfe 2021-05-18T15:51:12 Vulkan: SPIR-V Gen: Handle gl_PerVertex If not declared by the shader, default gl_PerVertex is now explicitly declared in AST prior to SPIR-V generation. The SPIR-V generation code then doesn't need to declare them magically. Bug: angleproject:4889 Change-Id: Icc593bc1ccc3162487bdbae7f66bc775d098778d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2905952 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 81db1a46 2021-05-20T13:45:26 Vulkan: TextureVk inherits a few attributes from ImageHelper Cache VkImageCreateFlags in ImageHelper. This allows texture target siblings to inherit a few VkImage create attributes thus avoiding image respecification in certain code paths. Bug: angleproject:2514 Bug: angleproject:5281 Test: PbufferTest.ClearAndBindTexImageSrgbSkipDecode*Vulkan Change-Id: Ic7397fabdce185264e06488355ca47f809338519 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2910473 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill fad9053f 2021-05-20T15:52:38 infra: Add isolated script tests to Pixel 4. This includes angle_perftests and angle_restricted_trace_gold_tests. Bug: angleproject:5941 Change-Id: I6f24d2c2752086ae6f7abba26880070c4a4f0472 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911034 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 0a086375 2021-05-20T13:13:49 Tests: Skip pokemon_go on Intel Windows Vulkan Timing out periodically. See the bug for examples. Bug: angleproject:5994 Change-Id: I717e6c66746a611bb7996c838fa0575b5210aae4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909759 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mohan Maiya e697e379 2021-03-10T23:59:45 Vulkan: Allow certain usecases to have non-zero stride When glVertexAttribPointer is called with a type parameter that doesn't match the vertex attribute binding's type in shader, the vulkan backend used to force the stride to 0. This is acceptable since this usecase is unspecified in spec. To allow for better app compatibility, introduce a new extension that requires normal glVertexAttribPointer functionality to be maintained if the mismatched vertex attribute type is a mismatched integer type sign. This change also modifies the VkFormat used when a mismatch in signedness occurs to use a VkFormat with the same component width as the type parameter. Bug: angleproject:5762 Test: VertexAttributeTestES3.DrawWithRelaxedVertexAttributeType* Test: VertexAttributeTestES3.DrawWithMismatchedComponentCount* Change-Id: I7e5281500afc3d77f0775821447cabfad3ff2d66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2765012 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Kyle Griffiths 1f1e0e6c 2021-05-13T12:35:43 Remove linear filtering requirement on depth textures Linear filtering depth is an odd operation that doesn't yield particularly useful information. In the primary instance where it'd be used, the GLES3.1 spec (8.17) specifically denies its use, and enforcing the capability can lead to issues with hardware designed without support in mind. We think the check isn't necessary as a result. Bug: angleproject:5964 Change-Id: I69f243f7cc078cd5383de2cc4bf1cfc3b6f2bc3b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894424 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya dd312cc6 2021-05-21T08:49:48 Reland "Vulkan: Add support for EXT_texture_border_clamp" This is a reland of 4b92e089c01e94730fe26c4c743d76d6c935088d Initializes mPadding to 0 in SamplerDesc::update Original change's description: > Vulkan: Add support for EXT_texture_border_clamp > Add support for GL_EXT_texture_border_clamp. This is implemented by > using VK_EXT_custom_border_color. > > Bug: angleproject:3577 > Test: dEQP-GLES31.functional.texture.border_clamp* > Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Bug: angleproject:3577 Change-Id: I8684242c4bce6e1a006dbe926defaa495fcc2282 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911571 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Gert Wollny a4ccd684 2021-05-17T10:28:38 Capture/Replay: Write some bytes when serializing blobs Seeing a few bytes of the buffers might help to get an understanding of what goes wrong when blob check sums don't match. Bug: None Change-Id: I482af2b3d885afca39057d0841923449ec65d611 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2900218 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 44fabb7b 2021-05-21T00:51:06 Revert "Vulkan: Add support for EXT_texture_border_clamp" This reverts commit 4b92e089c01e94730fe26c4c743d76d6c935088d. Reason for revert: breaks "Linux MSan Tests" bot https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20MSan%20Tests/28489/overview Original change's description: > Vulkan: Add support for EXT_texture_border_clamp > > Add support for GL_EXT_texture_border_clamp. This is implemented by > using VK_EXT_custom_border_color. > > Bug: angleproject:3577 > Test: dEQP-GLES31.functional.texture.border_clamp* > Change-Id: Ie9fa1eb5dd03b997b5ae182787641a53080a9e51 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830192 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Bug: angleproject:3577, angleproject:5996 Change-Id: I6b62f1a4a43fcfe2d0df2c73de24db83606ce430 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911533 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 2add8d9f 2021-05-19T18:47:40 Don't use VK_EXT_debug_utils with non-Android Vulkan < 1.1.91 Due to a bug in Vulkan Loader < 1.1.91 https://github.com/KhronosGroup/Vulkan-Loader/pull/95 Bug: chromium:1205999 Change-Id: Icdedc2e80abe3c5578e811759f66ddbb71abb2ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2907095 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 26973584 2021-05-20T12:22:46 D3D11: Fix respecifying 3D textures. The missing check for the "Depth" dimension could lead to a bug where we would not recreate a texture when the dimension changed. Bug: chromium:1210414 Change-Id: Id59097ad14ae77ff80d27081f61786dad17a77ea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2911032 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 89ac8a44 2021-05-19T10:48:40 Fix Loading ANGLE.apk in Android The recent CL to remove the Settings GUI from the Android-built APK went a little too far removing Java code and emptying the AndroidManifest.xml. This resulted in ANGLE being unable to be loaded from the APK, since ANGLE was not able to respond to the intent android.app.action.ANGLE_FOR_ANDROID which indicates it contains ANGLE libraries. The AndroidManifest.xml requires various flags like android:forceQueryable="true" so the APK can be accessed by the framework. The assets/ directory was removed, which contains 'a4a_rules.json' and is required by GraphicsEnvironment. This is added back. Bug: b/187342779 Change-Id: Ic7b758c92ed12750972c7e313729276a13f76032 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906632 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Jonah Ryan-Davis e2fc818a 2021-05-05T11:51:00 Reland Change to module directory when loading swiftshader ICD. This is a reland of commit 3b10dda6a479612a07673b5c87d3560e0941d41b. Extra changes: Be explicit about calling GetModuleHandleA Do not use the general GetModuleHandle, which may use wide strings Refactored ConcatenatePath and add tests GetModuleDirectory should return the full path, not relative. ANGLE wasn't able to locate the vulkan ICD file because it was searching down an invalid relative path. This can be fixed by ensuring the module directory is always the full path. on some platforms. Original change's description: > When loading vulkan, we can be running from any directory. We need > to change to the module directory to ensure the swiftshader ICD is > loaded properly. For example, in some Chrome releases, libGLESv2.dll > and libvk_swiftshader.dll are in a subdirectory relative to chrome.exe > > Bug: chromium:1198567 > Change-Id: I9e68927e512b239728fb2903d1a04702508a4948 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2873452 > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: chromium:1198567 Bug: angleproject:5949 Change-Id: I63fbe93f8492b7f23566f8193b1b8fe784a34f71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2904586 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Rupert Shuttleworth 85acc55a 2021-05-18T22:39:32 Remove .find_ignore files Remove .find_ignore files so that the Soong Finder searches the whole tree again (needed for Bazel support) Test: TH Bug: b/188491905 Change-Id: I6df2cecebf3f82120bb90353aeb08f6b40cf30be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906252 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill c71fbc16 2021-05-19T12:47:30 infra: Add dEQP tests to the Pixel 4. Also updates expectations. For simplicity we use SKIP everywhere and specify each skipped test individually instead of using wildcards. Bug: angleproject:5941 Change-Id: If2cb85b06ecd250222dbf1376d99392ad10b71aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896172 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny 6619c464 2021-05-10T13:00:48 FrameCapture: Write the frame cpp file even if frame is empty The index file will add a reference to this file, and the replay will also expect that the frame execution function and the context function exist, so write the file even if the frame is empty Bug: angleproject:5939 Change-Id: I265d061fdae51b86131d145116ad1c0f9ca8c93f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2882581 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 447b730c 2021-05-20T10:00:15 Add MultisampledRenderToTexture Pixel4 expectations Flakes noticed with GLES backend in CI, setting the following to FAIL: MultisampledRenderToTextureES3Test.BlitFramebufferTest/* MultisampledRenderToTextureES3Test.ClearThenMaskedClearFramebufferTest/* MultisampledRenderToTextureES3Test.RenderbufferBlitFramebufferTest/* Bug: angleproject:5995 Change-Id: I159c186d712ef3e8a1c44cdc8959f876fc2d6b8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2909755 Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mark Lobodzinski c37b1ef8 2021-05-13T14:31:59 Balance debuglabel begin/end pairs for skipped drawcalls Some drawcalls may be no-op'd due to shader issues or having zero instance or element counts. In these cases, the ANGLE markers used for AGI will become imbalanced as it is the drawcalls that trigger the 'begin' marker. This patch ensures that the dirty-bit draw event handler is called for no-op'd drawcalls to keep the AGI commandTree in balance. Bug: b/184888395 Change-Id: I1041d2f06fb313934365340c35e458bc5a66ba64 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2895330 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
John Plate 10a8182c 2021-05-19T21:00:05 CL: Fix querying default device if non exists Bug: angleproject:5992 Change-Id: Ie43f905fbb9cf41b0f6f88b2db27ebe9de9c37e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906993 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 54ba6f01 2021-05-13T20:33:46 Capture/Replay: Emit SetupReplay() late Only emit SetupReplay() after all captured frames have been run, so that InitializeReplay() is called with values of readBufferSize and the maxClientArraySize that are sufficiently large for all frames. Bug: angleproject:5965 Bug: angleproject:5895 Change-Id: Ic59597dc27f733fb210d7cc5a144a86e54cd2040 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894486 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 45ee87e2 2021-05-17T13:45:25 Capture/Replay: Don't try to serialize blob without data The construct std::vector v; &v[0] doesn't go well with a checked STL, because the element 0 doesn't exists in an empty vector, and obviously it doesn't know that whether the pointer gets de-referenced later. Bug: angleproject:5980 Change-Id: I690c99bd12d74112fe1081ea3134b6ffb11ad23b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2900226 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
John Plate 6622d2b4 2021-05-18T21:26:39 CL: command queues for front end and pass-through Bug: angleproject:5956 Change-Id: I6d9d4e4e7dfc5402408e3b002e66e4eae752967d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2903091 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: John Plate <jplate@google.com>
Cody Northrop 2b8ceb28 2021-05-19T14:08:03 Update skip list for Texture2DTest.TextureSize It is also failing on Linux+Vulkan+TSAN. Bug: angleproject:5982 Change-Id: I742a65ef6076e4f00cc8030cfea46619effaa4d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2906815 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Brandon Schade dee8dad4 2021-04-20T23:26:55 Vulkan: Fix geometry shader qualifier validation Added missing validation to handle in/out qualifier for geometry shaders Test: KHR-GLES32.core.geometry_shader.nonarray_input.* Bug: angleproject:5579 Change-Id: I9ee0853526ce296df1f56fb7783f9847b31e49bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2901256 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 9bc837f6 2021-04-07T15:24:12 Vulkan: Generate SPIR-V directly from the translator; Part 1 This is the first change in a series to generate SPIR-V directly from the translator's AST, instead of the generating text GLSL and feeding it to glslang. This change implements the majority of the work needed to map AST types to SPIR-V types, and declare types and interface variables in SPIR-V. Additionally, it lays the infrastructure to conditionally enabling this path in end2end tests. No tests are currently enabled as the change doesn't actually generate code for function bodies yet. Bug: angleproject:4889 Change-Id: Iacb28b6907fd48c50e4cc5a0e7ad72f6eed241d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2889603 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 88156d26 2021-05-18T23:55:32 Revert "[Vulkan] Add DisplayVkNull" This reverts commit cbbaf76b758fb6a37175795b1f424549d535fbdc. Reason for revert: Suspecting this breaks the fuchsia_x64 bot WebGL tests. Ex: https://chromium-review.googlesource.com/c/chromium/src/+/2904812 Original change's description: > [Vulkan] Add DisplayVkNull > > Currently all DisplayVk implementations depend on VK_KHR_swapchain and > VK_KHR_surface extensions. When running Chromium on Fuchsia these > extensions are never used (content is shown on the screen using > ImagePipe API without dependency on swapchain). ANGLE still depended > on these extensions for DisplayVkFuchsia. > This CL adds DisplayVkNull, which allows to run ANGLE without dependency > on swapchain. It's usable only offscreen and cannot present content on > a surface. > > Bug: chromium:1203879 > Change-Id: I4d1307060967ffa68877c4300ea4d5590eeb2152 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861313 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: chromium:1203879 Change-Id: I6701ffff48fcb925f387e63b356d2d5cf360ea7e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2904183 Reviewed-by: Geoff Lang <geofflang@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi eaa6961d 2021-05-17T18:56:53 Revert "Vulkan: Disable BufferVk suballocation" This reverts commit 76181384075c6eb0a5788bf1b732a1e05f6d73bc. Reason for revert: Bug exposed by this is fixed in https://chromium-review.googlesource.com/c/angle/angle/+/2896168 Original change's description: > Vulkan: Disable BufferVk suballocation > > There are still unresolved bugs. > > Bug: angleproject:5719 > Bug: chromium:1209197 > Change-Id: I6a971c421d0ae266404d1ecbf8741a9747a4e809 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2897545 > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Tim Van Patten <timvp@google.com> Bug: angleproject:5719 Bug: chromium:1209197 Change-Id: I5c24b5f6476eab98ed5a7b90b3d1796ffc7ca106 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2896169 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 421c665c 2021-05-13T21:17:16 Capture: Make writeCppReplayIndexFiles a method of FrameCapture This is useful to not pass a large amount of parameters around. Bug: angleproject:5965 Change-Id: I3890a0ca852729bbf74725fb9e5f4062e20e9158 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2894485 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 328a5c89 2021-05-18T12:13:23 infra: Add tests to Android Pixel 4 bot. Only angle_end2end_tests and angle_unittests to start. Also adds test expectations for the Pixel 4 end2end_tests. Patch Series: 1. http://crrev.com/c/2885381 2. http://crrev.com/c/2885346 3. http://crrev.com/c/2885383 4. This CL Bug: angleproject:5941 Bug: angleproject:5946 Bug: angleproject:5947 Bug: angleproject:5981 Change-Id: Iaaea0b427513804575d0ad7773a81379ea932eb5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2885384 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill cc9d0f75 2021-05-18T10:46:07 Improve test expectations overlap check. Uses the conditions for the expectation to determine if there's a bug. Necessary for the new loading mechanism which defers filtering. Bug: angleproject:5951 Change-Id: Ic0c65438f7f155caff72b3ceeb4e65f8184c8efc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2902666 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis ffb71dc2 2021-05-18T15:10:58 Revert "Reland Change to module directory when loading swiftshader ICD." This reverts commit c8c414b084fa3b6550b10dff48cf429719e04579. Reason for revert: Breaking fuchsia_x64 and ANGLE autoroller Original change's description: > Reland Change to module directory when loading swiftshader ICD. > > This is a reland of commit 3b10dda6a479612a07673b5c87d3560e0941d41b. > > Extra changes: > Be explicit about calling GetModuleHandleA > Do not use the general GetModuleHandle, which may use wide strings > > GetModuleDirectory should return the full path, not relative. > ANGLE wasn't able to locate the vulkan ICD file because it was > searching down an invalid relative path. This can be fixed by > ensuring the module directory is always the full path. > on some platforms. > > Original change's description: > > When loading vulkan, we can be running from any directory. We need > > to change to the module directory to ensure the swiftshader ICD is > > loaded properly. For example, in some Chrome releases, libGLESv2.dll > > and libvk_swiftshader.dll are in a subdirectory relative to chrome.exe > > > > Bug: chromium:1198567 > > Change-Id: I9e68927e512b239728fb2903d1a04702508a4948 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2873452 > > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Bug: chromium:1198567 > Bug: angleproject:5949 > Change-Id: Ib34067002c788f00b5ae2fa11d1e465f57bd7be8 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2893503 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Bug: chromium:1198567 Bug: angleproject:5949 Change-Id: Ic0be8949cc27b231be4f982ea6e22beed590d24d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2903786 Reviewed-by: Jamie Madill <jmadill@chromium.org>