src/tests


Log

Author Commit Date CI Message
Geoff Lang 07467b4a 2020-03-20T10:40:56 Remove GL_CHROMIUM_path_rendering Bug: chromium:1063193 Bug: angleproject:4270 Change-Id: I35b24b7d8d892181955e49dd2495655bc57cb0df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2112275 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Alexis Hetu 91f44a9a 2020-03-20T12:08:24 ASTC: LDR support doesn't imply HDR support There are SwiftShader related failures related to enabling the textureCompressionASTCHDRKHR feature without properly checking if the VK_EXT_texture_compression_astc_hdr extension is available, so HDR support shouldn't be enabled only based on the LDR support being enabled. Bug: angleproject:4447 Change-Id: Icde34892c9e2efff4b71e8c4e960c2fcff786700 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2080594 Commit-Queue: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4fb3c28f 2020-03-19T19:10:45 Vulkan: Fix Framebuffer cache depth/stencil issue. The DrawBuffers resetting logic didn't update the depth/stencil serial. Fix this and add a regression test that would crash in this situation. Note that the Manhattan benchmark could trigger this under some cases. Bug: angleproject:4322 Bug: angleproject:4490 Change-Id: Ie4b24efeb5991ecaa85bf8f964f77476bd6f167d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2111333 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop a4337121 2020-03-19T15:31:00 Perf: Limit TracePerfTest to single compressed TRex Update the TRex trace to: * Incorporate recent fixes for compressed textures * Incorporate support for compressing the trace * Simplify the tag on the trace (drop the end frame) Update TracePerfTest to: * Temporarily support only a single trace (TRex200). Test: angle_perftests --gtest_filter="*Trace*" Bug: angleproject:4484 Bug: angleproject:4488 Bug: angleproject:4496 Change-Id: Ice0c4ee9de3ad9ae4596305a93c51c6eac842123 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2112629 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 62b72552 2020-03-20T07:51:26 Add support for EXT_EGL_image_external_wrap_modes Allows for more wrap modes to TEXTURE_EXTERNAL_OES textures Test: angle_end2end_tests --gtest_filter=ExternalWrapTest.* Bug: angleproject:4443 Change-Id: I37bde091b166d7471c13c14fd6b0174136b52ecf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103433 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov 0e069b42 2020-03-19T21:40:51 Skip SwANGLE GLES31 tests which crash with 32-bit Subzero only on Windows Linux 32-bit crashes were fixed. Bug: angleproject:4482 Change-Id: I3efd7c760dfec1f8b909eee2ed84f5f9ebc33c3a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2111970 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov ca45852d 2020-03-19T22:04:47 Skip flaky TransformFeedbackTest.MultiContext on Win Intel Vulkan Bug: angleproject:4497 Change-Id: I92e7ad9f0c34fe0b5f67318271ececc218c20757 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2111781 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jian Li 8aa20069 2020-03-18T17:55:06 Skip some tests on Mali because of a known issue Type decorations may be ignored when using multiple OpAccessChains. Bug: angleproject:4492 Change-Id: I2e51af600394a69cb5f7e02228ca7e4fd1c826e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2105529 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7e453a25 2020-03-15T22:11:03 Capture/Replay: Use zlib to compress data files. Gives about a 2-3x reduced data file size. Should help reduce the time we spent transferring trace files on Android. This feature is implemented as a parameter to the capture/replay tool. This keeps backwards compatiblity if we ever need to integrate a cpp replay into an environment that doesn't have access to zlib for decompression. We'll need to update the traces to take advantage of the compression. Bug: angleproject:4484 Change-Id: Id7994efe3c0d529b85fa7e7f1b00444e630dd2cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104555 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Amy Liu f98084ed 2020-03-12T10:06:26 Fix ShaderStorageBufferReadWriteOffset end2end test Test: ShaderStorageBufferTest31.ShaderStorageBufferReadWriteOffset. Align kBufferOffset to bufferAlignOffset correctly. Bug: angleproject:4471 Change-Id: I71084839a845138b32d58d8bd2cf6fed2633a9be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2100047 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jamie Madill 7c334c56 2020-03-15T17:37:15 Re-enable optimization for angle_perftests. This CL restricts the workaround to the trace perf tests. These trace tests are too big to optimize. Also includes a fix for a 32-bit Windows warnings. We'll need to update the build file to remove a suppression once the traces are updated. Bug: angleproject:3630 Change-Id: Id13a0050fc2a645aa572b8c9079908023b232f28 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103084 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 42c453fe 2020-03-15T18:23:15 Move perf test common files to a source set. Similarly to a prior patch this organizes the common perf test sources into a single target. This will allow us to more easily support setting compiler flags on particular perf test sources. This also fixes some build errors that popped up when new warnings were enabled. Bug: angleproject:3630 Change-Id: I866885199f93a5055e8d160e39f72d1f8209bc75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103086 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 5df2c9ea 2020-03-15T17:28:43 Refactor ANGLE common test utils. This reduces code duplication by including a common set of sources in a single place. New test sets will be a bit easier to add. It also encapsulates the dependencies a bit better when we pull the test utils out of the test targets. Unblocks a follow-up CL that moves the trace perf test sources into their own file so we can re-enable optimizations in the main perf test target. New warnings popped up in a few of the files because of the new source set enabling more warnings. This CL also fixes all of those. Bug: angleproject:3630 Change-Id: Ic30cb30fb4288c4dbbbd29f9bdf04be51e8a6b30 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103083 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Xiaoxuan Liu f1eb10ef 2020-03-10T16:40:53 GLES: Skip tests if vertex SSBO were not supported Skip tests if GPU doesn't support vertex shader storage buffer object. Bug: angleproject:4466 Change-Id: Icc7b6e686d7b4d5ecd2e05f6f09551f839f5302d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2096740 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill a8631f68 2020-03-15T20:38:20 Fix running trace tests in non-standard directories. The change to make the trace tests load the data files using a relative path only worked when running the tests from the "standard" out path. By setting the CWD to the executable dir in test setup we are able to run the tests from any local dir when testing. Also cleans up some repeated code in the test init switch statement. Bug: angleproject:3630 Change-Id: I8e9e5e6e1e9cd31c5b3c7b2f52420d0ba75cf76b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104548 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov cb9a86a9 2020-03-15T14:24:32 Skip SwANGLE GLES31 tests which crash with 32-bit Subzero. Started with https://swiftshader-review.googlesource.com/c/SwiftShader/+/42108 Bug: angleproject:4482 Change-Id: I48effe26aa7ce1b574f9df8ad9c3f560cb599cf3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2104406 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill a4a42e6d 2020-03-15T18:25:21 Format perf_test.cc. This was missed when our git cl format protection was temporarily broken. A subsequent change caused the file to get fully formatted so this CL pulls that diff into a split change. Bug: angleproject:3630 Change-Id: I14ed53708783b38039e8fa64cb38837e25911893 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103085 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 869e901a 2020-03-14T20:27:09 Temporarily disable optimizations in angle_perftests. The optimization for the large trace perf tests was so costly that in some configs it would fail to build at all. This could cause build failures in the ANGLE CQ. Disable optimization to work around this until we can isolate the compiler flags to just the trace perf tests. Note: this only applies to the test harness. ANGLE itself is still optimized in release builds by default. Trace trimming would also help alleviate this problem. We could also consider removing a few traces temporarily. Bug: angleproject:3630 Change-Id: I2bd8fb76f330692aa715249ca8656965b5a29d8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103674 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill db3f042b 2020-03-14T17:55:39 Trace Tests: Rebase path to relative dir. We were encoding an absolute path into our binaries. This works locally and breaks horribly when run on the bots. Fix this by rebasing the path to the root_out_dir. Bug: angleproject:3630 Change-Id: I4044d1228ee951f2192e83167deb92a0ffe92a52 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103672 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 57fa7c6c 2020-03-13T22:33:16 Revert "Skip crashing dEQP-GLES3.functional.samplers.*_tex_3d.* on SwANGLE" This reverts commit 9e9493f29dbf3afcd962c56f66cb752efe3c7ee8. Reason for revert: fix in https://swiftshader-review.googlesource.com/c/SwiftShader/+/42208 Original change's description: > Skip crashing dEQP-GLES3.functional.samplers.*_tex_3d.* on SwANGLE > > Started after > https://chromium-review.googlesource.com/c/angle/angle/+/2076740 > > Bug: angleproject:3983 > Change-Id: I4073baa36aebd4bbd210bb0a0f46959b9ef66450 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2086695 > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> TBR=ynovikov@chromium.org,cnorthrop@google.com,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:3983, b:150155499 Change-Id: If5cacbeba43ce331382c0aaf814684ee1fcdaab0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2103435 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev e6519445 2020-03-12T19:02:03 Implement ScanForward64 on 32-bit platforms This unlocks opt-in usage of BitSet64 on 32-bit platforms. It is slightly faster than IterableBitSet when the amount of bits is greater than 32. Bug: angleproject:4473 Change-Id: I230784acc871e13b1f94c87503f6bb869dcd3a68 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2100969 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1393bf9e 2020-02-28T22:03:27 Vulkan: Timestamp internal RenderPasses in perf tests. This change book-ends RenderPasses in the Vulkan back-end with timestamp queries. This allows us to write out a trace of GPU/CPU that we can inspect in Chrome. To enable the GPU trace you can define ANGLE_ENABLE_VULKAN_GPU_TRACE_EVENTS in ContextVk.cpp and run the angle_perftests suite with --enable-trace. Note that we ran into some issues with the implementation not returning monotonic timestamps. This may be a driver bug but bears more investigation. Bug: angleproject:4433 Change-Id: I0e6a364367f15183068e55686549cb418aa94c2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2081380 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter b1b6a171 2020-03-10T14:20:36 Vulkan: Disable robustness support Swiftshader does not currently have the ability to behave in a way for ANGLE to support KHR_robustness. Disable for now until that functionality is available. Bug: angleproject:3058 Bug: swiftshader:145 Change-Id: I1c1b8147f6b9cf6f8d0da633dfe0f61ebfab5175 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2097053 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Cody Northrop 6963f58c 2020-03-05T15:45:35 Capture/Replay: Update TRex captures Test: angle_perftests.exe --gtest_filter="*Trace*" Bug: angleproject:4091 Change-Id: I1ec0a58f156eee0c36fdb38ec44eb486f974b731 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2090664 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott 33bdab77 2020-03-12T11:42:13 Vulkan: Handle VK image being both a GL texture and GL image Address a shader that uses the same texture as both a GL texture (e.g. using a sampler) AND as a GL image (e.g. using imageLoad or imageStore). The barrier and descriptor set created by ContextVk::handleDirtyTexturesImpl() are wrong (read-only). This is fixed by having ContextVk::handleDirtyTexturesImpl() look up if the image is also being used as an image texture, and if so, use the layout that should be used in that case. Bug: angleproject:4413 Change-Id: I75684e1cfc7ed74296802ab6e31468d81625d4a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2099311 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 391f38c9 2020-03-05T12:18:34 Capture/Replay: Add Manhattan to TracePerfTest This CL also adds the ability for a perf test to elect to ignore GL errors during replay. Otherwise, errors will cause the test to fail. We have known failures with Manhattan that don't affect replay. Test: angle_perftests.exe --gtest_filter="*Trace*" Bug: angleproject:4091 Change-Id: I36268a9f80754f338e52208273e889d2404b7eed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2090663 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Amy Liu 5bb36cc0 2020-02-21T18:25:54 Passing covgl/covgl Fix the following gles1-API implementation codes and some validation functions: glClearColorx glClearDepthx glDepthRangex glGetFixedv glGetTexParameterxv glLineWidthx glPolygonOffsetx glSampleCoveragex glTexParameterx glTexParameterxv ValidateMaterialCommon ValidateFogx ValidateFogxv ValidatePointSizex ValidateRotatex ValidateTexEnvx ValidateTexEnvxv Bug: angleproject:4281 Change-Id: Ia1d9e53c3ffde2bc77b7ca7eaa0d790e8ca43f10 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2075341 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop a2f9ad39 2020-03-09T14:28:39 Vulkan: Remove unused atomic counter builtins Atomic counters are not supported by Vulkan. Most are already converted by the RewriteAtomicCounters traversal, but that is only invoked when atomic counters are active. This CL introduces another pass that removes any atomic counter builtin that was not handled by the previous pass. It also will assert if it sees any atomic counters active, thus ensuring it is only used when needed. Test: KHR-GLES31.core.compute_shader.shared-struct Test: angle_end2end_tests.exe --gtest_filter="*AtomicCounter*" Bug: angleproject:4189 Bug: b:150310216 Change-Id: I61d10e954886dc94fede8b344f5a0ede3b689adb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2095688 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 2e5bd9b1 2020-03-11T17:46:06 Update SimpleStateChangeTest.DrawRepeatUnalignedVboChange suppression Also flaky on Linux (already suppressed on Windows). Bug: angleproject:4470 Change-Id: I032241a4201dc7883d6107c643cf88c92fb01ba3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2099402 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
jchen10 1b12f6e5 2020-03-10T14:26:49 Remove MultisampleCompatibilityTest suppression The failed DrawCoverageAndResolve can pass on 26.20.100.7323 now. Bug: angleproject:3855 Change-Id: Ia6eb9fef2a57f0bdf52cb2e45c138457f5de88aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2096230 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Brandon Schade a8c947c7 2020-02-06T08:53:16 Enabled GL_KHR_no_error Enabled GL_KHR_no_error added end2end tests for it Note that GL_KHR_no_error can only be enabled by setting the EGL attribute currently. Context flags are not currently supported. Bug: angleproject:1280 Test: angle_end2end_tests --gtest_filter=ContextNoErrorTest.* Change-Id: Ib5c73b8e284e3e4e5f800750ad6fcbef77be4285 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068899 Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brandon Schade 0c9b6abd 2020-02-06T08:53:16 Skip invalid end2end test for ES2 Previously, the incomplete framebuffer depth stencil attachment test would run on ES2 if GL_OES_packed_depth_stencil were present. This is insufficient since it uses the GL_DEPTH_STENCIL_ATTACHMENT enum, which is not introduced in any extension prior to ES3. The test has been disabled on ES2, regardless of extensions. Bug: angleproject:4454 Test: angle_end2end_tests --gtest_filter=StateChangeTest.FramebufferIncompleteDepthStencilAttachment/* Change-Id: Ic5a6a521e35b49c5d723b33f588fa608264d6390 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2090783 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott 3797fc85 2020-03-05T11:44:28 Generate new compiler errors for array-of-arrays The GLES GLSL 3.1 spec states that it is an error to use array-of-arrays in the following cases: - Vertex shader outputs - Fragment shader inputs - Fragment shader outputs ANGLE currently generates errors in the case of vertex shader inputs. It needs to add the above cases. Reproduce by running "angle_deqp_khr_gles31_tests" with: --gtest_filter=dEQP.KHR_GLES31/core_arrays_of_arrays_InteractionInterfaceArrays2* --use-angle=swiftshader Bug: angleproject:4148 Change-Id: I1147fc7d4755e5b6c07d2ab5d14566d919dec530 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2087647 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Jamie Madill 9acaf662 2020-02-28T14:58:17 Add timer query support to TracePerfTests. This can allow us to get some profiling measurements on ANGLE vs a native driver. We correlate host times with GL times using the blocking timestamp query. We also time RenderPasses/FBO switches using the trace instrumentation we added in an earlier patch combined with timer queries. Not currently instrumented for the current tests. We'll need to re-run capture to get the callbacks working correctly. Bug: angleproject:4433 Change-Id: I8f61774a3a090ac9460a378d34715a72954d1331 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2080597 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang 55228e53 2020-03-04T18:25:47 Add Chrome texture formats test for VulkanExternalImageTest This make sure the VkFormat/internalformat combinations that Chrome uses succeed import, which in particular requires the object size to match. Allowing VK_FORMAT_R8G8B8_UNORM VkFormat for GL_RGB8 will make this test fail when run on a native vulkan that supports that format. Bug: chromium:1058521 Change-Id: I91483568ba8552f40314f10215bfea59e5ca2b94 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2088652 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott 6125419c 2020-03-04T10:31:26 Vulkan: Suppress some flaky tests for Intel Linux driver Bug: angleproject:4453 Change-Id: I55475f85298a593597daa300effa828a6b0ed342 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2087896 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev 605ab763 2020-02-24T19:43:32 D3D11: Implement OES_draw_buffers_indexed Existing CONSTANT_COLOR/CONSTANT_ALPHA limitation was generalized to independent blend states with draw call invalidation and a new end2end test. dEQP tests that are incompatible with this limitation result in INVALID_OPERATION and are marked as FAIL. D3D11 renderer always normalizes and deduplicates requested blend states based on their enabled features and bound framebuffer. Bug: angleproject:4394 Change-Id: I284796e18be71de1b5bfb087d36f6a45be4c3f70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2070575 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Ian Elliott f143ab1f 2020-03-03T17:15:38 Vulkan: Disable forceOldRewriteStructSamplers for SwS-Android Disable the forceOldRewriteStructSamplers feature for SwiftShader on Android. Another change fixed the issue that prevented SwiftShader on Android from supporting sampler arrays as parameters. The Qualcomm driver still cannot support sampler arrays as parameters, and so it still needs forceOldRewriteStructSamplers. Bug: angleproject:4071 Bug: angleproject:2703 Change-Id: I77fbfacdad6cd9cc918c79fa0918f15de0558ce0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2086282 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill e45fe217 2020-02-29T23:28:33 Fix up EGLSurfaceTest. * removes the SwapInterval test. This test was not really based on spec language. SwapInterval is highly os-dependent so likely a robust test would include some OS-specific logic instead of timing. * give the pbuffer surface non-zero dimensions. this fixes an uncaught error on Windows and may give better results. * lifts a couple Android suppression possibly related to the pbuffer bug. a couple tests still fail. Bug: angleproject:3123 Bug: angleproject:3162 Change-Id: I68e4e943b94d17777704bbe3b8ae7e646fc9c54d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2082131 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Xiaoxuan Liu 27a81308 2020-02-29T12:53:45 Vulkan: Re-enable RobustResourceInitTest.Texture test Commit "Vulkan: Add robust init for NULL texture image." for angleproject:4255 also fixed angleproject:3416, re-enable the disabled test in 3416. Bug: angleproject:3416 Change-Id: I36c09d90eafe9dea0b477c49487284d4a305d992 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2086931 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ancheng Qiao 028a7a72 2020-03-03T18:19:33 Skip if GL_EXT_texture_compression_dxt1 isn't supported If GL_EXT_texture_compression_dxt1 is not support, will be failed at glCompressedTexImage2D in CopyCompressedTextureTest.Immutable Bug: angleproject:1424 Change-Id: I287c6a40c1c09fa379088e5ad4bec06f0dfc2f59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2086533 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 9e9493f2 2020-03-03T21:03:01 Skip crashing dEQP-GLES3.functional.samplers.*_tex_3d.* on SwANGLE Started after https://chromium-review.googlesource.com/c/angle/angle/+/2076740 Bug: angleproject:3983 Change-Id: I4073baa36aebd4bbd210bb0a0f46959b9ef66450 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2086695 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Ancheng Qiao 90019cea 2020-02-26T18:04:25 Vulkan: Add depth to mipmap generation In generateMipmaps, remove hard coded depth of 1, shift depth like every other dimension. Remove MipmapsForTexture3D test pixel value check, in es spec3.2 8.14.4 "No particular filter algorithm is required, though a box filter is recommended." It's implementation-dependent. In current angle implementation, will choose VK_FILTER_LINEAR/VK_FILTER_NEAREST according to vkdeice support. Bug: angleproject:3983 Test: MipmapTestES3.MipmapsForTexture3D/ES3_Vulkan Test: dEQP-GLES3.functional.samplers.single_tex_3d.diff_max_lod Test: dEQP-GLES3.functional.samplers.single_tex_3d.diff_min_lod Test: dEQP-GLES3.functional.samplers.multi_tex_3d.diff_max_lod Test: dEQP-GLES3.functional.samplers.multi_tex_3d.diff_min_lod Change-Id: I5e73f8c743053aeb521b5e0b3e372bbe77e57ad2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2076740 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4fb29948 2020-02-12T13:48:43 Split up EGLContextCompatibilityTest. Instead of attempting to run numConfigs^2 test permutations in a single test we now split up each config into its own test. Each permutation also gets a unique name based on the configs it is testing. Because there were so many tests on some back-ends (e.g. D3D11) this CL adds a way to hard limit the number of test permutations by discarding random tests to reach a specified maximum per back-end. Uses the GoogleTest "RegisterTests" API instead of using the GTEST macros. See online GTest docs for more info. This will allow more easily supporting test timeouts when running batches of tests multi-process. As a side effect we no longer need to restrict this test to Release builds or ignore some renderers. Bug: angleproject:4449 Change-Id: Ia7991e2a3906175413b77a876432061da527d03b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2050812 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Ran Wang 35785308 2020-02-24T17:37:55 Vulkan: reserve extra varyings when basicGLLineRasterization or supportsTransformFeedbackExtension is enabled. updated with MaxVaryingWithFeedbackAndGLline adding test to validate pixel value (disabled for macos) Bug: angleproject:4273 Change-Id: Ie3d3516fd3806c0d622fb402ba8223d302206f73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2071237 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill fd75545f 2020-03-01T20:59:48 Test Runner: Add stub register function to GLES 1 CTS. These tests use the same main function as end2end_tests. Add the register function stub so the compilation works correctly in standalone and component builds. Bug: angleproject:4449 Change-Id: Id240a834ae0e358d0e2520b12842f3f337c0aa31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2081514 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill da2e65c0 2020-03-01T13:01:24 Test Runner: Add stub register function to white box tests. These tests use the same main function as end2end_tests. Add the register function stub so the compilation works correctly in standalone and component builds. Bug: angleproject:4449 Change-Id: Ib1558a596b9a558b16a7c5b7bfccc1e495a67e39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2082135 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 390be9bb 2020-03-01T08:47:37 Test Runner: Use system path for gtest-internal. This ensures we use the correct internal path in Chromium builds as well. Bug: angleproject:3162 Change-Id: I036dcbd8802f67162e5f5eccb6158910f0a5efcc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2082134 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 49a68f18 2020-03-01T08:12:53 Add RegisterContextCompatibilityTests stub. We'll call this function from the Chromium angle_end2end_tests main. First this CL needs to roll into Chrome. Then we can make a second CL in ANGLE to change the way the EGLContextCompatibilityTests are set up. This is to break up the slow tests into smaller pieces. See the issue for more details. Bug: angleproject:4449 Change-Id: Icc10679c61fd2f7a5e396f7a310ffcfd0b45893b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2082133 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Xiaoxuan Liu b07816d6 2020-01-02T15:13:37 Vulkan: Add robust init for NULL texture image. In gl::ReadPixels(), ValidateReadPixels() will try to flush staged updates before readPixels. In the case where a texture was initialized with null RGBA data, no Framebuffer dirty bits are set, and thus the staged clear would never be flushed from the staged updates. 1. Add robust init in TextureVk::initImage to ensure image is initialized. Test: ./angle_end2end_tests --gtest_filter=\ RobustResourceInitTest*_Vulkan_AllocateNonZeroMemory 2. Update stageSubresourceRobustClear() to kEmulatedInitColorValue in the case where robust resource was initialized without full RGBA format to update init value of robust resource. Test: texture-attachment-formats.html in webgl_conformance_vulkan_passthrough_tests. 3. Revert "Suppress Vulkan RobustResourceInit tests." Revert commit a8e6a463121b9920564fb6efd7f2c857d7023fe3. Reason for revert: re-enable related robust tests. Bug: angleproject:4255 Change-Id: I79f20e0c02c2f1b1cd68ab590f0f765229f9e780 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1985503 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Schade 6c56c579 2020-01-21T11:08:36 Add Android boot animation and rounding error test This introduces an end2end test that makes the same GLES1 calls as Android's default boot animation. The test uses images of much smaller sizes, but we do the same thing with the images as the original code (it uses one image as a mask and moves the other along behind it). The original default boot animation code can be found here: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/cmds/bootanimation/BootAnimation.cpp#422 This change also implements glTexParameterx since the default boot animation requires it. This function is part of OES_FIXED_POINT. This also includes a test to check for int to floating point cast errors when using GL_TEXTURE_CROP_RECT_OES. Tests: angle_end2end_tests --gtest_filter=*DefaultBootAnimation* angle_end2end_tests --gtest_filter=*TextureParameterTest.IntConversionsAndIntBounds* Bug: angleproject:3644 Change-Id: Ib7e99c9dc1c001c71543d03ea4dd76082192f6a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2053506 Commit-Queue: Brandon Schade <b.schade@samsung.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Yuly Novikov fb551728 2020-02-28T11:10:29 Suppress SwANGLE dEQP-GLES3.functional.texture.compressed.astc.* failures Started after SwiftShader enabled ASTC in https://swiftshader-review.googlesource.com/c/SwiftShader/+/41568 Bug: angleproject:4447 Change-Id: I251ff26d4972f17f1f76f8ad1df57dc9c539782c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2078755 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Tobin Ehlis a60e4973 2020-02-27T20:11:20 Revert "Vulkan:Include precision qualifier in GLSL" This reverts commit 93e72f5f0eb80b89334ea8fe577b32901a00b5fb. Reason for revert: This is having a negative impact on gfxbench Manhattan 3.1 tests (20-30%) with only a minor improvement (~4%) in TRex offscreen. Pulling out for now and need to re-evaluate best solution here. Original change's description: > Vulkan:Include precision qualifier in GLSL > > With this initial implementation, it's possible to get precision > qualifier mis-matches in the generated GLSL 4.50. According to the > spec this is allowed. From GLSLangSpec 4.50 section 4.7 "Precision and > Precision Qualifiers": > > For the purposes of determining if an output from one shader stage > matches an input of the next stage, the precision qualifier need not > match. > > However, when converted to SPIR-V and run through the shader validation > any mismatches will cause shader validation errors. Initially just > ignoring those errors with this commit. > > Bug: angleproject:3078 > Change-Id: Ia2b04f90f0a7b6b1302c1b1b3e32bcfd8db9ed49 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057749 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Tobin Ehlis <tobine@google.com> > Reviewed-by: Tim Van Patten <timvp@google.com> > Commit-Queue: Tobin Ehlis <tobine@google.com> TBR=tobine@google.com,timvp@google.com,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:3078 Change-Id: I84984e2a963bde573f0f1de585001ceb83623c89 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2079334 Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill da6d12d0 2020-02-27T14:20:32 Fix out-of-bounds read in test. The test wasn't reserving a large enough buffer when initializing the vertex data. Fix the test buffer limits. Bug: angleproject:4430 Change-Id: I4b9a98e1af1cc8088afb871816061d7ee4dd6a2c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2079153 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Geoff Lang 4d2040a6 2020-02-27T09:59:11 Make GLSLTest_ES31.MixOfAllResources more lenient. Lower precision in Vulkan caused off-by-one issues with this test. BUG=angleproject:4438 Change-Id: I17111a06133ef403be1f0c99321f1dbf8ab6083c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2078791 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Ian Elliott cb7f5f4a 2020-02-26T16:59:01 Vulkan: Updated expectations after SwS fixed 4259 Bug: angleproject:4259 Change-Id: I518db27a1fb50d35f2c784f655d3e7ee40f4bdf2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2076415 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tobin Ehlis 93e72f5f 2020-02-25T12:02:31 Vulkan:Include precision qualifier in GLSL With this initial implementation, it's possible to get precision qualifier mis-matches in the generated GLSL 4.50. According to the spec this is allowed. From GLSLangSpec 4.50 section 4.7 "Precision and Precision Qualifiers": For the purposes of determining if an output from one shader stage matches an input of the next stage, the precision qualifier need not match. However, when converted to SPIR-V and run through the shader validation any mismatches will cause shader validation errors. Initially just ignoring those errors with this commit. Bug: angleproject:3078 Change-Id: Ia2b04f90f0a7b6b1302c1b1b3e32bcfd8db9ed49 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057749 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Courtney Goeltzenleuchter b9b4569b 2020-02-25T15:01:21 Save binding information when caching shader Test: KHR-GLES31.core.layout_binding.sampler2D_layout_binding_texture_FragmentShader Bug: angleproject:4106 Bug: angleproject:3089 Change-Id: Ia92ee172ae574e50bf1759583e46ffb54f348962 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2072871 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 660c0dd6 2020-02-25T13:30:33 Vulkan: Fix padding out Buffer allocations on AMD. We would often pad incorrectly given the constraints of the max stride. We shouldn't really be rounding up the buffer size, but we should instead be adding the max alignment size to the end of the buffer. Bug: angleproject:4428 Change-Id: Id2afc572c85985548a18f60b42cdc388d83d5c4c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2071235 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Xinyi He b185002d 2020-02-21T16:58:39 Fix the condition of glOrtho{fx} validation According to the OpenGL ES 1.1 spec, remove the conditions of glOrtho validation that n and f must be positive. Bug: angleproject:4281 Change-Id: I644a25408a026ce87211f2203b8e8203eeaf69bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2067002 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Anders Leino e3aee0b4 2020-02-20T15:19:18 Remove skip dEQP-GLES31 test now passing on NVIDIA More precisely, the test is dEQP-GLES31.functional.vertex_attribute_binding.usage.mixed_usage.mixed_api_change_binding_point Bug: angleproject:2432 Change-Id: Iafb401380ed00bd823a821d6814be5c22f9667a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2065670 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c7f63a01 2020-02-23T16:46:41 Fix debug callback in perf tests. Was not outputting correctly. Also print more information like the type and severity of the message. Moves some stringification code out of RendererGL into common/utilities. Bug: angleproject:3630 Change-Id: I029e279764fa4ae5cab8d903bd0ef7d376b7b846 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2067630 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Michael Spang 468dfed3 2020-02-21T12:12:51 Reformat GN files Otherwise this blocks the CQ at presubmit. Bug: angleproject:3492 Change-Id: I3cf77c72daa358f5e1eabecf1dcb8808a1dc9e07 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068538 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov eacec98a 2020-02-21T17:23:21 Suppress SwANGLE dEQP GLES3 failure. Bug: angleproject:4418 Change-Id: Iec75633351add75433eef3044390934149903ba8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068898 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 8df46810 2020-02-21T13:32:29 Suppress SwANGLE dEQP failures As observed from try runs on SwANGLE waterfall. Bug: angleproject:4110, angleproject:4371, angleproject:4416 Change-Id: I61cf86c60085a53896b7b66fcbf662ab7abe1c18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068542 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 39087f4a 2020-02-16T11:53:23 Refactor DrawCallPerf test parameters. Use the new combiners functions added in an earlier CL. Makes it easy to maintain bigger lists of test combinations. Also a few other changes: - removes some D3D9 perf testing since we don't maintain this config - removes the "validation only" tests. these were mostly redundant - makes the tests permutation combinations more consistent Bug: angleproject:3630 Change-Id: I175d887a01b21123f83f9fa4f64dacaa2644147a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2059468 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Michael Spang c4197713 2019-06-03T19:23:02 Implement glImportMemoryZirconHandle & glImportSemaphoreZirconHandle Implement import of fuchsia external objects passed by zircon handle. This works exactly the same as with file descriptors. Bug: angleproject:3492 Change-Id: I4d46917dfc5902f00c94550158a9f8073097f0a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1642334 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 519163ee 2020-02-15T12:20:17 Run debug callback in perf render tests. This can catch unexpected GL errors from ANGLE or the system driver. Only enable when ASSERTs are enabled to ensure that we get full performance when profiling. Helpful to diagnose incorrect perf test rendering. In this case it helped diagnose that our frame tracing and replay do not correctly remap uniform locations. Bug: angleproject:3630 Change-Id: Ifd9f47196381e48f74a810ea0c9f9c0fd7a13a22 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057352 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com>
Jamie Madill ce4918f1 2020-02-19T09:39:44 Vulkan: Sanitize Images & Buffers with non-zero values. Only enabled for specific tests at the moment. This CL allows our tests to sanitizes memory for the robust resource access extension. It is quite slow so should not be enabled by default. Only works for 1 level 2D color textures and buffers. Makes several flaky robust resource initialization tests consistently fail. Controlled via an angle::Feature in FeaturesVk. It works by initializing memory to an abitrary non-zero value: - if newly allocated memory is mappable, we map it in init and set it - if a buffer or texture can be a transfer destination, we use a staging resource - otherwise we don't attempt to initialize the resource. Bug: angleproject:4384 Change-Id: I9b4f347bfcddf3096f491ed0243bef86837feaa0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2043271 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jeff Gilbert 166875eb 2019-03-27T13:52:04 Don't clamp in glBlendColor if context supports renderable [half-]float. Add test for glBlendColor >1.0, skipped on D3D9 since it's unsupportable there. Bug: angleproject:3323 Change-Id: I3fcf867dae96bdadf8a0183269d8f27b659d0baf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1541723 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jeff Gilbert <jgilbert@mozilla.com>
Courtney Goeltzenleuchter b4357d46 2020-02-20T08:29:49 Update expectations after swiftshader fix Swiftshader fixed issue with shader array length() function. Bug: angleproject:4098 Change-Id: I129f87a80c4ac254bf1b1112d34fcd2b858eab6a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2066454 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 612cf818 2020-02-20T07:56:39 Vulkan: Update ES 3.1 test expections Breaking up an old test, narrowing the scope. Bug: angleproject:4312 Bug: angleproject:4413 Bug: angleproject:4414 Change-Id: Ib570450dc42de111baaf72ba0033515e519bab5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2066451 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Xinyi He 4864413b 2020-02-17T15:34:33 Vulkan: Implement eglWaitNative function Implement eglWaitNative API. It will call XSync() on XCB and do nothing on other systems. Bug: angleproject:4281 Change-Id: I597b75124a380df519ab10af3cab9b6e26f3194f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2059620 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 49010904 2020-02-15T12:21:17 Refactor test parameters to TracePerfTest. Reduces much of the code duplication by adding some new helper methods. The helpers allow combining test parameters similarly to how the GoogleTest Combine() and Values() generators work. They are more general and work by returning collections of test parameters instead of combining generator functions. Also updates the GLMark2 benchmark runner to use the new methods. Bug: angleproject:3630 Change-Id: Ibc10f9afb401e119d67a7119974a1a8d9b5abb60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057353 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 25097b6c 2020-02-19T08:07:23 Vulkan: Lift failing test suppression. EGLContextSharingTest.DeleteReaderOfSharedTexture/ES2_Vulkan Passes with the new command graph linearization. Bug: angleproject:4130 Change-Id: Ic7233696d2c06303ddf46947610b793a1a9e8a65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2063041 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ee0498b9 2020-02-15T09:24:03 GN: Update trace tests build. Includes two small fixes: - add .gitignore for trace tests. - fix path for restricted traces, should fix bots. Bug: angleproject:4386 Change-Id: I51c657c4f2e772411e95faa76188d43c8b6981f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057350 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 1f5f7ea3 2020-02-14T23:39:11 Vulkan: Fix SPIR-V transformation name-info association Prior to this commit, when "OpName %id name" was encountered, the info corresponding to "name" was immediately associated with %id. This is not necessarily correct because there could be multiple ids with the same name. For example a sampler declaration and an unrelated function argument could have the same name. In this case, the sampler declaration and function argument name don't even need to be in the same shader stage. This change modifies the SPIR-V transformation such that the name-id mapping is tracked until the OpVariable instruction that actually declares the variable is visited. The mapping to variable info is only done if the storage class specified in this instruction corresponds to a shader interface variable. Bug: angleproject:3394 Change-Id: I35a1f6f8278e4b1ad81c9955a55e1b72d6f2e4ea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057248 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 2e0661d7 2020-02-17T20:19:13 Vulkan: Update ES 3.1 test expectations Split off shader compilation failure to a new bug. Bug: angleproject:3596 Bug: angleproject:4402 Change-Id: Iac054e469440cfa2b84289e08c5b21e3fbdf5410 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2061448 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Anders Leino 3a3e7d4d 2020-02-14T14:08:07 Don't skip functional.layout_binding.ubo.vertex_binding_max on NV/D3D11 This test no longer fails with any recent drivers. Bug: angleproject:4276 Change-Id: I7a20ee66f1da82d0f378848ccc9faa327a4ed63a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057065 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov d5861a68 2020-02-13T15:46:49 Fix ASAN errors in end2end tests. 2 minor issues of reading from uninitialized memory in tests. Removes the suppressions from the fixed tests. Bug: chromium:1029378 Change-Id: I466ce231cfed1ce53a60732706c05b778b096805 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2055649 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 4f9608ca 2020-02-13T09:26:52 Vulkan: Update more bug numbers for ES 3.1 This reflects the most recent conformance run on Android with SwiftShader. Bug: angleproject:4106 Bug: angleproject:4108 Bug: angleproject:4188 Bug: angleproject:4190 Bug: angleproject:4240 Bug: angleproject:4300 Bug: angleproject:4312 Change-Id: I0107262eecc963a8d5343a53806bb0483b5af3be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2054068 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 74ab0bff 2020-02-12T17:29:27 Vulkan: Disable command graph by default. Also removes the angle_end2end_tests feature override. Bug: angleproject:4029 Change-Id: I0d0bd087fc2143360185592d9fa1238a9bafc55d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046054 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 593706bc 2020-02-10T16:46:52 Test Runner: Increase default timeouts. In particular the Debug timeout was not generous enough. Increase the test timeout to 20 seconds in Release and 60 seconds in Debug. Increase the batch timeout to 240 seconds in Release and 600 seconds in Debug. Bug: angleproject:3162 Change-Id: I0bd0ea18cb5cdab005143b8deed9500d9d2e8ea1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047415 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 3b82506a 2020-02-11T09:35:38 Vulkan: Command graph linearization (Step 5). Implements ES 3.1 support. Bug: angleproject:4029 Change-Id: I3c08602cf4ec64621bfdb40cd40d142b666e6edf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046052 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 72e9f4d7 2020-02-11T11:14:35 Vulkan: Update bug number in KHR ES 3.1 expectations It was pointing to general ES 3.1 bug. Bug: angleproject:4107 Change-Id: Ief726c57d5a853d633df705eb30e8cdad3f6c9ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2050030 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 1a8b7758 2020-02-11T10:34:00 Fix assignment of CacheOpResult::EnumCount The special enum value 'EnumCount' is used by EnumSize() to determine how large to make the PackedEnumMap::mPrivateData array. However, that enum entry was being assigned an incorrect value, leading to the array being constructed too small and causing a crash in PackedEnumMap's std::initializer_list constructor when it went beyond the size of the array to assign each of the necessary values. The fix is to remove the assignment of CacheOpResult::EnumCount and let it indicate the real number of entries in the enum. Bug: angleproject:4393 Test: end2end Change-Id: If9635c61e72aadc6527d416f83be18add8b24572 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2050026 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill cd8167fb 2020-02-10T14:17:09 Vulkan: Fix EGLBlobCacheTest. Several runs of the same test in a row would cause a failure if the cache would get hit. Fix the flakiness by resetting the cache between runs. Also cleans up some of the variable naming and adds a stream output for pretty test errors. Fixed while working on the standalone test harness. Bug: angleproject:3162 Change-Id: I64da8a37eedf562860e3e5409cbf6fb08e81dfa4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047417 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3c066404 2020-02-05T12:43:12 Vulkan: Command graph linearization (Step 4). Implements GLES 3.0 functionality for the new command recording style. Tested with angle_end2end_tests. dEQP/CTS testing will come later. Bug: angleproject:4029 Change-Id: Ibdc4f1355a7b880946699ec227fd9807f4a27af9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2040197 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 041ebfed 2020-02-10T13:39:34 Speed up InstancingTest.LineLoop. This test was taking 14-20 seconds in release mode. Likely because of the way we were issuing a ReadPixels and "std::endl" to a stream for every pixel of a 256x256 Framebuffer. Instead issue a single ReadPixels call and no stream flushes. Now runs in less than 500ms. Helps prevent timeouts when running tests multi-process. Also enables the test on D3D9. Bug: angleproject:3162 Change-Id: I27aad773040d6b6668cbde003802345e01044a7d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047414 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8257ac30 2020-02-07T14:17:08 Vulkan: Defer RenderPass image barriers. We accumulate image barriers in two places: * for GL sampler textures * for GL framebuffer attachments (Render Targets) Then we issue the barriers together in a single call before the RP. This fixes a bug where we were missing a layout transition in some cases when transitioning between a sampler and a render target. It should also be faster to issue a single barrier before a RP than issue several smaller barriers. Bug: angleproject:3539 Bug: angleproject:4029 Change-Id: I180b770f0df6b44d209e5c618ba36bcc1c6372e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2044236 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 788fa360 2020-02-10T14:07:12 Suppress two failing NVIDIA D3D11 tests. Bug: angleproject:4391 Bug: angleproject:4392 Change-Id: I81cbf261cf206cd2d38cff93d16056c21bf78557 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2047416 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill a8e6a463 2020-02-09T13:10:24 Suppress Vulkan RobustResourceInit tests. These tests are flaky because of a bug in ANGLE's Vulkan robust resource init. Mark them as failing until we can resolve the bug. Bug: angleproject:4255 Bug: angleproject:4384 Change-Id: I8e18a8532850848fc7a25e137dce27dd0d19fa55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2046053 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill c3854ebc 2020-02-07T11:11:26 Vulkan: Clamp vertex buffer offsets. Vulkan mandates that vertex buffer offsets are within the size of the buffer even if robust buffer access is enabled. Do a check in VertexArrayVk::syncDirtyAttrib to guard against this. Bug: angleproject:3350 Change-Id: Ia01deb9b7335dd8f632f2cf9b32d2908ba55645c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2044491 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop e02f4996 2020-02-06T12:26:07 Vulkan: Pass correct level count in getLevelDrawImageView This bug was hit by a KHR ES 3.1 test. This CL just applies the obvious fix already noted by jmadill@. Test: KHR-GLES31.core.shader_image_size.*-nonMS-* Bug: angleproject:4008 Bug: angleproject:4108 Change-Id: I5d05c0a7432f7b70d2b995fd8b11224c119ece5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2042491 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 3a2522de 2020-02-06T10:05:23 Make TransformFeedbackTest deterministic. Instead of using rand(), use a fixed seed RNG. This can ensure runs use the same draw call counts no matter the time of day. Note: there may have been a setting somewhere that was seeding the RNG because I wasn't seeing variation between test runs locally. This change makes it explicit. Bug: angleproject:4029 Change-Id: Ic51bf2a6779da3b96a3357eed99c0f7fa9d81648 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2042210 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brian Osman e9dc0201 2020-02-04T12:04:28 GL: Mark unused uniform locations that were explicitly bound as ignored If a uniform location is unused, but a call to glBindUniformLocation has explicitly bound the uniform, ANGLE validation still treated the uniform as unused and returned errors. The correct behavior is to ignore the uniform and silently fail. Bug: angleproject:4374 Change-Id: Ic7b97f23cf8bc2d5380129322595e51b3d4a9fcc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2036676 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi e5385ea9 2020-01-27T13:40:18 Vulkan: Compile shaders at link time Since line raster emulation was changed to use specialization constants, it has been possible to compile shaders at link time. However, program pipeline objects would have required keeping the shader sources around for recompilation. Now that all necessary decorations are modified directly in SPIR-V, it's possible to compile the shaders at link time and forget about their sources. Program pipeline objects then simply "reconfigure" the generated SPIR-V. A next step could be to also create the Vulkan pipeline object at link time. A number of failures due to gaps in CTS testing prevent that work currently. In particular, in some situations the generated SPIR-V is not per spec, for example it may contain vertex attributes with aliasing locations, or have transform feedback capture of array elements misconfigured. Bug: angleproject:3394 Bug: angleproject:4253 Change-Id: I54c0884cf056b511a4a306225cc6ed2cef84d257 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023186 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 20b1259a 2020-02-05T17:08:05 Vulkan: Command graph linearization (Step 2). ES 2.0 is feature complete. Passes all of the angle_end2end_tests with the new linear command recording method. Also runs the T-Rex benchmark without any obvious glitches. Likely has issues with creating too many RenderPasses. ES3 is mostly untouched. Bug: angleproject:4029 Change-Id: Ic5acf3d768495fbffd07b07bf0a6f2b5787c51f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2012900 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 806ba566 2019-12-12T13:02:01 Extend ANGLE_iosurface_client_buffer to Vulkan backend for Swangle Implement an IOSurface-backed pBuffer surface for the Vulkan backend on Mac, through SwANGLE. ANGLE will pass a raw pointer to Swiftshader and handle locking/unlocking the IOSurface. Bug: chromium:1015454 Change-Id: Ia3ead55334736003d405b54ba8dcc7701706fbb2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1965434 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi f764fc02 2020-02-03T10:33:58 Fix varying linking by location This change breaks the assumption everywhere that varyings can be identified uniquely by name throughout all stages of the pipeline. It further implements linking of varyings by location, if specified. Bug: angleproject:4355 Change-Id: Ie45e48879008c3f0c22d1da3d0d26f37c655e54e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2030026 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>