src


Log

Author Commit Date CI Message
shrekshao abcc536b 2020-03-09T13:20:53 Speculative fix for nullptr program in QueryProgramiv It is reported that an increase crash rate is seen on M81. This is a speculative fix based on that most crashes have calls from GrGLProgramBuilder::checkLinkStatus. Bug: chromium:991020 Change-Id: I549de9e0a0cccde8b9c68d706828963fe3f9bdf2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2095596 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shrek Shao <shrekshao@google.com> Commit-Queue: Shrek Shao <shrekshao@google.com>
Jamie Madill 5d7ccc30 2020-03-09T14:24:30 Revert "Vulkan: Fix store ops with linear command recording." This reverts commit a61e273ac3ca88cb95b7bebac0d31a62644049a0. Reason for revert: Causes rendering artifacts in "Aztec Ruins". Bug: angleproject:4444 Original change's description: > Vulkan: Fix store ops with linear command recording. > > DiscardFramebuffer was being ignored in the new linear path. Fix this > by using the correct APIs. Also cleans up some of the access to the > "RenderPassCommandBuffer" struct in ContextVk. Add a new accessor that > returns the RenderPass without a flush that ensures it is only called > when a RenderPass is already started. > > Bug: angleproject:4029 > Change-Id: Ibd199f3a371c0f91b448a0b34c8752dc8b76c284 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057329 > Reviewed-by: Charlie Lao <cclao@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> TBR=tobine@google.com,jmadill@chromium.org,cclao@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:4029 Change-Id: I7d925b88c438a20ebe4a48634568addda7a64d60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2093157 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
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 03ed5f6c 2020-03-06T22:15:42 Revert "Instantiate rx::DisplayEGL when device type EGL is selected" This reverts commit 7455b54401dd55833944b5ad857ccd9852ef6a79. Reason for revert: This appears to break the "Linux FYI Ozone (Intel)" bots on the chromium.gpu.fyi waterfall. Ozone means ChromeOS. Original change's description: > Instantiate rx::DisplayEGL when device type EGL is selected > > Define EGL_PLATFORM_ANGLE_DEVICE_TYPE_EGL_ANGLE that should be > used to request a driver egl-backed implementation with ANGLE. > > Bug: angleproject:4328 > Change-Id: I6871d3a27e2bfc02af9815dcf86ae1cb6524f0cc > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2030038 > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,syoussefi@chromium.org,jonahr@google.com,julien.isorce@chromium.org Change-Id: I8aec6c2783b0acb67d3315d351cdc9e526f58d6b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:4328 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2091864 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Tobin Ehlis 1a5c7a16 2020-02-25T12:02:31 Reland "Vulkan:Include precision qualifier in GLSL" Currently still ignoring precision qualifiers for Vulkan shaders by default, but have added feature "enablePrecisionQualifiers" that can be enabled in order to include precision qualifiers. 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 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> Change-Id: Ieecca604bb2c834c9b1c2bcab85279d1f8755dfa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2086280
Julien Isorce 7455b544 2020-03-03T00:13:03 Instantiate rx::DisplayEGL when device type EGL is selected Define EGL_PLATFORM_ANGLE_DEVICE_TYPE_EGL_ANGLE that should be used to request a driver egl-backed implementation with ANGLE. Bug: angleproject:4328 Change-Id: I6871d3a27e2bfc02af9815dcf86ae1cb6524f0cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2030038 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@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>
Cody Northrop c55fbc40 2020-03-01T16:23:05 Capture/Replay: Fill out more ES 3.0 state in mid-execution capture Test: Manhattan mid-execution capture working Bug: angleproject:3662 Bug: angleproject:4091 Change-Id: Id7f1a3f667229e4d5abedb3ada25d44db250605a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2080592 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter ca04de85 2020-03-03T09:59:42 Vulkan: blacklist VK_FORMAT_R8G8B8_UNORM Chrome makes assumptions that depend on ANGLE implementing 24bit RGB as 32 RGBX. Since that was the behavior of ANGLE for a while, remove those formats from the VK format table to force that behavior again. Test: Chrome on Fuchsia Bug: angleproject:4282 Change-Id: I22a3f07b00d7870044ed6b3326dd528721b89af8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2085043 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Cody Northrop e682bc57 2020-03-01T16:19:32 Capture/Replay: Add Sampler Object support to mid-execution capture Test: Manhattan mid-execution capture working Bug: angleproject:3662 Bug: angleproject:4091 Change-Id: Iafa528e2a25efe1c49eb49ecc429eac8f25c162c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2080591 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
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>
Cody Northrop 9459bae1 2020-03-01T16:17:41 Capture/Replay: Add Vertex Array Object support to mid-execution capture Test: Manhattan mid-execution capture working Bug: angleproject:3662 Bug: angleproject:4091 Change-Id: I5d16e8faed759507c85b6358b65750fe5c33ddfe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2079190 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop f8ecac29 2020-03-01T16:16:18 Capture/Replay: Add TransformFeedback Object support to mid-execution capture Test: Manhattan mid-execution capture working Bug: angleproject:3662 Bug: angleproject:4091 Change-Id: Ibaa708085c5707a4ece637186daeafe6c681068f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2070901 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
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>
Cody Northrop 54bd0005 2020-03-01T16:13:23 Capture/Replay: Add Query Object support to mid-execution capture Test: Manhattan mid-execution capture working Bug: angleproject:3662 Bug: angleproject:4091 Change-Id: I3e0d0fb1692b1fda08fd057d528f70aa5e50ef1c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2070900 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop dfae826d 2020-03-01T16:07:49 Capture/Replay: Update getTexImage for depth/stencil and 3D 3D support based on work from ancheng.qiao@arm.com. Test: Manhattan mid-execution capture working Bug: angleproject:4058 Bug: angleproject:4091 Change-Id: I7f8b8542fbc1f3484a2451850db0dc752c0b8906 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2070899 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
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>
Xiaoxuan Liu f8b28678 2020-02-26T19:12:39 Vulkan: Add support for VK_EXT_index_type_uint8 Enable VK_EXT_index_type_uint8 Vulkan extension if supported by VkDevice. Bug: angleproject:4405 Change-Id: I84d030497898c5944a36d9a88a31e7377ccd5e9e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2082391 Commit-Queue: Xiaoxuan Liu <xiaoxuan.liu@arm.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill b84969ad 2020-02-29T09:14:36 Vulkan: Use QueryHelper for internal GPU timing. This cleans up the code. Using QueryHelper means we don't need to duplicate the timestamp query/result code. It also means we don't need special allocate/free functions in DynamicQueryPool. Done while investigating timing GPU events for T-Rex. Bug: angleproject:4433 Change-Id: I8512a5618e1dd00956942ae2d12d46d8193c4e51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2081379 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> 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>
Jamie Madill a1e5f582 2020-02-29T08:01:16 Vulkan: Clean up QueryHelper uses. Makes the wrapper classes take boxed query handles. Also cleans up some repeated code patterns. It also encapsulates the QueryHelper class more so that the pool indexes and handles are hidden from the user of the class. Fixed while working on GPU trace event timing. Bug: angleproject:4433 Change-Id: Ib6cba9c52ec956ebede9b411b70261ea5b877d7d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2081378 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 80f55e97 2020-02-28T15:05:41 Expose glGetInteger64vEXT. This entry point is specifically for retrieving very large timestamp values from EXT_disjoint_time_query. In GLES 2.0 contexts with the Vulkan back-end we were getting some astronomical values that couldn't be cast to 32-bit ints. Also fix missing dependencies in generate_loader.py. Bug: angleproject:4433 Change-Id: I59146dcc1a163a24ac2d7c37546f4551a7a8890a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2080595 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 51a9da21 2020-02-28T13:57:25 Add OES_draw_buffers_indexed autogenerated wrappers and validation redirects. This extension allows setting independent blend state (and color write mask) for each draw buffer. OES and EXT versions provide exactly the same functionality. It is also included in GLES 3.2 core. Bug: angleproject:4394 Change-Id: I0c27c419472622e309a038dd1463fa0b3e4ca595 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2078587 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tobin Ehlis ff60abaf 2020-02-28T14:06:07 Vulkan:Disable FramebufferVk cache on Apple Currently hitting a crash on Apple so disabling FramebufferVk cache. Bug: angleproject:4442 Change-Id: I3824252210aeeaf9919c8d17730395b394a50862 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2080661 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Geoff Lang dd19d554 2020-03-02T09:41:22 Change commit_id 'check' back to looking for .git files. commit_id.py was change to try running 'git status' to confirm that git was present. This caused it to succeed if there was a git checkout somewhere above ANGLE if ANGLE's .git didn't exist, incorrectly adding a non-existant .git/HEAD file to the gn rule's inputs. Always verify that ANGLE's .git/HEAD is present in commit_id.py. BUG=angleproject:2344 Change-Id: I7e170f39c8d5cef73086ecf6d68925a1d3512de1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2082993 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Jamie Madill <jmadill@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>
Jamie Madill 94d399ca 2020-02-28T08:18:37 Trace/Replay: Add framebuffer change callback. The perf tests can use this callback to instrument timer queries to delineate render pass times on the device. The new call pattern in the replay looks like this: glBindFramebuffer(GL_FRAMEBUFFER, gFramebufferMap[1]); OnFramebufferChange(GL_FRAMEBUFFER_OES, gFramebufferMap[1]); Bug: angleproject:4433 Change-Id: Ice5150741d1d5becb26d60020e8c00e3a2fb6218 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2074337 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Geoff Lang 54bc3dab 2020-02-27T15:52:04 Add the ANGLE Android developer options to the ANGLE repository. The ANGLE repository will house all the scripts needed to build ANGLE.apk and the developer options are packaged in the APK. BUG=angleproject:2344 Change-Id: I29090bd91a07546a1d2ccc03a6af19f45ffa3d90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2079194 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Geoff Lang <geofflang@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>
Reid Kleckner 78da538a 2020-02-26T21:23:16 Revert "Vulkan: Disable global merge for volk" This reverts commit bab2b3de2273796ca15edfc46747f3bbab3f27c3. Reason for revert: A fixed clang version has been rolled in, so this flag should no longer be necessary. Original change's description: > Vulkan: Disable global merge for volk > > This optimization pass breaks the build by exporting volk's internal > binding symbols from libGLESv2.so. Since the test binary also links volk, > this causes a SEGV as the wrong (uninitialized) function pointer is > called. > > This is an LLVM bug and will be fixed upstream: > https://reviews.llvm.org/D73235 > > Bug: angleproject:4351 > Change-Id: Iebe0eabd975f8109231df30eef8c9074af8190e9 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023910 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Michael Spang <spang@chromium.org> TBR=spang@chromium.org,syoussefi@chromium.org,jmadill@chromium.org Bug: angleproject:4351 Change-Id: Ie832d7d42fab7c8360f2d4d548f1708164c60d3f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2076138 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Michael Spang <spang@chromium.org>
Jamie Madill 5dde4db5 2020-02-27T15:39:30 Capture/Replay: Capture DrawBuffersEXT. The extension entry point can forward to the ES 3.0 entry point. Needed for capturing the mutiple draw buffers sample. Bug: angleproject:4433 Change-Id: I1081e6a5ad57eca6dc328947bb0f9037d47fe9f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2079155 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@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>
Jonah Ryan-Davis 698ffd02 2020-02-27T10:59:13 eglGetConfigAttrib validation missing extension check The extension EGL_ANGLE_iosurface_client_buffer adds a new attribute to the config: EGL_BIND_TO_TEXTURE_TARGET_ANGLE. However, validation was not checking the extension was present when this attribute was requested. Bug: chromium:1015454 Change-Id: I24c6e20f3b602e8a71a46f0f1e99c1472d5bbb1e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2078892 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: 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>
Charlie Lao f0d32401 2020-02-14T14:50:25 Vulkan: Optimize element buffer conversion Uses CPU copy if the buffer is CPU visible. Also add dirty bit check to avoid repeated conversion on clean data Bug: angleproject:4400 Change-Id: I1f472703ebc4a65ee0de129c27f56b081748f900 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057758 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
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>
Ian Elliott e488d8b8 2020-02-26T16:11:29 Vulkan: Implement Android pre-rotation As an Android GLES driver on top of Vulkan, ANGLE must pre-rotate rendering on behalf of the application. This involves modifying the vertex shader to multiply gl_Position with a mat2 "rotation matrix". Not doing so means that SurfaceFlinger (SF) will perform a costly rotation blit before presenting every image. Setting WindowSurfaceVk::mPreTransform to mCurrentTransform tells SF to not do the blit. When the surface is rotated 90 or 270 degrees, the width and height must be swapped for: - The swapchain images, and for any depth, stencil, and/or multisample attachments used with the swapchain image. - The viewport, scissor, and render area. Because the Metal back-end shares the TranslatorVulkan, it will define the same preRotation (mat2) DriverUniform that is used for Vulkan. Bug: angleproject:3502 Change-Id: I968dbe8869ba0f50de18dd41f1195e847c06b545 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2038272 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang ba8ef68c 2020-02-24T14:13:40 Always use commit_id.py to generate commit.h commit_id_.py is capable of generating the default commit.h. This makes it so we always take a single path in gn. Remove the existing commit.h and generate it into the root generation folder (not the id subfolder) because Android blueprints can't handle generating into subfolders that don't exist. Make the <angle_dir> argument capable of taking a filename or directory name. This allows us to pass the .git/HEAD file which is a gn input. Android blueprints require all paths used as input or output to a script are listed as inputs or outputs in the genrule. BUG=angleproject:2344 Change-Id: I6600083fc400faf07808316c4a6244d6599df79a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2074924 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill c79b0ea5 2020-02-25T08:26:23 Vulkan: Document command access APIs. Includes a short description of the ContextVk command APIs. Also a few small cleanups to other Vulkan back-end documentation. Bug: angleproject:4029 Change-Id: I3bd04861f27b718e6a94fdae00644c124452bc62 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2070597 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@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>
Brandon Schade 8aea6d5a 2020-02-25T11:22:00 glslang: enforce initialize and release as once per process Bug: angleproject:4354 Change-Id: Ice0912a90d4e9a4fe3fdaf67d67292afc0eba8a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2073201 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
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>
Robert Liao 4a9ec2ef 2020-02-25T16:33:21 Revert "Always use commit_id.py to generate commit.h" This reverts commit 4dc19c38c0c5e307350ecd8b9f80d59573161df9. Causes a git error during 'gn gen': fatal: this operation must be run in a work tree BUG=chromium:1055991,angleproject:2344 Change-Id: I74dd36d557dcaf1bd1b13264d806a1c6b09e1a56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2073200 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tobin Ehlis a1ceb87b 2020-02-25T11:58:19 Vulkan:Refactor precision emulation code GLSL, ESSL, and HLSL translators all had the same code to emulate precision so migrate that code to base class. This is a structural change to prepare for honoring precision qualifiers in the Vulkan translator as well, which is done in a follow-on commit. Bug: angleproject:3078 Change-Id: Id85bba83543189e3bbc4002be92b056e63afc8de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2072644 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tobin Ehlis <tobine@google.com>
Jamie Madill 916d204c 2020-02-25T14:18:38 Vulkan: Use new APIs in BufferHelper::copyFromBuffer. We shouldn't need to special case the barrier logic in this function any more. Instead use the 'onBufferRead' and 'onBufferWrite' APIs. Bug: angleproject:4029 Change-Id: I7f67b67aa312d9ae64172b40d73086b7772d49d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2071143 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@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>
Jamie Madill 5b7ce876 2020-02-25T09:52:05 Vulkan: Update buffer accumulation TODO bug IDs. Bug: angleproject:4029 Bug: angleproject:4429 Change-Id: Ice4ae48a92e376ea916f05d1433a68f3accc09d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2071145 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@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>
Pierre-Marc Berube f031f7c8 2020-02-19T18:13:32 Fix a GCC 10 build failure. Build failed on GCC10 with C++17. An #ifdef was added to support both C++17 and C++14 Bug: angleproject:4390 Change-Id: I397513a8ebad4a55635ba863c47edc658e405729 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2063545 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Schade 46cb0f62 2020-02-21T11:38:17 Vulkan: prevent volk reloading on null instance and devices Bug: angleproject:4419 Change-Id: I82f9bb157e88754efd074358dccef1bb82cab0f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068902 Reviewed-by: Tobin Ehlis <tobine@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 14a2983f 2020-02-20T17:14:02 Trace/Replay: Add uniform locations map. This portability feature allows a single T-Rex capture done on Vulkan to work seamlessly on the ANGLE GL back-end and the WGL-loaded NVIDIA OpenGL driver. Previously the uniform locations would not be consistent between ANGLE and a native driver. And incompatiblities would trigger error messages between ANGLE back-ends. Will allow us to compare ANGLE performance vs the native driver using a capture. Example captured calls: glLinkProgram(gShaderProgramMap[3]); UpdateUniformLocation(gShaderProgramMap[3], "s_texture", 0); Bug: angleproject:4411 Change-Id: I5ddc76d75e15a9291b351e2aab94af4881f6ef47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068121 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill aa09ca69 2020-02-24T13:33:30 Vulkan: Update ContextVk command buffer access methods. Use the following names: - flushAndBeginRenderPass - endRenderPassAndGetCommandBuffer - flushAndGetPrimaryCommandBuffer This clarifies that a flush is part of the method. Bug: angleproject:4029 Change-Id: I6c870761339ea7aa39c83142200781ba39ad6a4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068129 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Geoff Lang 4dc19c38 2020-02-24T14:13:40 Always use commit_id.py to generate commit.h commit_id_.py is capable of generating the default commit.h. This makes it so we always take a single path in gn. Remove the existing commit.h and generate it into the root generation folder (not the id subfolder) because Android blueprints can't handle generating into subfolders that don't exist. Make the <angle_dir> argument capable of taking a filename or directory name. This allows us to pass the .git/HEAD file which is a gn input. Android blueprints require all paths used as input or output to a script are listed as inputs or outputs in the genrule. BUG=angleproject:2344 Change-Id: Ifd9c8331f421586db6f2c6e17faf3242376e11d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2070600 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 74cc3a05 2020-02-21T12:43:15 Make Soong ignore build files in third_party Some of ANGLE's dependencies have Android build files that are not compatible with the current Android build system. BUG=angleproject:2344 Change-Id: Ie414828a234d4c37f12d4c812751421b4f14b24a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068125 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Jamie Madill 263232ef 2020-02-23T15:02:16 Trace/Replay: Pass CallCapture to parameter replay writer. This will allow more advanced processing when writing the cpp replay for a specific parmeter. For the uniform locations map it'll allow us to look up the specified program from the call parameters. Bug: angleproject:4411 Change-Id: I4e91b3e4c6775c42140d00b2d155344b553a7404 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2067629 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> 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>
Julien Isorce a889d30f 2020-02-04T23:08:55 Reland "Provide default implementation of rx::DisplayEGL" This is a reland of 123fd97000bb9fd912159bb9ccc62308b763aead Original change's description: > Provide default implementation of rx::DisplayEGL > > Will allow to use EGL instead of GLX on X11. > > Meant to be used on modern EGL so it requires the extensions > EGL_KHR_no_config_context and EGL_KHR_surfaceless_context. > This keeps the default implementation simple (no pBuffer > fallback) > > Also provide simple WorkerContextEGL. > > Bug: angleproject:4328 > Change-Id: I92a1ded9e09e65de8bb83710274e0a73ecdff0a4 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2061168 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:4328 Change-Id: I02046613324e9283ba8f2ed02dd9c7ce703e0fde Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2063045 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 b5576b67 2020-02-21T20:44:42 Vulkan: Fix pipeline stage when waiting on a semaphore Using VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT in pWaitDstStageMask doesn't create a dependency, since no memory is accessed during that stage. Switch to VK_PIPELINE_STAGE_ALL_COMMANDS_BIT to synchronize all accesses. This fixes flickering observed in WebGL on ARM GPUs when composited using Vulkan in Chromium. Bug: angleproject:4422 Change-Id: I37da461c03dbf52f8658408b159c2b173cccd0b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068906 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Michael Spang <spang@chromium.org>
Jamie Madill a741abb9 2020-02-21T16:37:37 Vulkan: Rename CommandGraphResource to Resource. Also renames the h and cpp files to ResourceVk (to keep distinct from other resource.h/cpp files) and renames 'onResourceAccess' to 'retain'. Cleans up a few remaining mentions of the command graph in comments. Bug: angleproject:4029 Change-Id: Ifc8e880c8cea3fc48a4aec4730191c88aa35a076 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2065920 Commit-Queue: Jamie Madill <jmadill@chromium.org> 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>
Khushal f3325dd8 2020-02-21T10:20:01 Add uniform location checks for ignored/invalid location R=geofflang@chromium.org Bug: chromium:1028418 Change-Id: Iae257fbfa8d58f9a0aa7b876fba416bb060fbe54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2068127 Commit-Queue: Khushal <khushalsagar@chromium.org> Reviewed-by: Geoff Lang <geofflang@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 a18f4145 2020-02-19T22:42:12 Trace/Replay: Add uniform location type. This is a large refactor that replaces instances of "GLint location" for uniform locations with "UniformLocation location". This boxed type is similar to the ResourceID types that we use to capture resource IDs more easily. Eventually this will give us a more portable replay. Bug: angleproject:4411 Change-Id: I848e861c3956d95b6b953f57f8b6a2c4a676766f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2066117 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d3aad0f4 2020-02-20T08:59:58 Vulkan: Remove command graph size overlay widget. No longer applicable without the command graph. Bug: angleproject:4029 Change-Id: If75e3aca56eb18567074e14ceb23b3fd7a0afb3d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2065919 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill c58458e6 2020-02-19T14:51:41 Vulkan: Remove CommandGraph code. Also updates relevant comments to no longer refer to a graph. Bug: angleproject:4029 Change-Id: Ic29716e9ae4926870f902947d49d8fee7af98662 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057804 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
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>
Alexey Knyazev b8c6521a 2020-02-14T14:23:08 Reland "Move sampleAlphaToCoverage out of blendState" This is a reland of f6e73131c528b1317067624bc71c3ce41a48f9aa Aligned BlendStateKey fields Original change's description: > Move sampleAlphaToCoverage out of blendState > > This is the second step towards exposing OES_draw_buffers_indexed (that defines independent blend state for each draw buffer). This flag is global in all graphics APIs, however D3D11 technically puts it in the blend state. > > D3D11: BlendStateKey was extended to keep existing D3D11 state caching semantics. > > D3D9: a comment was added explaining why this feature was never implemented there. > > Bug: angleproject:4394 > Change-Id: Ie6a294eeb6fcf4c868a1f1001c4f7efd61692ccd > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057063 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: angleproject:4394 Change-Id: Ia7aed863f0f9f6066daf1b02ecade3256f494062 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2066698 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 94ec1e5f 2020-02-19T15:29:54 Vulkan: Update shader compilation documentation Bug: angleproject:3394 Change-Id: If8df97644d07f258a8f1ea1bde6b6b3572f6d024 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2062745 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Michael Spang e4ba2d87 2020-02-20T16:05:02 Pass ContextVk instead of gl::Context to internal methods Minor cleanup to change funciton signatures of vulkan specific methods in MemoryObjectVk & SemaphoreVk. Bug: angleproject:2475 Change-Id: I230664548004ebc48b559e0f25264ea948ce5a1f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2067500 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop b8ca4309 2020-02-20T08:27:33 CaptureReplay: Emit unused resources In the final frame of Manhattan, resources are cleaned up, even if they are non-existent. This is allowed by the GLES spec. Compilation of the replay would fail, for instance: error: use of undeclared identifier 'gRenderbufferMap'; did you mean 'gFramebufferMap'? const GLuint glDeleteRenderbuffers_renderbuffersPacked_0[] = { gRenderbufferMap[0] }; ^~~~~~~~~~~~~~~~ This is because we are only declaring resources if they are used. Instead, go ahead and emit the resources, then circle back when filtering is implemented, allow that to optimize the replay. Bug: angleproject:4091 Bug: angleproject:4223 Change-Id: Ib48da0d9c3f4f2eca268646e7717a12126b1d85c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2066455 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@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>
Michael Spang dec00bc8 2019-04-03T15:51:28 Generate entrypoints for Fuchsia external objects extensions Add GL_ANGLE_memory_object_zircon_handle & GL_ANGLE_semaphore_zircon_handle extensions to supported extensions list and re-generate bindings. Bug: angleproject:2475 Change-Id: I464aa402aaac916c1f459930c771a0813ec63c9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1642333 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3352d492 2020-02-19T17:41:24 Vulkan: Add command stream diagnostics when graph is disabled. Very simple diagnostics that prints out the command stream. Since there is very little deferral right now the graph itself became quite a bit simpler. Also fills in some missing values in the switch that prints the command name string. Bug: angleproject:4029 Change-Id: Ib64a7fed6f9f56ce406cc7dbc6cc993ed510e2cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2065530 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Tobin Ehlis cf2ec3b1 2020-01-31T16:55:50 Vulkan:Add FramebufferVk cache This adds a FramebufferVk cache. Cache signature is based on unique Serial values that are assigned to ImageHelper objects backing all color and DS rendertargets as well as level/layer values unique to the imageView. Update the Serials and cache signature at FramebufferVk::syncState() time. L0 cache is a currently active framebuffer. L1 cache retrieves previously created framebuffer from new cache. If neither of those hit, create new FramebufferVk and add to L1. Bug: angleproject:4322 Change-Id: I3f585271798ddfb9e5f194020adca8cf8a6b19dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2033869 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 709f6285 2020-02-20T08:56:17 Vulkan: Enable FenceNV extension without graph. Bug: angleproject:4029 Change-Id: I6b3f469b692010e373b9c82b689966da98b8a6cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2065918 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 0aab41b7 2020-02-20T08:39:10 Vulkan: Make mapped memory available with graph disabled. This copies functionality out of the command graph path. A preemptive barrier ensures we don't need to issue an availability barrier when we need to map buffer memory. Bug: angleproject:4029 Change-Id: I868ce8bdb3c452dccf35cc9e70adf81ad7905c66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2065917 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@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>
Jamie Madill a61e273a 2020-02-19T14:51:40 Vulkan: Fix store ops with linear command recording. DiscardFramebuffer was being ignored in the new linear path. Fix this by using the correct APIs. Also cleans up some of the access to the "RenderPassCommandBuffer" struct in ContextVk. Add a new accessor that returns the RenderPass without a flush that ensures it is only called when a RenderPass is already started. Bug: angleproject:4029 Change-Id: Ibd199f3a371c0f91b448a0b34c8752dc8b76c284 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2057329 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
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>
Jamie Madill bd4e756a 2020-02-17T09:49:45 Const-ify the validation layer. Enforces that the validation layers should be working pretty much read- only with the exeption of updating caches. Requires a few tricks: - updates EP code generation to add 'const' to pointer parameters - enables a kludge const_cast to enable the robust query extension - makes some members of Framebuffer mutable to work around syncState - makes 'is' queries and other methods in Context/State const Will allow us to more safely expose the no_error extension. Bug: angleproject:1280 Change-Id: Id9756757854c9e68fc096ecec8d93759fbe6b3a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2060689 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>