src


Log

Author Commit Date CI Message
Geoff Lang 18c6d628 2021-03-09T13:46:13 GL: Support VAOs without native VAOs. Share the default VAO state between all frontend VAO when there is no native VAO support. Forcefully sync state every time a new frontend VAO is bound. Bug: angleproject:5577, chromium:1167179 Change-Id: Ieaedb5108ad28fc78e7e58b74495639c5246bb05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2665266 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Peng Huang <penghuang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 065c2329 2021-04-08T11:59:43 Reland "Vulkan: Add features to modify sampling parameters" This reverts commit a51b57fa2dc73f8bc8acdf0b818cc0315fb23d75. Original change's description: > Revert "Vulkan: Add features to modify sampling parameters" > > Bug: b/167404532 > Change-Id: Iae19dfe165074e8c01216312bddd744c4fb504a4 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2510012 > Commit-Queue: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Tim Van Patten <timvp@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: b/167404532 Change-Id: I2c756b8eb0f61701ef6e33275e557bc199a4d3b4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815259 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi c2d1a464 2021-04-09T16:53:30 Translator: Track nameless interface block field indices in type Fields of nameless interface blocks are stored as TVariables and referenced through a TIntermSymbols (unlike named blocks which use EOpIndexDirectInterfaceBlock with a constant field indices). With this change, the field index is stored in the variable's type which let's the TField of the TInterfaceBlock be directly accessible (and not need a search by name). This will be helpful in translation to SPIR-V as interface block members are accessed by field index. Bug: angleproject:4889 Change-Id: If3ab45b1e5f5f9576721dc52e2bdf1161882514f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818242 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 6ec55494 2021-04-08T22:02:50 Vulkan: Use AST transformation for gathering default uniforms ... instead of generating text. This will keep the tree in a consistent state, as previously the references to uniform values where to TVariable's whose declarations were removed. Bug: angleproject:2461 Bug: angleproject:4889 Change-Id: I2ef3787dede371514a5f495f4cc8fc67ea45f451 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815564 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Gert Wollny faa86bc9 2021-04-13T14:19:59 Capture/Replay: Serialize only a hash of the shader binary It doesn't make much sense to keep the actual values and it makes the diff needlessly large when the binaries differ. Bug: angleproject:5856 Change-Id: I55664d6cb60ef680669c1243c2eabcb67cd4db23 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2822256 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 6d2f9cb4 2021-04-13T13:56:13 JsonSerializer: add method to store only a hash for vectors This can be used to make the Json comaprison less noisy. Bug: angleproject:5856 Change-Id: I57df41eed3926647aaf8bcf97a7aea050e1c3d51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2822255 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 58eabfd7 2021-04-08T23:57:04 Translator: Validate consistent variable references Some transformations change variable declarations. This validation ensures that all references to said variables are appropriately replaced as well. Bug: angleproject:2733 Change-Id: I6c2873968eeed4cba66e70069f84eb69a1f77074 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818140 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Gert Wollny 79402fbd 2021-04-13T14:15:19 JsonSerializer: Fix rapidjson define usage The correct define is ANGLE_HAS_RAPIDJSON Bug: angleproject:5858 Change-Id: I21e3f3e632d5ceb4fce43f1d6be34e4fbbdafbc6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2822254 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Gert Wollny 41c66442 2021-04-12T16:46:47 Capture/Replay: Print context diff on failure when verbose When run with the --verbose flag, and a test fails because the context comparison fails, then print the unified diff between the JSON serialization of context that was captured and the context when it was replayed. Bug: angleproject:5715 Change-Id: I86210d96e5bbdf63f1ed663ddf8dfcb33764cbea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821535 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cheryl Wei 5faed621 2021-04-12T17:48:56 Skip IOBlocksSeparate xfb test on Linux/ARM/Vulkan Bug: angleproject:5493 Change-Id: I894e08a86157032d1e68a3d2b460bfdbbaeb6680 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821415 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
John Plate 1d7046ca 2021-04-12T16:17:22 Generate CL stubs in libGLESv2 Bug: angleproject:5758 Change-Id: I6440dacf0db57a56923d2cab5a7c791981ba3b9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2822248 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny f7891766 2021-04-12T14:24:37 Capture/Replay: write context serializations on failure With this data available as JSON text files further analysis can be executed to drill down to what the actual difference is. Bug: angleproject:5715 Change-Id: I7012668ff9617f6232a6bbe1798a02d8c795321d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821534 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Nicolas Capens 15f4925a 2021-04-12T15:38:10 Restore EGL_EXT_buffer_age for SwiftShader Vulkan EGL_EXT_buffer_age was previously disabled for SwiftShader Vulkan because of an Android test timing out on Cuttlefish when the buffer age is queried. aosp/1672445 addresses the root cause of the timeout, so EGL_EXT_buffer_age can be supported again. Bug: b/182521420 Bug: angleproject:3529 Change-Id: I5949f721316855d9138eb9f657a6df4e7b49ed71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821750 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Nicolas Capens <nicolascapens@google.com>
Shahbaz Youssefi 3813c361 2021-04-12T11:45:46 Vulkan: More perf warning for vertex format conversion The perf warning was previously only issued when a GPU buffer had to be converted. This change adds a warning when client data needs to change format too. Bug: b/184355822 Change-Id: I3539e22f277593d60e5e1ce172baf7b8db0477fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821751 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Doug Horn fdba40fe 2021-03-31T12:52:00 Reland "Fix multithreaded crash on draw commands on D3D11 backend." This is a reland of 8b9889bf62272fea2495331b622bde1f7c781bd0 The previous CL relied on a define which now only exists in a specific gn configuration. This reland removes D3D11 as a multithread-supported platform in the test configuration. Original change's description: > Fix multithreaded crash on draw commands on D3D11 backend. > > A crash can occur if thread A is executing eglDestroyContext while > thread B issues a draw call, if the threads are interleaved in such a > manner that a makeCurrent occurs without triggering a change to the > global context and a dirtyAllState call. We handle that case by > explicitly making current the proper contexts in the eglDestroyContext > call. > > A test has been added that triggers a crash without this fix when > running on the D3D11 backend. In addition, all of MultithreadingTest > is enabled for the D3D11 backend. > > Test: Ran MultithreadingTest. Test exhibits a crash before this > change, and does not after this change. Also ran: > dEQP-EGL.functional.sharing.gles2.multithread.* > dEQP-EGL.functional.multithread.* > > Bug: b/183756357 > Change-Id: Ic6f76a062868b2f3b4e60d29dc087ec180bfb7cd > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798591 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Doug Horn <doughorn@google.com> Bug: b/183756357 Change-Id: I5be9a011ea99a69730eddc9e4da23bcf92ed3bf2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815243 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Doug Horn <doughorn@google.com>
Sunny Sachanandani 923f6a6f 2021-04-06T15:30:26 Ignore internal format attribute for YUV D3D11 EGLImages Internal format doesn't play any role in this case, and causes confusion due to mixing sized and unsized formats resulting in more complicated code in Chromium. Bug: angleproject:5538, chromium:1116101 Change-Id: Ie200026f014850053108aa0416e1da15bcda7b84 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2808855 Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 1f8e35b5 2021-04-09T12:29:22 Remove EvqBaseVertex and EvqBaseInstance qualifiers They are only used to mark angle_BaseVertex and angle_BaseInstance uniforms, but they make it complicated for the rest of the code to identify them as uniforms. Bug: angleproject:4889 Change-Id: I0c632bb595dc9a7fcda19db11ecb27539b1c33e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818144 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
David Stevens 0615bbde 2021-04-12T15:29:26 Ignore subclass when finding GPU PCI devices When enumerating PCI devices to find GPUs, only filter on the base class. This allows devices with class PCI_CLASS_DISPLAY_OTHER to be found. Bug: b/178748337 Change-Id: Ia0cd29dddc49a16428da16c1ef1b94040c1221f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2817973 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Mohan Maiya f92eb43c 2021-03-25T18:33:19 Vulkan: All builtins of gl_out needs to be considered as active All builtins of gl_out, like gl_out[].gl_Position need to be considered active as well. Bug: angleproject:5557 Test: dEQP-GLES31.functional.tessellation.shader_input_output.gl_position_tcs_to_tes Change-Id: I74aeef86be573dc8df17472b88acd521032d7921 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2786630 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 0273ea3f 2021-04-06T16:23:39 Vulkan: Use RGBA16_FLOAT for buffer format fallback ... instead of RGBA32_FLOAT. VK_FORMAT_R16G16B16A16_SFLOAT has mandatory support for vertex buffers. Bug: b/184163871 Change-Id: I7ef2933cd15e46bb984e6fd1b020d2ec15b9c60e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2807780 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott b17a9317 2021-04-09T14:39:37 Vulkan: damage rectangles must never be pre-rotated Remove the SurfaceVk::present() code that rotated damage rectangles and the feature flag that controlled that rotation. The Vulkan specification was changed so that the rectangles provided to the VK_KHR_incremental_present extension must never be pre-rotated. The spec change requires the same behavior on all platforms (just in case), even though Android is the only platform known to support rotation. FYI: the Vulkan spec change was merge request 4442. Bug: b/182930524 Change-Id: I5128fd76e718f3d964c9091830bcc5886d265543 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818826 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott fedb85b7 2021-04-07T16:25:54 Vulkan: Warn for unsupported vertex attrib format Provide both a performance warning and a debug-util label (for AGI) when loading a vertex attribute requires a format conversion. Bug: b/184355822 Change-Id: Id8cbb34f70214327e1f5cc96559e4ea66dc17889 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2801154 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Shahbaz Youssefi 795d7543 2021-04-07T11:38:37 Remove unused translator option bits Usage of SH_DONT_REMOVE_INVARIANT_FOR_FRAGMENT_INPUT is removed from ANGLE by [1], and from the validating command decoder by [2]. The flag is only ever disabled in Firefox. SH_REMOVE_POW_WITH_CONSTANT_EXPONENT is removed from the validating command decoder by [3]. Not used in Firefox. [1]: https://chromium-review.googlesource.com/c/angle/angle/+/1558678 [2]: https://chromium-review.googlesource.com/c/chromium/src/+/2810880 [3]: https://chromium-review.googlesource.com/c/chromium/src/+/2810879 Bug: angleproject:4889 Change-Id: If7d9c31c48510b1486a2285a88475b3c01a77527 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2810806 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 82cc2d21 2021-04-09T18:08:27 Really fix iOS build Complete the fix started in http://crrev.com/c/2812698 Bug: angleproject:5811 Change-Id: I9fa50b31dda116e01203d65d47dc6420391e999d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818243 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Ian Elliott af58be7e 2021-04-08T17:07:53 Add TextureType::Buffer to RecordBindTextureTypeError() Bug: b/184767884 Change-Id: I67098de503748c86f2b957db76539e73c87bd179 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818818 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Ian Elliott <ianelliott@google.com>
Yuly Novikov 5902753b 2021-04-09T15:40:53 Skip TracePerfTest.Run/native_real_gangster_crime on Linux AMD Bug: angleproject:5822 Change-Id: Id4dc458dc71fcd20f8982052fa789fb04e420c8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818241 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi ba7531da 2021-04-07T12:51:17 Add tests that use, then update, then use buffers This triggers vk::DynamicBuffer allocations in BufferVk. Bug: angleproject:5719 Change-Id: Ida855b23618497f76102e55f89ab1678f9c08753 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809856 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao e249239c 2021-04-08T09:46:48 Vulkan: Add featue flag to force highp to mediump in fragment shader. Adding feature flag that forces highp in fragment shader to mediump. It is disabled by default. You can enable it for experiment. Bug: b/184850002 Change-Id: I73980be4ad160eb1b17a3a3ecfc09f2e4aeb468c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815240 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Mohan Maiya d3c8d543 2021-04-08T14:03:51 Consider AOSP ANGLE path as well during SHA generation Account for an in-tree AOSP build of ANGLE while generating ANGLE commit SHA Bug: angleproject:5838 Change-Id: I81d6d821810544c35daf6af9b167f18a4b095e99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815241 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi a7b60f13 2021-04-08T23:13:21 Translator: Validate multi-declarations are separated Many transformations only look at the first variable in a TIntermDeclaration. This change validates that once the SeparateDeclarations transformation has been run, multi-declarations are not reintroduced. Bug: angleproject:2733 Change-Id: If5f96689cbdd28817c479dd7c495b91535f87199 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815565 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 2feb3db5 2021-04-07T11:36:06 Remove unused translator option bit SH_DONT_PRUNE_UNUSED_FUNCTIONS was only used by tests, and never used by ANGLE or chromium. Bug: angleproject:4889 Change-Id: I4926f86125e69b07e9d4d95134b7b70522e0d64f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2607491 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 4340fcfa 2021-04-02T13:59:17 Vulkan: Add command option to run app traces with minimum GPU work This CL interposes the draw call API entries. If enabled by command line option "--minimize-gpu-work", it will override all draw calls to render a single GL_POINT instead. It forces view port and scissor size to 1x1. It forces all data copy to 1 texel or 1 byte. It ignores glGenerateMipmap call. The goal is to make the frame time reflect the driver CPU performance as much as possible so that we can use it to compare ANGLE vs native GLES on the driver overhead, as well as identifying CPU hot spot. Bug: b/184766477 Change-Id: Ie8b5b585e0ed55320fed7863da37cce419acc65f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802858 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop c2075d81 2021-04-08T13:10:29 Tests: Add Call Break: Offline Card Game trace Test: angle_perftests --gtest_filter="*call_break_offline_card_game*" Tbr: jmadill@google.com,timvp@google.com Bug: b/184866238 Bug: angleproject:5837 Change-Id: I39035e62559d6a28fd1ae62ee6ffe6323d94931f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815780 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Doug Horn fc189386 2021-04-08T21:51:46 Revert "Fix multithreaded crash on draw commands on D3D11 backend." This reverts commit 8b9889bf62272fea2495331b622bde1f7c781bd0. Reason for revert: Breaks CI Original change's description: > Fix multithreaded crash on draw commands on D3D11 backend. > > A crash can occur if thread A is executing eglDestroyContext while > thread B issues a draw call, if the threads are interleaved in such a > manner that a makeCurrent occurs without triggering a change to the > global context and a dirtyAllState call. We handle that case by > explicitly making current the proper contexts in the eglDestroyContext > call. > > A test has been added that triggers a crash without this fix when > running on the D3D11 backend. In addition, all of MultithreadingTest > is enabled for the D3D11 backend. > > Test: Ran MultithreadingTest. Test exhibits a crash before this > change, and does not after this change. Also ran: > dEQP-EGL.functional.sharing.gles2.multithread.* > dEQP-EGL.functional.multithread.* > > Bug: b/183756357 > Change-Id: Ic6f76a062868b2f3b4e60d29dc087ec180bfb7cd > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798591 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Doug Horn <doughorn@google.com> Bug: b/183756357 Change-Id: I2e9d6385576330f84623d7dafbf690642fcb441f No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815242 Commit-Queue: Doug Horn <doughorn@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Tim Van Patten 0261b1d3 2021-03-31T10:48:08 PPO: Fix updating sampler uniforms between draws Updating sampler uniforms when using PPOs is currently broken, since the Context/State use the currently bound ProgramExecutable which belongs to the PPO, but the updates only happen to the Program's executable that the uniform belongs to. This change updates Program::updateSamplerUniform() to update any PPO ProgramExecutables with the updated texture information when a Program's sampler uniforms are updated, so the Context/State use the correct data. Bug: b/182409935 Test: ProgramPipelineTest31.SampleTextureAThenTextureB Test: SamplersTest31.SampleTextureAThenTextureB Change-Id: I3c4e156c6e0c781e706f321f0bd12baf484ff42a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797951 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 408c1512 2021-04-08T10:51:28 Tests: Add Bubble Shooter trace Test: angle_perftests --gtest_filter="*bubble_shooter*" Tbr: timvp@google.com,jmadill@google.com Bug: b/184844832 Bug: angleproject:5836 Change-Id: I4a729028020d7e668cd7e368a4473f4e37c55b0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815778 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 0eaaff28 2021-04-07T22:53:28 Fix iOS and Android component builds After the changes in http://crrev.com/c/2797833 Bug: angleproject:5811, angleproject:5820 Change-Id: I629978684ba4d002c296d4dcfe434b09782db4b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2812698 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Doug Horn 8b9889bf 2021-03-31T12:52:00 Fix multithreaded crash on draw commands on D3D11 backend. A crash can occur if thread A is executing eglDestroyContext while thread B issues a draw call, if the threads are interleaved in such a manner that a makeCurrent occurs without triggering a change to the global context and a dirtyAllState call. We handle that case by explicitly making current the proper contexts in the eglDestroyContext call. A test has been added that triggers a crash without this fix when running on the D3D11 backend. In addition, all of MultithreadingTest is enabled for the D3D11 backend. Test: Ran MultithreadingTest. Test exhibits a crash before this change, and does not after this change. Also ran: dEQP-EGL.functional.sharing.gles2.multithread.* dEQP-EGL.functional.multithread.* Bug: b/183756357 Change-Id: Ic6f76a062868b2f3b4e60d29dc087ec180bfb7cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798591 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Doug Horn <doughorn@google.com>
Tim Van Patten d3e1a7ff 2021-03-29T16:21:23 Reset mCurrentGraphicsPipeline in ProgramExecutableVk::reset ContextVk::mCurrentGraphicsPipeline should be reset during ProgramExecutableVk::reset() since programInfo.release() frees the PipelineHelper that it's pointing to. This has resulted in several use-after-free errors, which this CL will prevent in the future. Bug: angleproject:5624 Bug: b/182409935 Change-Id: I847bb7eb5b593c89b84f0fbbca23ea5367f5f55c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2792861 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 54dfb62c 2021-04-07T12:33:31 Make "force context check" an optional GN flag. Previously it was enabled by default in every build that includes D3D11. This would impact CPU overhead in Chrome and other targets that don't need this feature. Bug: angleproject:5828 Change-Id: Ic9d700847c72978540b66fdaf7a62f959779f2e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809855 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Doug Horn <doughorn@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki b604f843 2021-04-07T17:30:17 Tests: Add Professional Baseball Spirits trace. Skip the test on Vulkan+AMD+Linux, as it produces OpenGL errors on Mesa/RADV. Also skip the test on Vulkan+Intel+Linux, as it requires a Mesa version of 20.3.5 or higher to work. Test: angle_perftests --gtest_filter="*professional_baseball_spirits*" Bug: b/181870336 Bug: angleproject:5827 Change-Id: Ic9c5e3767cb6cf7e925cfbcd2ae5dda0d736b87c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2810788 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Cody Northrop fc28c1db 2021-04-07T15:05:14 Tests: Add Disney Tsum Tsum trace Test: angle_perftests --gtest_filter="*disney_tsum_tsum*" Tbr: timvp@google.com,jmadill@google.com Bug: b/184770989 Bug: angleproject:5835 Change-Id: I2ee74f95391fa30b0d5bfa88be5fc7dd59fd6f70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2811644 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Brandon Schade 5af6306a 2021-03-31T23:23:52 Vulkan: Update layer provoking vertex for geometry shaders Set the GS layer provoking vertex value to GL_LAST_VERTEX_CONVENTION if the provoking vertex extension is enabled. Otherwise, use GL_FIRST_VERTEX_CONVENTION as vulkan follows this convention for provoking vertex. Tests: dEQP-GLES31.functional.geometry_shading.layered.layer_provoking_vertex_* Bug: angleproject:5452 Change-Id: Ie385f3b713486c54114dbfcefd799d180701bb60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2799033 Commit-Queue: Brandon Schade <b.schade@samsung.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop d49f7351 2021-04-07T08:46:16 Capture/Replay: Ignore deletes of buffer 0 Per the spec for DeleteBuffers: > Unused names in buffers are silently ignored, as is the value zero. Haven't seen an app delete unknown buffers yet, but just hit one that deletes 0 a lot. Test: MEC for Disney Tsum Tsum Bug: b/184770989 Bug: angleproject:5835 Change-Id: I2070b753d89fdcf390203072cd7ec2c9f915089c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2811643 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill efc53d0f 2021-04-03T21:30:15 Vulkan: Refactor to descriptor offset array. This is in preparation for using dynamic offsets for other sets than the default descriptors. Bug: angleproject:5736 Change-Id: I546e688ad57a35b380f8d7f303ffc0c62773ac18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2804813 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Lubosz Sarnecki 4640dbff 2021-04-07T17:46:28 restricted_traces: Remove sha1 remains. This deletes redundant sha1 files that are not required anymore since the migration to CIPD. Bug: angleproject:5811 Change-Id: Ib1131f9cdda0b00b8f605f8b6dff6650d262ce25 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2810789 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Chris Forbes 84a62266 2021-04-01T15:18:44 Expand CL plumbing support to cover all versions The OpenCL CTS assumes that libOpenCL has symbols for all versions as it usually expects to link against the Khronos loader. Since we're not using that, we have to expose all the symbols it wants, whether we intend to implement all versions or not. All the 2.x stuff will likely remain stubs forever as it is made optional again in 3.0. In the generator scripts, work around a small issue where one function takes an array-typed parameter, which confused just_the_name and produced invalid code. Bug: angleproject:5819 Change-Id: I6c3591dc9229c5276f14ff66ee3ee6362e8bf622 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2807531 Commit-Queue: Chris Forbes <chrisforbes@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: John Plate <jplate@google.com>
Jamie Madill 68f06888 2021-03-23T16:38:50 Perf Tests: Trigger test failure on API errors. A prior refactor had broken the method we used to cause test steps to fail on API errors. This CL restores the path. We detected this when analyzing a particular GLES trace that contained invalid GLES calls. Bug: angleproject:5788 Change-Id: I26940e49cf73ce6050ea6ee274d5c5748835a167 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2782008 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill b4cb63a5 2021-04-06T19:22:32 Handle trace prerequisites. real_gangster_crime: external images avakin_life: external images hill_climb_racing: skip on Adreno Bug: angleproject:5822 Bug: angleproject:5823 Change-Id: I7c6a27eab72ba69464748928c93dda57fa8094f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809653 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop bd82de95 2021-04-07T10:11:02 Capture/Replay: Fix upload script Small fix to info level logging. Bug: angleproject:5811 Change-Id: I7c6c762e17b652eedcbde0719996532e730e2a39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809889 Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Peter Kotwicz bf0c6ae1 2021-03-09T13:21:58 Improve Angle Android gtest support This CL makes angle_test() use an angle-specific gtest launcher - AngleUnitTestActivity.java. This enables building standalone Android angle without //base Chromium-Bug: 1149922 Bug: None Change-Id: Id84f3e2bd84c5017ed1988ca07534f424ebfa596 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2745535 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2ef1e0fc 2021-04-06T23:07:41 perf_test_runner: Enable all trace tests. Will allow running "null" Mock ICD tests. Also fixes a crash running the Mock ICD with the overlay. Bug: angleproject:5736 Change-Id: I42e3943a0de00dbab3ee125f1946afd22b38fec6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809096 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 31d48df1 2021-04-07T11:15:14 restricted trace tests: Fix script. This script was not parsing the trace list properly and was running no tests. Bug: angleproject:5811 Change-Id: I925bc16ac476823ca2f850d4a9e208b9bb5deb62 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2810805 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 6a606231 2021-04-06T19:55:47 Add Mesa Vendor ID ANGLE doesn't recognize the Mesa vendor ID, leading to a crash in GetVendorString(). This is exposed when trying to capture traces of ANGLE captures with RenderDoc. Bug: angleproject:5824 Change-Id: I6c45a01dba78fa6057df26b38ca3db89cacf865e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809878 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Lubosz Sarnecki fddbc9c7 2021-03-04T20:45:01 capture: Implement capturing GLES1 vertex pointers. Implement capturing glVertexPointer, glTexCoordPointer, glNormalPointer, glColorPointer and glPointSizePointerOES using a new CaptureVertexPointerGLES1 helper function. This is done by using fixed indices for gClientArrays that are retrieved from the GLES1Renderer. Bug: angleproject:5751 Change-Id: I6c774ff21942ea3422c4c77a615f88299901c0ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2773288 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
John Plate 2489a0c1 2021-04-06T14:55:11 Fixed OpenCL headers for Windows Bug: angleproject:5761 Change-Id: I29d1fd3bf862728a3e78418a4f98219828394452 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2807717 Commit-Queue: John Plate <jplate@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 6d905c76 2021-04-01T13:58:42 Vulkan: Remove initImmutableImage and use initImage instead This is follow up of crrev.com/c/2368038. There was concern that initImmutableImage and initImage are a bit duplicated. This CL gets rid of initImmutableImage and uses initImage instead. Bug: b/181800403 Change-Id: I2c73c7ce979792cc762214f1e5ef9978eeab6212 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2800422 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 92d3912d 2021-04-01T10:49:14 Vulkan: Remove maxLevel and immutable from ImageHelper::initExternal Now that we have removed mBaseLevel and mMaxLevel from ImageHelper class in previous two CLs. The initExternal function can be modified to not pass in base/max level information. This CL also removes immutable from argument and let caller directly pass in firstLevel to it. Bug: b/181800403 Change-Id: I595c1faffabc7582af35a9578b2ecdf00c39207f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2800414 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill f34b40da 2021-04-06T17:56:48 Vulkan: Suppress draw-time push constant VVL warnings. VUID-vkCmdDraw-None-02698 VUID-vkCmdDrawIndexed-None-02698 VUID-vkCmdDrawIndirect-None-02698 VUID-vkCmdDrawIndirectCount-None-02698 VUID-vkCmdDrawIndexedIndirect-None-02698 VUID-vkCmdDrawIndexedIndirectCount-None-02698 VUID-vkCmdDispatch-None-02698 Bug: angleproject:5821 Change-Id: Ic8ca6178ce50b409ac8d256848654f43f91fae8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2808854 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao afd32d8e 2021-03-30T15:50:57 Vulkan: Remove mMaxLevel from ImageHelper class This CL removes mMaxLevel from ImageHelper class. Instead, it now uses front end's max level information when possible. Bug: b/181800403 Change-Id: Ie0f6bd11e3ca0d4ddfc98f21261396c4d71b7140 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2796153 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Tim Van Patten 4756d5e6 2021-03-22T17:28:30 Mark most draw modes valid when no program is bound gpu_angle_passthrough_fuzzer discovered a crash when glDrawArrays() is called without a program bound. This was caused by assuming it's an error to draw certain primitive types without a program bound, which is incorrect. This fix is to mark all draw modes except Patches valid when there is no program bound. Patches is handled separately by TS validation. Bug: chromium:1185267 Bug: angleproject:5483 Test: gpu_angle_passthrough_fuzzer Test: SimpleOperationTest31.DrawWithoutProgramBound Test: KHR-GLES31.core.draw_indirect.basic-mode-*adjacency Change-Id: I294078b8695e0b8f36d3b7ad3c1aa71d2a275038 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2780971 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Sunny Sachanandani 5ee3826e 2021-04-01T16:23:27 Support GL_EXT_texture_type_2_10_10_10_REV on D3D backend Bug: angleproject:5817 Change-Id: Ie572a252946f87d125f9074f2144928bb43d78b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802861 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Charlie Lao 08b7c55c 2021-03-30T13:51:04 Vulkan: Remove mBaseLevel from ImageHelper class This removes mBaseLevel from ImageHelper class. With the mFirstAllocatedLevel tracking exactly which GL level has been allocated, this cached mBaseLevel is no longer needed. Bug: b/181800403 Change-Id: I99d66c93b0c8f1bd20a5811b51f512a27927201e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2795275 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 41a34d6b 2021-04-03T16:43:58 Vulkan: Use constants for descriptor types. This will make it easier to substitute in the future. Bug: angleproject:5736 Change-Id: I0686c4c396e9f12cfb71253ccd9aa491a7942826 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2804812 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev ad55bdbe 2021-04-02T22:59:07 GL: Align emulated ETC1 handling with other backends Use emulatedEtc1 limitation to hide it from WebGL. Bug: chromium:1048244 Change-Id: Id2fd6b5d934f3caeb455e8f0fc198445e8c00084 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2803136 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Charlie Lao b5a71140 2020-08-20T17:24:21 Vulkan: Make storage actually immutable for immutable textures The immutable textures are intended to be "immutable". Right now we are still re-allocating VkImage object based on base_level and max_level. This causes a problem for rendering to a level that is beyond [base_level, max_level], which is totally within OpenGL spec. This CL makes an immutable texture always allocate from 0 to max levels that are specified by a glTexStorage call. Changing base_level will not trigger re-allocation of VkImage object. Bug: b/181800403 Change-Id: I4b4ddea17b7f6f7bfd8f36bfe8bb3a35b5c180b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2368038 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Brandon Schade 969b8f31 2021-03-25T12:40:47 Vulkan: Fix geometry shader validation with vertex shaders Added validation to disallow usage of geometry shaders without a vertex shader Bug: angleproject:5579 Test: KHR-GLES32.core.geometry_shader.api.fs_gs_draw_call Test: KHR-GLES32.core.geometry_shader.api.pipeline_program_without_active_vs Change-Id: Ieeec544d514ac772416ab0427c1c1c5058276f98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2796151 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 4cdbdf90 2021-03-25T18:54:50 Vulkan: Assign XFB location first then assign varying location Varying location is determined based on XFB location. If the transform feedback stage is Vertex, there is no problem. But if the transform feedback stage is GS or TES, previous implementation can cause shader interface mismatch. Bug: angleproject:5557 Test: KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_in Change-Id: I1ecc7913a178c9e674307c528d1bdf13aabcb665 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2784713 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Tim Van Patten 2f22157a 2021-04-05T18:19:51 Fix Restricted Traces README.md jq command The restricted traces README.md has some errors in the shell commands related to using `jq`. Bug: angleproject:5811 Change-Id: Id105d83ee041e236c3b14cd83500f08a1deb56b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2806551 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 78dde332 2021-03-29T17:31:52 Move restricted traces to CIPD. All traces are now stored as DEPS entries in CIPD. The auto-generation script generates the DEPS entries. Note that we don't include DEPS in the list of generated outputs to simplify other rollers. Also we update auto-generation to include full sources list to allow 'gn analyze' to work successfully. Usees a trace fixture for common code. This will enable a more compact trace without as much repeated code. We must land a set of re-trace traces to avoid breakage. Also includes a python script for uploading new traces to CIPD. The script first checks if traces are already present in the cloud, and if so it skips the upload. It will take a while to complete as the number of traces grows larger as it takes a few seconds per trace. The traces in this patch are also re-traced to use the common fixture code instead of including duplicated code in each trace. They now form a simple common interface and the autogenerated cpp is now simply a list of properties. I've also updated the capture/replay tests to use the simpler common entry point integration. There is less auto-generated glue code now. We now use a new serialized string query extension instead of calling directly into ANGLE's internals. Also includes a docs update. The capture/replay sample is broken and we'll need to update it in a follow-up CL. Also includes a few necessary fixes to the retracing script. Bug: angleproject:5811 Change-Id: I977bc6dc56843c8966377fc445ae97e91e17319a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797833 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Tim Van Patten 323c5f24 2021-03-29T17:47:53 Validate PPO sampler uniforms "Command & Conquer: Rivals" uses PPOs and was hitting the following assert: angle::Result ContextVk::updateActiveTextures(const gl::Context *context) { ... for (size_t textureUnit : activeTextures) { gl::Texture *texture = textures[textureUnit]; gl::TextureType textureType = textureTypes[textureUnit]; ASSERT(textureType != gl::TextureType::InvalidEnum); This is the same assert that is generated by the test ProgramPipelineTest31.DifferentTextureTypes which is currently being skipped since it's known to fail. This CL refactors sampler validation into the ProgramExecutable to allow PPOs to take advantage of the shared code and behave correctly, since the necessary data is already copied into the PPO's ProgramExecutable via ProgramExecutable::updateActiveSamplers(). This also takes advantage of the subject/observer pattern that's already established between programs and PPOs to ensure only the PPOs that the program is a part of are updated when a program's sampler uniforms are updated. Bug: angleproject:3570 Bug: b/182409935 Test: ProgramPipelineTest31.DifferentTextureTypes Change-Id: I3d34efd66dc85e7ff23a8422cb14d5f90a5f7085 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2792862 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 9b0911a0 2021-04-02T12:46:37 Add GL_ANGLE_get_serialized_context_string. This will provide a front-door entry point where we can get a serialized string representing the context state. Previously we would have to call ANGLE internal directly. This will enable a refactor of the replays to work more like standalone plugin libraries. Bug: angleproject:5811 Change-Id: I5a97d7aa3cd70c49199264c2eb7ca953943ac3c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2803391 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop 7a699140 2021-03-30T08:49:41 Tests: Add Dragon Raja trace Bug: b/184105957 Bug: angleproject:5807 Change-Id: I2a6d20a872311fb8b2c601c9a796b4f582ba5144 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2796403 Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 67e4aff5 2021-04-02T13:17:00 Fix rapidjson build error in Skia. Instead of using defines in the header, use the same approach as we do with frame capture by defining a stub "mock" cpp file. Bug: angleproject:5805 Change-Id: Ief1cb6497ddafc9656bb0e7d6a921eff3610a7fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2801695 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 88b91df1 2021-03-29T23:01:01 Capture/Replay: Support multi-digit context The code is designed for single digit contexts, i.e 1-9. We've hit our first app that uses context 10, so update the logic. Bug: b/184105957 Bug: angleproject:5807 Change-Id: Ice5facad8a86f009c0a85d184db4a20e48eff248 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2796402 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao fe6b4269 2021-03-25T14:04:41 Vulkan: Add baseLevel and generateMipmap test for immutable texture Immutable texture may implemented slightly differently in driver. This CL adds a new test that calls glGenerateMipmap after changing GL_BASE_LEVEL and GL_MAX_LEVEL. It also expands PingPongBaseLevel to test immutable texture as well. Bug: b/181800403 Test: Texture2DBaseMaxTestES3.PingPongBaseLevelImmutable Test: Texture2DBaseMaxTestES3.GenerateMipmapAfterRebaseImmutable Test: Texture2DBaseMaxTestES3.GenerateMipmapAfterRebase Change-Id: I4ccf58f588bfd5e02a6fc7439b6fe535fca8dd7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2787253 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Mohan Maiya f54191ab 2021-03-25T12:27:02 Vulkan: Add YUV G8_B8R8_2PLANE_420_UNORM support. Add support for YCbCr_420_888 and YCrCb_420_888 formats, more commonly known as NV12 and NV21. Bug: angleproject:5773 Change-Id: I1568d543c221ad110e7f199eb2ffd5df23a6134e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2787251 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao a9bcbac3 2021-03-31T15:30:42 Vulkan: Add test render to immutable texture will flush There was a bug that if there is a pending update in the immutable texture's level that is outside of [base, max], and then when you render to that level, the pending update will not get flushed. This test verify this bug. Bug: b/181800403 Test: FramebufferTest_ES3.RenderImmutableTextureWithSubImageWithBeyondMaxLevel Change-Id: Id9a5a141d26d45a3a154c331086bb64b0b094cdf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797724 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Gert Wollny b3a8033d 2021-03-31T09:34:00 JsonSerializer: use stubs when building without rapidjson Bug: angleproject:5805 Change-Id: Ibf51b8b75c3feb6efdef969effb3f50e2474c6b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2795772 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 811568a9 2021-04-01T21:29:17 Tests: Add Aztec Ruins trace Test: angle_perftests --gtest_filter="*aztec_ruins*" Tbr: jmadill@google.com,timvp@google.com Bug: b/160808198 Bug: angleproject:5553 Change-Id: I24e3ae44698c5347fa5b9412d6a3ab16fb4f5c08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2634206 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 2a0f4251 2021-04-01T15:12:55 Tests: Add League of Legends: Wild Rift trace Test: angle_perftests --gtest_filter=*league_of_legends_wild_rift* Tbr: jmadill@google.com,timvp@google.com Bug: b/184290779 Bug: angleproject:5813 Bug: angleproject:5815 Change-Id: I0e3754c88ded31234658af373449e4a90a51c2a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2800426 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Kai Ninomiya 256100b2 2021-04-02T01:45:14 Revert "Metal: Support importing external metal textures" This reverts commit 2ec3e0a1e6890da56de9dfd3da5c9f31a3f7fbb7. Reason for revert: Test suite ImageTestMetal never instantiated https://anglebug.com/5814 Original change's description: > Metal: Support importing external metal textures > > via KHR_image_base and ANGLE_metal_texture_client_buffer > > Bug: angleproject:5763 > Change-Id: I4d4a88cfbb77d8b7508b787c7fec44073d3b11b0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757811 > Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5763, angleproject:5814 Change-Id: Ia862aa37a6c914f6e21f9b3121c7c36d449475ea No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2801155 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Xinghua Cao 80305ca4 2021-03-29T17:18:52 D3D: fix uniform block alignment error If the uniform block will be translated to HLSL StructuredBuffer, in order to follow the std140 rules, we should add padding between the members if necessary. Bug: chromium:1193170 Change-Id: I75bc3538a66fc0c2a9c9ebf15fddeaab94d7a949 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2790518 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Xinghua Cao <xinghua.cao@intel.com>
Le Hoang Quyen 2ec3e0a1 2021-03-13T22:17:49 Metal: Support importing external metal textures via KHR_image_base and ANGLE_metal_texture_client_buffer Bug: angleproject:5763 Change-Id: I4d4a88cfbb77d8b7508b787c7fec44073d3b11b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757811 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 46769f82 2021-03-30T15:57:02 Don't append newline to empty InfoLog stream. Users were seeing different behavior when querying GL_INFO_LOG_LENGTH with ANGLE because ANGLE was always adding a newline to the InfoLog. Bug: chromium:1191293 Change-Id: I50f56326871cdd2f6614f5b1622257845721244c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2795164 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis e981675a 2021-03-31T21:03:24 Revert "Reland "Add support for Linux GPU info with Vulkan backend"" This reverts commit 9a8397327f9aac278f4bd1f5ab9094eec7e7798b. Reason for revert: Crashes when libpci path fails on some desktop platforms and the fallback path to Vulkan is taken. Original change's description: > Reland "Add support for Linux GPU info with Vulkan backend" > > This is a reland of 5c09c1f882f15e1a77577f1a62d861355aac90a4 > > Extra change: Add new ANGLE_HAS_VULKAN_SYSTEM_INFO compile > variable for GetSystemInfoVulkan() in linux platform. > > Original change's description: > > Add support for Linux GPU info with Vulkan backend > > > > 1. Add support for Linux GPU info with vulkan backend: for > > dev board without PCI support, try vulkan backend to get > > GPU info. > > 2. Fix getVulkanInstance() issue when loading non-exist lib: > > return NULL instance if open lib failed. > > > > Bug: angleproject:5717 > > Change-Id: I03c11da25a8787496d098f6c9d6b4c53701383e4 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2734375 > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > Commit-Queue: Jamie Madill <jmadill@chromium.org> > > Bug: angleproject:5717 > Change-Id: Iaaab8f512b6ec1d524d7ebb3b4252fec3cfe7dc3 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739097 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5717 Bug: chromium:1192586 Change-Id: I04f13fd4bf1d57a3ed510cd3bdf743066de96523 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798394 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Le Hoang Quyen 4ac6ea2a 2020-07-18T21:05:37 Metal: implement ANGLE_device_metal extension. Allow user to query internal MTLDevice used by Metal back-end. Bug: angleproject:2634 Change-Id: I9b0a6eaad8c634069f43e47d5f4f88f61da35f74 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757810 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 3c98bb6a 2021-03-31T21:32:42 Reland "Link angle_util statically into angle_system_info_test" This reverts commit 91b6c3b1a2b12f6c834238ed680d82c3de741cd0. Reason for revert: fixing compilation on android-archive-dbg Original change's description: > Revert "Link angle_util statically into angle_system_info_test" > > This reverts commit 804226dffd9b35f88c4a64672fea2cd29c2bc6e8. > > Reason for revert: breaks compilation on android-archive-dbg. > See https://ci.chromium.org/ui/p/chromium/builders/ci/android-archive-dbg/7802/overview (seems the egl symbols can't be found?) > > Original change's description: > > Link angle_util statically into angle_system_info_test > > > > Otherwise ANativeActivity_onCreate is not found in component build. > > > > Bug: angleproject:4483 > > Change-Id: Ic4a9f66e5b7d150a3740529f866de9995550ea68 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2689370 > > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > > Reviewed-by: Jamie Madill <jmadill@chromium.org> > > TBR=ynovikov@chromium.org,jmadill@chromium.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > TBR=ynovikov@chromium.org > Bug: angleproject:4483 > Change-Id: I7f16f77979f7d8b1e5e5f61e48b379b910f3a743 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2697067 > Reviewed-by: Corentin Wallez <cwallez@chromium.org> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bug: angleproject:4483 Change-Id: I9e6621a2f10041cc8f191d877e48710d977e8237 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798399 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jonah Ryan-Davis e1ff28d4 2021-03-12T13:35:42 GLX: Always call XSync on creation/destruction of WindowSurfaces ANGLE was checking that it had opened the connection before calling XSync upon initialization. However, clients may pass in a connection and ANGLE must sync after creating a GLXWindow with the connection. This wasn't happening and was causing issues in Chrome. Bug: chromium:1172803 Change-Id: Ieb2cbfaa226f6d066030f42d8e25b1d9c34779f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2757507 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 0973dd68 2021-03-31T11:11:26 Add a gl-d3d-only target for the translator Chrome's validating command decoder links statically with the ANGLE translator. This change adds a target that builds the translator with only gl and d3d support for this purpose. This will prevent chrome from linking against glslang because of the Vulkan backend. As a bonus, it will reduce the binary size of Chrome by stipping the Vulkan and Metal translation and transformation codes. Bug: angleproject:5810 Change-Id: I5673bad53817ff2aa8486622ff2c64b44c77240f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797511 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao fd3b8faf 2021-03-30T11:55:49 Vulkan: Split fragment shader from ColorAttachmentAndAllShadersRead Even though it is not common usage case that the same texture is used as attachment and texture, but aztec ruins is using it. And earlier version of gfxbench's T-Rex also running into this. So performance is still important. This CL splits the texture from fragment shader usage case out so we can have lighter barrier. Bug: angleproject:5780 Change-Id: Ifdcbfe24488fdac62826c5af6ecfbb05f87c0499 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2795269 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 259ead0d 2021-03-30T19:41:33 Enable messenger_lite trace on SwiftShader. For re-tracing. Bug: angleproject:5811 Change-Id: I1b58b33e0641cbd6a6aba10f936b76b5a9eca589 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797831 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi aac1b494 2021-03-26T21:52:30 Vulkan: Remove spam output regarding pipeline cache The warning regarding pipeline cache not having been found in the blob cache is of little utility. Between emitting it once and not at all, concensus was on the latter. Bug: angleproject:4722 Change-Id: I6d6b2758035e8c5e880b77c5f5be84772cb58a18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2788812 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chong Gu be52ca8a 2021-03-31T01:52:56 [Fuchsia] Use manifest fragments for Cr-Fuchsia binaries Bug: chromium:1180168 Change-Id: Ie3f2bd6bb79d971549b0422a9f1da7e713a54cc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2796542 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten ae937aae 2021-03-19T20:10:42 Detach separable shaders This effectively reverts the following CL: Vulkan: Don't detach separable shaders in Program::detachShader() https://chromium-review.googlesource.com/c/angle/angle/+/2084399 Bug: angleproject:3570 Bug: b/182409935 Test: ProgramPipelineTest31.DetachAndModifyShader Change-Id: Id69f732d1d4f3eea70b2de8c008452878eaf1682 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2776267 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten fe3a9ffb 2021-03-17T18:05:40 Support linking PPOs without attached Shaders The application "Command & Conquer: Rivals" uses the following pattern: // Create and link VS, save binary data glCreateProgram() glAttachShader() glLinkProgram() glGetProgramBinary() // Create and link FS, save binary data glCreateProgram() glAttachShader() glLinkProgram() glGetProgramBinary() ... // Create VS, load binary data glCreateProgram() glProgramBinary() // Create FS, load binary data glCreateProgram() glProgramBinary() ... glUseProgramStages(GL_VERTEX_SHADER_BIT) glUseProgramStages(GL_FRAGMENT_SHADER_BIT) glBindProgramPipeline() Later, when issuing the draw command that uses the PPO, the PPO must be linked with the Programs that were loaded via binary data. Those Programs don't have any Shaders attached, just linked. This CL adds support for linking Programs without attached Shaders. Bug: b/182409935 Test: ProgramPipelineTest31.ProgramBinary Change-Id: Ic5a4776e1374322665f45fbbcbf955838d093d02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770685 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 86a86a7d 2021-03-30T11:57:44 Vulkan: Temporarily use GOOGLEX instead of EXT for MSRTSS Until the driver implementation completes, use a different name for the unreleased extension (tagged with GOOGLEX instead of EXT). Bug: chromium:1088005 Change-Id: I0b948c9c82825681ab130ae3dd91026ea6cb57cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2795041 Reviewed-by: David Reveman <reveman@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Rafael Cintron 416eb8a3 2021-03-25T13:27:33 Check return value of allocateResource instead of asserting allocateResource can fail if the device has been removed or there is no more video memory. Hence, the return value needs to checked for errors instead of simply asserting that the result doesn't equal angle::Result::Stop. Bug: chromium:1192771 Change-Id: I794f288f16917ef50e45f6f3ab60ee3ebc5941d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2787249 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Tim Van Patten e3b9dbef 2021-03-17T18:01:02 Update PPO's executable when attached program is re-linked When a program that's being used by a PPO is successfully re-linked, the PPO's ProgramExecutable needs to be updated. This takes advantage of the subject/observer pattern that's already established between programs and PPOs to ensure only the PPOs that the program is a part of are updated. Bug: b/182409935 Test: ProgramPipelineTest31.ModifyAndRelinkShader Change-Id: Idcc11e7e819b4a9bef02bdd71afc8ea58111acc6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770684 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 0af8cfa7 2021-03-17T17:43:03 Reland "Save/Load missing members" This is a reland of b2e76cf58fc012b068aab4716a432bb8951e93e3 Always call saveLinkedStateInfo() so we fill in the necessary values with valid data for monolithic programs also. Original change's description: > Save/Load missing members > > There are several class/struct members that are missing when a program > is serialized/deserialized. This leads to errors when attempting to link > programs that have been deserialized. For example, when drawing with a > PPO that contains programs which were created with glProgramBinary(). > > This CL adds saving/loading the missing members. > > Bug: b/182409935 > Change-Id: I637c6cd8c174acd6da8d51433893323a32e5d7c0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2770683 > Commit-Queue: Tim Van Patten <timvp@google.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> Bug: b/182409935 Bug: angleproject:5793 Change-Id: I07ca8f5dfed8c0a9eac3a0defb1602d2ba021c5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2782189 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>