src


Log

Author Commit Date CI Message
Peng Huang b9fd47b8 2022-08-12T10:55:49 Not use Android TLS slot for chromium In the profile, GetGlobalContext() & GetValidGlobalContext() have extra overhead for checking angle::gUseAndroidOpenGLTlsSlot. Since angle::gUseAndroidOpenGLTlsSlot is always false for now, so add a build flag to disable it for chromium build. In the profile, with angle_use_android_tls_slot = false, GetValidGlobalContext() is reduced from 0.153% to 0.044%. Bug: chromium:1336126 Change-Id: Id5e1752b0a03289fb299e8de2ed6e962e35291c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827955 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 64c652d7 2022-08-12T18:14:39 Use stdout instead of (default) stderr in logging.StreamHandler Currently logging output appears before stdout on bots, makes logs so confusing as subprocess logs get out of order with logs from python. Using StreamHandler(stdout) seems to be the common practice in other python scripts in code search. Note: subprocess's stderr is redirected to stdout: https://crsrc.org/c/third_party/angle/src/tests/py_utils/angle_test_util.py;drc=2de8bb42a9ef93dfafe476e7dc81643285fa7ef1;l=92 Bug: angleproject:7299 Change-Id: I825f16d9c479f33a280d8fdbafb8297cda0c18b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827957 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Faye Zhang 4c941149 2022-08-12T11:42:07 External Texture Support In MEC Bug: angleproject:4964 Change-Id: I5cfbadf515a30fb20d75b2d745fdecdafa12268f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812378 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Faye Zhang <ffz@google.com> Commit-Queue: Faye Zhang <ffz@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi 02d79c32 2022-08-12T11:21:04 Skip kotor trace on Swiftshader due to flakiness After changing the driver uniforms to push constants, the kotor trace became flaky on Linux/Swiftshader. In this CL, the flaky test is skipped. Bug: angleproject:7565 Change-Id: Ia3deb1344ce2dfb8cec443d197b0f95788a12599 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3829907 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Peng Huang 44791792 2022-08-12T00:13:45 Use angle::FlatUnorderedSet for ImageSibling::mSourcesOf As my test with Chromium on Android, ImageSibling::mSourcesOf only contains one item, so change it to angle::FlatUnorderedSet with default size 2. Bug: chromium:1336126 Change-Id: Ie1ba3ebb195170ad5c9f4713b599a91de5052702 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828444 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang a9fac249 2022-08-12T07:01:42 Use FixedVector for Framebuffer::mDirtyColorAttachmentBindings Bug: chromium:1336126 Change-Id: Ie997af106de09468c8520187190a857db099dff9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3829144 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org>
Peng Huang afdd5106 2022-08-11T21:14:23 Use angle::FlatUnorderedMap in Display.cpp Bug: chromium:1336126 Change-Id: I57d97d37749de2abbba88b6558bde31fa8346764 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3828442 Commit-Queue: Peng Huang <penghuang@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Eddie Hatfield 2ebd5100 2022-08-11T10:43:32 Add gl::Context as a parameter to Shader::resolveCompile This prepares us to access the Context's shader cache in resolveCompile in the next commit. Bug: angleproject:7036 Change-Id: I7995c54b290a5a48f0c8985cb56ea0048598ab2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827642 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 61a17ba9 2022-08-11T11:23:10 Use angle::FlatUnorderedSet for ImageState::targets In mose cases, chrome only needs 1 or 2 targets for an EGLImage, so using angle::FlatUnorderedSet with 2 default size instead of the std::set for targets. Bug: chromium:1336126 Change-Id: Ieff3cfbd5d020fda3aaecb162ddb354def14d962 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827681 Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Kyle Piddington 58392791 2022-04-07T16:14:12 Translator: Fix crashes with monomorphizing loops Monomorphize functions crashes when trying to deep-copy a while loop, and a continue statement. Null check these values before performing a copy, as this is still valid AST syntax. Bug: angleproject:7190 Change-Id: I822c0aa062ed844f86aa2b603899d73cbd48255e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3573079 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Charlie Lao 4c6f7d8e 2022-08-10T15:21:57 Vulkan: Never stage update for EGLImage EGLImage could be shared between contexts in different share groups. If we stage any update in the ImageHelper for such EGLImage, then you may run into threading bugs when two textures are trying to flush out the staged update at the same time. There is no evidence showing we are running into this issue, but this CL forces this requirement. Bug: b/169868803 Change-Id: Ie26542225705ee4638ca1b3cf3cc5af499685137 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3824159 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Rafael Cintron c9360ccb 2022-08-10T16:05:49 Reflect TextureD3D label updates with storage object When developers change a label with the KHR_debug extension, TextureD3D calls TextureStorage::onLabelUpdate. However, onLableUpdate was still using the out of date member variable (mTextureLabel) that was set in the constructor. This change adds a setLabel method to the TextureStorage class which properly updates the texture label member variable. Calls to onLabelUpdate now retrieve the most up-to-date label. This change also renames TextureStorage::mTextureLabel to mKHRDebugLabel to make it more clear which label was being stored. Bug: angleproject:7569 Change-Id: I6bc65c35dfb2237b5da88a6ed0e2d872a14857ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3825357 Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Chris Dalton 4a636cdd 2022-07-20T22:44:30 Require all PLS formats to consume exactly 4 bytes of storage D3D 11.0 UAVs only support R32_FLOAT, R32_UINT, R32_SINT formats. EXT_shader_pixel_local_storage explicitly states that all PLS variables consume exactly 4 bytes. ESSL images can only have both read and write access if their format is r32f, r32i, r32ui. (We were able to circumvent this via aliasing, but it was a huge source of bugs.) There is a large precedent for only supporting 4 bytes of storage in the capabilities we use for PLS, so this CL removes support for all PLS storage formats that are not 4 bytes. It also implements an "R32" mode for PLS, that does manual packing and unpacking of r32* image formats. If the application wants larger formats, it can always define multiple PLS planes and piece them together. Next up we ought to be able to support rg16* types with more packing/unpacking. With aliasing gone, and with a bit of tweaking, the PLS tests now pass on the Pixel 4 GLES bot. Bug: angleproject:7279 Bug: angleproject:7388 Bug: angleproject:7524 Bug: angleproject:7527 Change-Id: I6b8f62c2428ade6cb5413e33360d734e55dda0eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3782579 Reviewed-by: Stephen White <senorblanco@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Charlie Lao badfeecd 2022-08-10T14:38:43 Vulkan: Destroy fb1 should not affect fb2 with same attachments If two FBOs has the same attachments. they will share the same VkFramebuffers. Destroy one fbo should not cause trouble for the other fbo. Bug: chromium:1351170 Change-Id: I032da8cc12eb8556c3e325c8fd7a3de9974ae909 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3824302 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Chris Dalton fa3d7d5c 2022-08-05T00:57:40 Make PLS coherent on Vulkan Uses the VK_EXT_fragment_shader_interlock extension to make the shader image implementation of PLS coherent on Vulkan. This extension is supported on AMD, Apple, NVIDIA, and Intel. Bug: angleproject:7279 Change-Id: Ic0253eb20932eb6be0b1f433ba454e48b57be2f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3813816 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Kyle Piddington aef9603f 2022-08-02T18:30:08 Separate Struct declarations earlier Metal translator backend asserts with compound struct definitions. Move SeparateCompoundStructDeclarations before SeparateCompoundExpressions. This change does revert some changes for angleproject:6386, but the tests fixed there continue to pass. Bug: angleproject:6489 Change-Id: I6adc606ac0b14453eb5e3e90f6501bf02c2d2768 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3806616 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Gregg Tavares <gman@chromium.org> Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Peng Huang 4cab7f38 2022-08-10T20:33:07 Fix EGL_ANGLE_program_cache_control for eglCreateContext EGL_CONTEXT_PROGRAM_BINARY_CACHE_ENABLED_ANGLE is an attribute for creating EGL context, but ANGLE reads it from mAttributeMap which is not the attribs passed to eglCreateContext(). Bug: chromium:1336126 Change-Id: Id3ea1955f927a7e051285c79b590dcf1f11f22ed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3823621 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 87ed2c9d 2022-08-11T11:19:17 TestSuiteTest: Generate more unique result file names. Speculative fix for flaky runs of TestSuiteTest. Flakes appear to read the results of other tests suggesting rand is not unique enough to protect against tests generating the same results file. Bug: chromium:1352134 Change-Id: Icadf64c557e23e6d87fd18aa60aa48373ecec9fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827144 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Roman Lavrov 3d0faa02 2022-08-09T16:48:06 Remove workaround affecting --list-tests --gtest_filter=X. One of the multiple workarounds added in https://crrev.com/c/3062240. It makes `--list-tests --gtest_filter=X` behave as if it was just `--list-tests`. Not sure why this was necessary, bots appear to work without it?.. Could be something that changed since that CL? Bug: angleproject:7508 Change-Id: I9988add40ddf3168e00cea2739e5a9209f633161 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3821374 Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 876da4ae 2022-08-09T22:30:24 Vulkan: Query support for VK_KHR_imageless_framebuffer In preparation for using it. Bug: angleproject:7553 Change-Id: I579af8ce2c0dd1d58bf750ee494e06a071b798fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3823620 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi f7d4c614 2022-03-30T23:33:27 Vulkan: Use VK_EXT_primitives_generated_query This Vulkan extension implements OpenGL's primitives generated query. The heavy lifting in ANGLE's implementation was done when this query was emulated with pipeline statistics query. This change simply switches pipeline statistics query usage to this dedicated query when available. Bug: angleproject:5430 Change-Id: I5d2c7d64e4627bcbd33d428d6a7c836b1129e5fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3813815 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov 6d0452b7 2022-08-10T13:34:29 Fix ANGLE_HAS_HISTOGRAMS following crrev.com/c/3817602 Bug: angleproject:7299 Change-Id: I1d6f97e61dfdbea04009cc08a17344a59e438e51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3823618 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 493b5aff 2022-08-09T14:57:24 Vulkan: Workaround ARM bug with stencil write mask Bug: angleproject:7556 Change-Id: I0aa17c178071cc15d8ee15f700b0c4932819c72a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3821367 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Roman Lavrov dc82ff15 2022-08-08T16:06:13 Add config angle_maybe_has_histograms to angle_perftests_common. ANGLE_HAS_HISTOGRAMS wasn't consistently defined in compilation targets. I was working on a prototype and ran into crashes due to an inline function in TestSuite (where this class is used) getting invalid offsets in some cases due to this :-O Shabi: """ angle_source_set makes something the equivalent of a temporary .a, so objects are not recompiled for every target that links to it """ Also change ANGLE_HAS_HISTOGRAMS to =1 or =0 as Yuly suggested so that we can check if it's defined in the header to avoid inconsistency. Bug: angleproject:7299 Change-Id: I907184a6ca2bc673f5bffc473b584d78625a11c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3817602 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Geoff Lang 408c5a56 2022-08-09T09:07:41 Mark FormatPrintTest as potentially uninstantiated. Vulkan is not an available backend on iOS. Bug: angleproject:5417 Change-Id: I92afff13bc10a1b6a3faa51a1620fd250972cab0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3819902 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 2c351351 2022-08-07T22:31:40 Vulkan: Don't break render pass on read-only buffer updates When uploading to a buffer that is in use by the GPU, we either acquire a new buffer and copy the contents over, or stage the update and do a GPU copy. Ignoring all other conditions, this decision was made based on whether a small or large part of the buffer is being updated; small updates where staged. However, if the current render pass uses the buffer in read-only mode, the staged update would break it (to apply the update). In this change, this situation is detected and the acquire-and-update path is chosen even for small updates. Bug: angleproject:7534 Change-Id: Ie2c0989449dcc7d03695a003cf6f353920f8fb65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812566 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 8050079c 2022-08-08T16:35:10 Vulkan: Remove basicGLLineRasterization * Removed basicGLLineRasterization from the ANGLE features. * Removed "viewport" from the extended driver uniform classes. Bug: angleproject:2830 Bug: angleproject:7558 Change-Id: I289b1e2b536a6bd0c1ab24844835221e617a296d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3818165 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Greg Thompson 52719c9f 2022-08-05T14:23:24 [fuchsia] Migrate angle_end2end_tests to component framework v2. Bug: chromium:1256503 Change-Id: I28d76dfa721fd6a65e029833050140c487e8006d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812043 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Juan Muraira <jpmuraira@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Greg Thompson <grt@chromium.org>
Shahbaz Youssefi 6f80f0f0 2022-08-06T02:29:19 Translator: Clean up the compile flag passing interface Historically, compile flags were sent to the translator as a bitmask. Recently, we were getting close to running out of bits. Additionally, direct-to-metal work had started to introduce constants to be passed to the translator, which were misplaced in ShBuiltInResources and Caps. Recent work on Pixel Local Storage adds even more constants, aggravating the situation. In this change, the interface to passing compile flags is reworked. A struct is passed (instead of a bitmask) that has one bit for each flag. This can be indefinitely extended. Additionally, the constants needed by metal and PLS are also placed in this struct. In turn, the backends can set these options directly, and don't have to hack them into Caps to further get hacked into ShBuiltInResources. Bug: angleproject:7559 Change-Id: If93f1e1b8818ad3a0ac708ab04ab93b4b397d114 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812562 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8474a95e 2022-08-05T22:15:04 Translator: Don't validate structs on non-root nodes Struct validation needs to know about structs that may have been defined outside the scope of the node, so this validation (similar to variable and function call validation) is disabled when validation a subtree of the AST. Bug: angleproject:7531 Bug: b/239207278 Change-Id: Id6dcee041a40f09f0c36a9ef3bfc238433b69c58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812047 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Amirali Abdolrashidi 7fe0694c 2022-07-14T16:42:30 Vulkan: Use push constants for driver uniforms * Updated the driver uniforms so they would be defined as push constants in SPIR-V. Their data would be updated via pushConstants() when handling the driver uniform dirty bits. * Updated TOutputVulkanGLSL to be able to generate the push constants as required. * When handling the driver uniform dirty bits, we no longer allocate a buffer. * Removed the driver uniform descriptor set from the pipeline layout. * Removed the binding-related functions and flags for the driver uniforms. * In invalidateGraphicsDescriptorSet(), DIRTY_BIT_DESCRIPTOR_SETS is used instead of DIRTY_BIT_DRIVER_UNIFORMS_BINDING. (Same for invalidateComputeDescriptorSet()) * DIRTY_BIT_DRIVER_UNIFORMS_BINDING is replaced with DIRTY_BIT_DRIVER_UNIFORMS in other places. * Removed mDriverUniform and DriverUniformsDescriptorSet from ContextVk. * Added mSupportedVulkanShaderStageMask to RendererVk, which is used in creating the pipeline layout and updating the push constants. * Added a TODO note for driverUniformsDescriptorSetIndex. Bug: angleproject:6858 Change-Id: I91037d378528962a816b12ff3f21249ee17b7652 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3782570 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Chris Dalton c554b92b 2022-08-08T10:08:33 Apply memory qualifier decorations in SPIR-V Bug: angleproject:7279 Change-Id: I9390261aa572fe4b39152a6f7bdd2b100b34f616 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3818162 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 2cf9b1d6 2022-08-05T10:25:27 Encapsulate prevTexture pointer in a class * Encapsulated mPrevUploadedMutableTexture from ShareGroupVk into the new TextureUpload class. Bug: chromium:1346808 Change-Id: Ied52071d4e7f624fc2c497c4086b2589b840561d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3813032 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Peng Huang 52b18311 2022-08-08T07:51:21 Use angle::HashSet to replace std::set in Display.h The std::set uses heap allocation for each item, so change it to angle::HashSet for ContextSet, SurfaceSet, ThreadSet, ImageSet, StreamSet, SyncSet and EglDisplaySet. angle::HashSet is a flat set, all items are in one memory allocation. It should has better performance for small size set container. Ideally, it is better to use angle::FlatUnorderedSet which doesn't need heap allocation at all in most cases. However FlatUnorderedSet doesn't support common std container methods. So we can only use angle::HashSet for now. Maybe improve angle::FlatUnorderedSet in follow CLs. Bug: chromium:1336126 Change-Id: I18b3afd8722d222183c88f876b792c1af23bc195 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3816401 Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi f5de8e01 2022-08-05T10:23:37 Vulkan: Disable texture upload if texture sharing * Disabled mutable texture upload in cases of display-level texture sharing. Bug: chromium:1346808 Change-Id: Ia54496521d151ca7f273845fb40c56b5322470af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812386 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 2de8bb42 2022-08-03T18:15:52 Converge run wrappers into angle_test_util.RunTestSuite Bug: angleproject:7299 Change-Id: Ifa882028a6f49579b4a9c6893053cb3bee8d83fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808302 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Peng Huang a2ad517f 2022-08-06T07:54:16 Replace std::vector with angle::FixedVector in FramebufferState. Using std::vector causes heap allocation for all new framebuffers, so change it to angle::FixedVector. Bug: chromium:1336126 Change-Id: I2e059324d14d59ba2a42b2bb4cd5c569a439a87a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812563 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org>
Peng Huang 6491396c 2022-08-06T19:49:37 Use angle::FlatUnorderedMap as storage for AttributMap AttributeMap was using std::map which allocates storage from heap it is not ideal for small map like attribute map. So replace it with angle::FlatUnorderedMap with 2 default size (Chromium creates a lot of gl fence with 2 attributes on Android). Bug: chromium:1336126 Change-Id: I129fe603df2fd475ae1b0e35b63d4d0171bbae09 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812565 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 6b248a68 2022-08-06T10:20:41 Use angle::FastVector in ImageEGL::initialize to avoid heap allocation Bug: chromium:1336126 Change-Id: I40349c618b648f3a96c19b2f2b032275af90086b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812564 Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 0c8c4ca0 2022-08-02T19:53:55 Remove not used mImageLastUseFences in ImageVk Bug: chromium:1349118 Change-Id: I6db245198ae2ebdbb73add47f522583f0a50e217 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3806559 Commit-Queue: Peng Huang <penghuang@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 0d5ba4dc 2022-08-05T19:43:54 Minor performance improvement Use angle::FixedVector to replace std::vector in SyncEGL::initialize() Use std::move() to avoid copy in Display::destroyInvalidEglObjects Bug: chromium:1336126 Change-Id: If4c13babb14ed9995caf3c3dd3cfc362124b24cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812561 Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 928c5016 2022-08-04T12:28:12 Vulkan: Fix garbage collection vs outside-RP-only flush In https://chromium-review.googlesource.com/c/angle/angle/+/3379231, an optimization was implemented such that the excessive recorded texture uploads would get flushed early and submitted. This caused a use-after-free bug in the following situation: * Draw with pipeline A * Delete A <--- this puts A in the Context garbage list * Upload a lot of data At this point, the flush threshold could pass and the commands recorded outside of the render pass up to this point would be submitted. Associated with this submission was the current garbage, including pipeline A. However, the render pass that uses pipeline A is still not submitted. Now if after some time the render pass is still open, but the "completed commands" are checked (another set of uploads causing another submission, a query status check, etc), the garbage can be cleaned up. When the render pass closes next and is submitted, the implementation attempts to use the pipeline, which is already deleted. In this change, outside-render-pass-only submissions no longer reference the current garbage. This has the side effect that the temporary buffers used for uploading texture data won't be released early. A future optimization may want to separate the garbage list in ContextVk to render pass and outside render pass garbage. Bug: chromium:1337538 Change-Id: I4d31edc53916785d44420f4d6b4b2578ca3996e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812555 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi d5308602 2022-08-05T15:46:29 Test for ARM bug with dynamic stencil write mask Bug: b/240755039 Change-Id: If7025f3b2450735a099da3cc11524f778f2ac654 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812559 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 146329b8 2022-08-05T15:51:18 run_perf_tests: Allow passing flags to the test. Bug: None Change-Id: I0260bafd91d371d653248ea278b80bd579a12a5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812560 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Faye Zhang 123bd542 2022-08-04T12:56:28 Add Variable Initialization in Base Instance Tests Bug: angleproject:7547 Change-Id: Ic01b933fb1e0291b42c48a6b5bf2ed3bd9267c0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3811873 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Faye Zhang <ffz@google.com>
Jonah Ryan-Davis de5c6c79 2022-08-03T13:56:11 Remove unused ANGLE histograms This CL removes the following histograms: GPU.ANGLE.D3DCompileMS GPU.ANGLE.DisplayInitializeMS GPU.ANGLE.ProgramCache.CacheResult GPU.ANGLE.ProgramCache.LoadBinarySuccess GPU.ANGLE.ProgramCache.ProgramBinarySizeBytes Bug: chromium:1317194 Change-Id: Iad01cff591df83c015bc79fe4e7b7c094357f02a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3807767 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Chris Dalton 861149c7 2022-08-03T15:43:29 Make PLS coherent on desktop OpenGL Implements ANGLE_shader_pixel_local_storage_coherent using fragment shader synchronization extensions: NV_fragment_shader_interlock INTEL_fragment_shader_ordering ARB_fragment_shader_interlock With these extensions combined, we get coherency all 3 big desktop vendors: NVIDIA, Intel, and AMD. Bug: angleproject:7279 Change-Id: Ie20b251fb772898e89994b799640f1f2806581eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3773990 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Peng Huang c0818a18 2022-08-02T16:20:21 Protect ImageState::targets with a std::mutex The ImageState::targets could be accessed cross shared groups, so it is not protected by share context lock, so we have to protect it with this std::mutex. Bug: chromium:1349118 Change-Id: I886eed7a7405d01f01f1806b4d71db79d449e421 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804750 Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org>
Jamie Madill 9f0cec14 2022-08-03T15:59:45 dEQP: Fix X11 display config name. The name is "x11", not "window", which is a surface type. Bug: angleproject:7396 Change-Id: Ic2ad1f215729bd28d29e921c1712121b9b86e4af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808294 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org>
Eddie Hatfield c54ed790 2022-07-21T10:38:47 Get desktop GL conformance tests to build The target for these tests is angle_deqp_gl_tests. Bug: angleproject:7533 Change-Id: I290822671d99da020f9a6a1f02bee43987644bf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3766435 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Kenneth Russell 448e2275 2022-07-21T16:40:59 (Reland) [Metal] Disable ANGLE's Metal backend on older GPUs. Disable creation of EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE displays on: iOS: MTLGPUFamilyApple2 and older (A8 and older GPUs) macOS and Mac Catalyst: MTLGPUFamilyMac1 and older This is a partial integration of this recent WebKit fix: https://bugs.webkit.org/show_bug.cgi?id=242764 Refactored to eliminate duplicate copies of this code between libANGLE and the test suites. Changes since initial landing: - Explicitly link the angle_common static library against Metal.framework for the definition of MTLCreateSystemDefaultDevice, which was missing on the iOS Simulator. Fixed: angleproject:7514 Change-Id: I25028a298f1235db5b717ac6a1999552121d60c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3806252 Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Bo Liu 57ccd974 2022-06-30T16:47:52 Make limit_max_texture_size_to_4096 webgl only Bug: chromium:1319451 Change-Id: I7dedeb8d738c1070e650650e893d57984a9e7956 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3739439 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 88b05d3c 2022-08-03T15:21:00 Use globals in android_helper to simplify flow. Explicit .Initialize(suite_name) call to detect Android Track suite (apk) that was installed. We use the same package com.android.angle.test in multiple apks (eg system info and perftests) so keeping track of which one is currently installed avoids the need to take care of it manually (with PrepareTestSuite). Bug: angleproject:7299 Change-Id: I4b96f0fb24e38fc42d3814fb0eeda5aae527de5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3808292 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Hailin Zhang 553b1334 2022-07-28T23:33:28 Vulkan: fix default msaa framebuffer resolve issue. Bug: b/239217726 Change-Id: I826aad7495814e0a178a586c4cfd5943278cddac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3793304 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill e88cab29 2022-08-03T14:28:08 Revert "Skip multi draw indirect tests on Linux/Intel/Vulkan." This reverts commit 351a2a6b658860abfc9402509b132abc6917a58f. Reason for revert: Not needed. Original change's description: > Skip multi draw indirect tests on Linux/Intel/Vulkan. > > This test suite seems to have become flaky. > > Bug: angleproject:7549 > Change-Id: Ib8b8c22fb6b228137fe2e5ca19b00d70ce1fee25 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804749 > Auto-Submit: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bug: angleproject:7549 Change-Id: I2a4bf67b0f693d2c7d3492e08bd3f904f153b83a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3807755 Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Roman Lavrov 33c09ba9 2022-08-02T19:01:59 Fix local gold runs broken by previous refactoring. This path isn't triggered on bots. Bug: angleproject:7550 Change-Id: Ie63f8d28a6c830d1b518f916b1398e991f58884f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804753 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Roman Lavrov 05d86e06 2022-08-02T18:30:52 Add temporary logging of gold_session.Initialize stdout. Normally looks like: Loaded 1549 known hashes ... Suspecting that in failure cases it's going to result in something different. Bug: angleproject:7550 Change-Id: I0190d4f679fc4161fc36a3008ba2e7d6d4764277 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804752 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Jamie Madill 351a2a6b 2022-08-02T16:14:08 Skip multi draw indirect tests on Linux/Intel/Vulkan. This test suite seems to have become flaky. Bug: angleproject:7549 Change-Id: Ib8b8c22fb6b228137fe2e5ca19b00d70ce1fee25 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804749 Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Roman Lavrov 19c6600c 2022-08-02T12:45:57 Refactoring: move a few common functions to angle_test_util. Drop ScriptTest, Jamie says no longer needed. Bug: angleproject:7299 Change-Id: I32bdd1d70701f63b578b4f79512868daac3ad520 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3805381 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Cody Northrop 13da8b97 2022-08-02T08:52:06 Tests: Add Octopath Traveler trace Test: angle_perftests --gtest_filter="*octopath_traveler*" Bug: angleproject:7543 Change-Id: I6187058f99c1598051a118ac65e0121e9c35ac9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3805739 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill c0f2a5ac 2022-08-02T15:54:40 Skip TimerQueriesTest flakes on NV/Linux. TimerQueriesTest.Timestamp/ES2_Vulkan_AsyncCommandQueue TimerQueriesTest.TimeElapsed/ES2_Vulkan_AsyncCommandQueue Bug: angleproject:7548 Change-Id: I3bd4ccd8241ae230ef074e1c453d4f4d880daf47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804748 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 245198f1 2022-08-02T15:37:34 Skip flaky tests on Linux/Vulkan. FramebufferTest_ES3.SurfaceDimensionsChangeAndFragCoord/* Bug: angleproject:7546 Change-Id: I911ce59305f1ec6bdc2a8ec2b6d9247c60526b4c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804747 Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill f62b4b94 2022-08-02T15:19:59 Skip flaky image load/store tests on Win/D3D11. Bug: angleproject:7345 Change-Id: I64e752b8959c0fb726ee8fd8ed733bdb469ca511 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804746 Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill c29100a8 2022-08-02T14:07:40 Skip flaky test on SwiftShader. MultithreadingTestES3.ThreadCWaitBeforeThreadBSyncFinish Flakes on both Win and Linux SwiftShader. Bug: angleproject:7419 Change-Id: Ia5f4ca3ee1bb6aedbcd41fa6d4cefe4b872cae6d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804744 Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Jamie Madill <jmadill@chromium.org>
Eddie Hatfield 6e6f3e6d 2022-07-29T11:13:24 Convert GLenum to string for failed trace prereq message Bug: angleproject:5784 Change-Id: I14bc01afe97a2475d8b0f278840a279b663da7db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3794304 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Eddie Hatfield <eddiehatfield@google.com>
Yuly Novikov 8eaa0ccf 2022-08-02T12:03:21 Revert "[Metal] Disable ANGLE's Metal backend on older GPUs." This reverts commit cc2095d259222de434af06ce8515f17449a8f66d. Reason for revert: breaks rolling into Chromium https://ci.chromium.org/ui/p/chromium/builders/try/ios-simulator/1234241/overview Original change's description: > [Metal] Disable ANGLE's Metal backend on older GPUs. > > Disable creation of EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE displays on: > iOS: MTLGPUFamilyApple2 and older (A8 and older GPUs) > macOS and Mac Catalyst: MTLGPUFamilyMac1 and older > > This is a partial integration of this recent WebKit fix: > https://bugs.webkit.org/show_bug.cgi?id=242764 > > Refactored to eliminate duplicate copies of this code between libANGLE > and the test suites. > > Fixed: angleproject:7514 > Change-Id: I00dd1096bc8e72516f3f77fffcb7d4a886d6f2e4 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780876 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Kenneth Russell <kbr@chromium.org> Change-Id: If1e78ebc0c8e12a1fa0954d91bdd59fbd734251f No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3804879 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Kenneth Russell cc2095d2 2022-07-21T16:40:59 [Metal] Disable ANGLE's Metal backend on older GPUs. Disable creation of EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE displays on: iOS: MTLGPUFamilyApple2 and older (A8 and older GPUs) macOS and Mac Catalyst: MTLGPUFamilyMac1 and older This is a partial integration of this recent WebKit fix: https://bugs.webkit.org/show_bug.cgi?id=242764 Refactored to eliminate duplicate copies of this code between libANGLE and the test suites. Fixed: angleproject:7514 Change-Id: I00dd1096bc8e72516f3f77fffcb7d4a886d6f2e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780876 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Alexey Knyazev c517463a 2022-07-28T00:00:00 Add NoUnclampedBlendColor limitation Although ES 3.0 and ES 2.0 with floating-point color buffer extensions must support unclamped constant blend color, some drivers clamp it anyway. To let applications know the effective behavior, ANGLE state management has been expanded to simulate what the OpenGL ES driver is doing. So far, this bug has been confirmed only on Adreno GPUs. Unconditionally enabled this limitation on D3D9 as it cannot support unclamped blend color by design. Bug: angleproject:7536 Change-Id: I7e28a5553e79669d8482d48c6e79bdd811971ade Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3791350 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Charlie Lao 81554b66 2022-07-27T16:53:03 Vulkan: Reduce Framebuffer dirtyBits for swapchain only changes For window system framebuffer, the change to it is very limited. Most time it is only swapchain image changes. Right now we are also setting depth/stencil buffer dirty and processing layer count update and color mask and blending update when only color image changed. This CL avoids setting depth/stencil dirty bit for swap chain image changes. It also avoids color mask and blending update (they still gets updated for draw buffer change or draw franmebuffer binding changes). Bug: b/240475351 Change-Id: I0697a38d5939187244d67f01c0bc53fc28e11664 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3789471 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 606a9239 2022-07-31T21:01:31 Tests: Add Ni no Kuni trace Test: angle_perftests --gtest_filter="*ni_no_kuni*" Bug: angleproject:7507 Change-Id: I129a9f053dab24f277c42d22876732b83e4de933 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3802565 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com>
Charlie Lao dc77621b 2022-07-29T16:46:40 Vulkan: Fix RefCountedDescriptorPoolHelper leak DynamicDescriptorPool::mDescriptorPools really owns the pool, make it std::unique_ptr instead of plain c++ pointer to automatic handle object destruction. Bug: chromium:1346946 Change-Id: Iec2fff920d624cd983d314086cc08832c6c61984 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3795008 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov d6acced1 2022-07-25T18:11:20 Add flag --save-screenshots (implied by --screenshot-dir). --screenshot-dir and --render-test-output-dir behave differently on Android. --screenshot-dir is passed as is and therefore means a device directory, and --render-test-output-dir has special handling in Android wrappers that substitutes this flag with a temporary location on the device then copying files to the local directory set by this flag. Cody pointed out that there are many docs referring to --screenshot-dir so behavior should be preserved. So --save-screenshots is implied when this flag is set. Otherwise, it defaults to false, so --render-test-output-dir just on its own won't save screenshots, only when --save-screenshots is added as well. This also allows to produce other artifacts without necessarily producing screenshots by using --render-test-output-dir without --save-screenshots. Bug: angleproject:7299 Change-Id: Ib1a268ddeb7eba9f120e3f37a429ea0e4bbe2411 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785296 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Charlie Lao a0eff729 2022-07-26T13:14:36 Vulkan: Reduce descriptorSets usage from UtilsVk Every time you get into UtilsVk to do conversion or emulation, it allocates a new descriptorSet. Right now it relies on the pool eviction to recycle the pool when no more free descriptorSet in the pool. This end up with quickly pushing the pool's size to maximum, and more than one pool been created. This CL intends to recycle individual DescriptorSet for the UtilsVk instead of the entire pool. With asphalt_9 while sitting in the menu, after this CL UtilsVk only uses one pool of size 16 (it really only uses 2 descriptorSets), versus before the CL you see two pools of size of 512. This CL also removes descriptorPoolBinding in UtilsVk since these are not really used and we are updating mUse for every allocation, which should prevent it from eviction when it should not be. Bug: b/235523746 Change-Id: I1d49455ffeb4b2a9678402e16d5e694c530c9d7a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788566 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Yiwei Zhang 8f9e15cc 2022-07-26T00:22:38 Vulkan: avoid excessive log for FORMAT_IMPLEMENTATION_DEFINED This is a widely used format for camera stack. The current logging is too verbose when there's camera-gpu interop. Bug: b/240097793 Test: no more WARN logs for camera gpu usage Change-Id: Ie841182f1f67212cc1c479c5a9109d4bd1190e87 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3786931 Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com>
Yuxin Hu 427086a9 2022-07-22T10:45:24 Vulkan: remove SpirvVaryingPrecisionFixer Bug: angleproject:7488 Change-Id: I957839bd8fbdf1cd849d5ed7e9edd65fd1a5f2cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780874 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Nicolas Capens cbab97d4 2022-07-29T11:03:21 Remove needless IOSurface alignment validation IOSurface buffers are copied instead of imported directly into Vulkan, since they're not guaranteed to satisfy alignment and padding requirements (see minImportedHostPointerAlignment and vkGetMemoryHostPointerPropertiesEXT). So we don't need to check its alignment as part of eglCreatePbufferFromClientBuffer() validation. Bug: angleproject:7538 Change-Id: Ic449e7cdd60e62cd3009854897ffcd369e32fc7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3792178 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Auto-Submit: Nicolas Capens <nicolascapens@google.com>
Lingfeng Yang 3ccaddf9 2022-07-26T10:02:01 Vulkan: EXT_YUV_target: layout(yuv) support This CL adds support for layout(yuv) in the shader, via a new decoration. The SPIRV decoration enum number is WIP and depends on final spec. The decoration is only active if enabled via a flag in ShaderLang, which will be connected with the feature supports_yuv_target in a future CL. Bug: b/223456677 Change-Id: I29a724e689d1336a3e42c83d7afa944a11e07353 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3765890 Auto-Submit: Lingfeng Yang <lfy@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com>
Shahbaz Youssefi f000215d 2022-07-26T21:16:14 Vulkan: Optimize transform feedback buffer tracking Prior to this CL, if transform feedback was active at the time of render pass closure, its buffers were cached in ContextVk. Later, these buffers were used to close the render pass if they were used for any other reason (such as vertex attribute). However, this meant that the render pass could close unnecessarily if transform feedback was ended right after the render pass is closed. The closure of the render pass was an awkward place to cache the used transform feedback buffers (because at that point, the buffers are actually no longer used). Instead, this change makes sure that the buffers are cached when transform feedback buffers are first used by the render pass, and the cache is cleared at the end of the render pass. Bug: angleproject:4622 Change-Id: I31c0a1e20d48f2e261e2cf37adb0a46db683e6fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788309 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Peng Huang 3dd6f5f7 2022-07-24T18:49:44 Reland "Disable share context lock for Chromium" This is a reland of commit e1741f4ba7dae4f6f09829b9152360544c912d1f Original change's description: > Disable share context lock for Chromium > > Bug: chromium:1336126 > Change-Id: I93b4e738a8816e6b318e5d5823bc9130f17deb37 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3781368 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Peng Huang <penghuang@chromium.org> Bug: chromium:1336126,angleproject:7537 Change-Id: I15811bc2fef0ba22f6ac13d51c72ed96b2a12507 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3792046 Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 5db09e9b 2022-07-21T10:45:12 Vulkan: Try allocate from existing DescriptorPool before create new When we allocate a new descriptorSet, right now we only look at current bound pool or the last pool, or allocate a new pool. We never look at the other pools for the possibility of allocation. This is likely due to we never free descriptorSet in the past. With the recent CLs, we now release invalid descriptorSets when texture or buffer gets deleted or re-specified. This opens up opportunity to allocate from other existing pools before allocating a new pool. This CL changes the allocation logic to add the pass to iterate over existing pools for allocation before allocating a new pool, thus reducing the number of descriptorSetPools. This CL also consolidates DynamicDescriptorPool::getOrAllocateDescriptorSet()'s actual descriptorSet allocation logic with DynamicDescriptorPool::allocateDescriptorSet(). This CL also moves mEmptyDescriptorSets from ProgramExecutableVk to DynamicDescriptorPool so that we will only have one empty descriporSet per pool instead of per program. Bug: b/235523746 Change-Id: I012346acce17f785ee6683ec55fdf21be00ea1a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780847 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 08df7ce4 2022-07-28T10:59:30 Test Runner: Disable --bot-mode on Fuchsia. This flag is a bit hard to get going because of the differences in the Fuchsia system APIs. Disable it explicitly for now to avoid issues when we switch bot configs. Bug: angleproject:7312 Change-Id: I47cd038b198f265a6b60893faf6f50f02be49fda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3792163 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Steven Noonan e7affd55 2022-06-23T13:49:18 d3d11: allow selecting render device by PCI vendor/device ID Similar my change in the Vulkan backend, we can match by PCI vendor/device ID in D3D11 device selection. Bug: angleproject:7460 Change-Id: I6f7bff1dad5b589357693bf747157b2dacb1f69f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3720734 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Auto-Submit: Steven Noonan <steven@valvesoftware.com> Reviewed-by: Steven Noonan <steven@valvesoftware.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Peng Huang e3701f90 2022-07-19T15:19:50 Remove WARN() in getPixelFormatInfo() This WARN() cause log flood on Android while playing youtube videos in Chrome. Bug: angleproject:7509 Change-Id: I42e046d5b0908ef7d3ca0704c27236198026a637 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3773873 Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 80022b96 2022-07-26T21:07:04 Vulkan: Fix xfb buffer redefine to smaller size In 89e11878b275b15735eaf273ababfa6fd43a2e3d, a use-after-free bug was fixed where glBufferData redefined a buffer, leading to a change in storage. This was only tested for the case where the new buffer was larger than the old buffer. When the new buffer is smaller however, another issue remains where the buffer size as cached by the transform feedback object used the old object's size. This is worked around in this change, with a fix for the real issue (that the buffer state is updated after calling into the backend instead of before) coming up. Bug: chromium:1345042 Change-Id: I6c9e9344705fefe49926a14cf6ce73ce84305872 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788308 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuly Novikov fb97cfcd 2022-07-27T11:49:41 Roll chromium_revision 1201dfbc62..85c57e6023 (1027387:1028671) Skip failing dEQP-EGL.functional.image.api.create_image_gles2_android_native_* tests Change log: https://chromium.googlesource.com/chromium/src/+log/1201dfbc62..85c57e6023 Full diff: https://chromium.googlesource.com/chromium/src/+/1201dfbc62..85c57e6023 Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/f14f6d206b..faf85adb8b5817fd75744e98c450f2b9e46ed7a2 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/fe57e98eeb..af18ab7c6f * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/eb79671bfb..6c8f712bc4 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/b954e3e656..039323b945 * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/955e2ff5fb..2a908eebb7 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/1f497ac0b0..844e20e207 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/13bb7f697c..fabdc7fefb * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/8f37aa7698..d76d39e8c8 * third_party/android_sdk/public: tRoD45SCi7UleQqSV7MrMQO1_e5P8ysphkCcj6z_cCQC..-VRKr36Uw8L_iFqqo9nevIBgNMggND5iWxjidyjnCgsC * third_party/android_sdk/public: gMHhUuoQRKfxr-MBn3fNNXZtkAVXtOwMwT7kfx8jkIgC..9lGp8nTUCRRWGMnI_96HcKfzjnxEJKUcfvfwmA3wXNkC * third_party/android_sdk/public: g7n_-r6yJd_SGRklujGB1wEt8iyr77FZTUJVS9w6O34C..RSI3iwryh7URLGRgJHsCvUxj092woTPnKt4pwFcJ6L8C * third_party/android_sdk/public: lL3IGexKjYlwjO_1Ga-xwxgwbE_w-lmi2Zi1uOlWUIAC..eo5KvW6UVor92LwZai8Zulc624BQZoCu-yn7wa1z_YcC * third_party/android_system_sdk: oSfDIvHlCa6W0gS79Q5OOfB9E4eBg3uAvi3BEDN21U0C..RGY8Vyf8jjszRIJRFxZj7beXSUEHTQM90MtYejUvdMgC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..84a7988038 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/debf6402b3..2cd48234f1 * third_party/fuchsia-sdk/sdk: version:9.20220720.2.1..version:9.20220726.2.1 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/3d8d88e8bb..184bc29dd8 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/15fc47eb8b..8c41d19417 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/8e7aadf254..8f4235f7ff DEPS diff: https://chromium.googlesource.com/chromium/src/+/1201dfbc62..85c57e6023/DEPS Clang version changed llvmorg-15-init-15652-g89a99ec9:llvmorg-15-init-17529-ga210f404 Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/3d8d88e8bb600789ba3e798f38ff314521aac524..184bc29dd86c3994a02b4f3feca125ffe785319c/scripts/update.py Bug: chromium:1347817 Change-Id: I6b80fc411a6986d116e121921fcb5223c1964184 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3789322 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Steven Noonan b8e741d2 2022-06-23T13:36:17 Vulkan: allow selecting render device by PCI device/vendor IDs The EGL_ANGLE_platform_angle_device_id extension is deliberately vague about the meaning of "device ID high" and "device ID low", stating it's platform-specific. We can use these for representing the PCI device/vendor IDs that can be discovered via various (OS-specific) external means. Bug: angleproject:7460 Change-Id: Iff462687749e815fa074ef8ff392b6730ef46fa8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3720733 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 0dc29af9 2022-07-26T19:16:16 Context: Also disable ASTC on mState when emulation is disabled. GL_KHR_texture_compression_astc_ldr was incorrectly exposed on the GL_EXTENSIONS string in cases where no native support was available and the emulation was not built. To prevent this the context must disable it on mState.mExtensions in addition to mSupportedExtensions. Bug: angleproject:7415 Change-Id: I1161e460b0b224a03557053b5804c104e270f388 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788402 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Jamie Madill b968b6c9 2022-07-26T14:34:41 Test Utils: Get executable path from command line. This simplifies the process fork test and will allow the test to work on Fuchsia. Bug: angleproject:3161 Change-Id: I5bb5424c44957f2faef1970b3cbc5e52b8aff630 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788297 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Stephen White 3f59c285 2022-07-12T17:29:36 D3D11: implement image load/store format reinterpretation. Reinterpretation requires all UAV textures to be in a TYPELESS format. Implement an ensureUnorderedAccess() that converts the texture's storage to one with the D3D11_BIND_UNORDERED_ACCESS flag, which, prior to this change, was set unconditionally for all textures in an >= ES 3.1 context. If this flag is set at D3D texture creation time, use the appropriate TYPELESS format. Implementation uses a BindFlags struct, which subsumes the existing renderTarget for clarity. Factor out the relevant bits of ensureRenderTarget() into an ensureBindFlags() helper function, and make ensureRenderTarget() and ensureUnorderedAccess() wrappers around it. Add the corresponding typeless formats to the texture format table. Bug: angleproject:7501, angleproject:7520 Change-Id: Id21b9db3229aceca121da6ba6507704417034ec4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780588 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Jamie Madill 83dfd839 2022-06-07T11:57:07 dEQP: Allow running against system GL. Bug: angleproject:7396 Change-Id: I6d6231ebfdea0f1df483c5764b086b14f8384d3d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3692266 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 5c5a14c3 2022-07-19T16:03:08 Tests: Add Battle Of Polytopia trace. Test: angle_perftests --gtest_filter="*battle_of_polytopia*" Bug: angleproject:7529 Change-Id: Ib9ad862fa5d2a3cd761bdbf42b2b91c2fe63f99b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780915 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 4e046256 2022-07-25T17:17:28 Translator: Fix deep copy of loops and branches Fixed nullptr dereference when the loop or branch doesn't have an expression. Bug: angleproject:7518 Change-Id: Ib888634e409dcbc27ef060bb46017e8911097eef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785294 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sungyong Choi 313884ce 2022-06-30T08:49:08 Vulkan: Move dmabuf extensions support Moves dmabuf support functions from DisplayVkWayland to DisplayVkLinux to support other linux winsys. Bug: angleproject:7480 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Change-Id: I2a36557815b8e5c4bab7ec1d9248989345e536c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3735863 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Shahbaz Youssefi 54da2952 2022-07-25T16:00:47 Remove suppressions added due to VK_ATTACHMENT_UNUSED bug This was affecting old Qualcomm-based phones only. Bug: angleproject:3423 Change-Id: Id18c95f8df562d572177035a8cb88327d9f2d200 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785292 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 88dd868f 2022-07-25T06:44:38 FrameCapture: Fix and optimize multi-context reset Follow on to fd89020c This CL: - Fixes missing eglMakeCurrent calls when switching contexts to reset container state - Optimizes when those calls are made, so we only call eglMakeCurrent in Reset when we absolutely have to - Moves MaybeResetContextState to the end, after any per-context reset work has been done Test: Asphalt 9 MEC Bug: angleproject:4599 Bug: angleproject:7507 Change-Id: I52912aa13e3a11735ed3ec93080a21e9cbff113a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3784728 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi be708446 2022-07-25T15:24:52 Vulkan: Remove the bindEmptyForUnusedDescriptorSets workaround Only applied to older Qualcomm-based phones. Bug: angleproject:2727 Change-Id: I37a611e2ff79d898eff9401467407543f3c690b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785290 Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Jamie Madill 673a41ae 2022-07-25T12:41:40 dEQP: Isolate headers in tcuANGLEPlatform.h. Refactoring change only. Will simplify future dEQP changes. Bug: angleproject:7396 Change-Id: I034bf5c421902c53f279e01b0727490909da3990 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3785286 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 8e63c6e8 2022-07-25T15:10:11 Remove suppressions for tests which pass with Intel Mesa 20.0.8 Bug: angleproject:3616, angleproject:3614, angleproject:2782 Change-Id: I220d71593270164f77bda92f533608e431c6c9b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780159 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev df879d49 2022-07-22T00:00:00 Return INVALID_VALUE for online BC compression As per discussion with OpenGL ES WG, implementations are allowed to generate INVALID_VALUE when online BC compression is not supported. Bug: angleproject:6441 Change-Id: I0e282c970f1e03afbc590dc9a46b8ce38d869691 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3780923 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Peter Kasting 4a14030d 2022-07-22T10:09:53 Avoid streaming a wide string to a (narrow) ostringstream. This stream overload was removed in C++20. Bug: chromium:1284275 Change-Id: I73188e09cc93c7bd475ab1536dac74e92ea12605 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3781611 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peter Kasting <pkasting@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Peter Kasting <pkasting@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>