Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update merge #1

Merged
merged 2,123 commits into from
Nov 1, 2020
Merged

Update merge #1

merged 2,123 commits into from
Nov 1, 2020

Conversation

ChristopherHX
Copy link
Member

No description provided.

Kyle Griffiths and others added 30 commits October 13, 2020 21:19
Adds the PowerVR VendorID into the accepted vendor list, and prevent
basic GL line emulation from being ran on PowerVR hardware as it's
not required on those platforms, yet causes CTS failures when enabled.

Fixes a variety of line failure tests across OGLES3/3.1 test suites
seen on PowerVR hardware.

Bug: angleproject:5145
Change-Id: I7383f1c09d026b8d33e6fbda66418c5f8b7f90bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2462094
Reviewed-by: Geoff Lang <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
Commit-Queue: Shahbaz Youssefi <[email protected]>
When releasing buffer/image to external, the necessary barrier was
recorded on the "outside render pass command buffer".  However, if the
resource was used in the current render pass, that render pass should
have closed before this, otherwise the barrier was reordered before it
which is incorrect.

Bug: chromium:1136367
Bug: chromium:1135792
Bug: angleproject:5002
Change-Id: I237d5e6bb46189a4ce61c2f4602e356955cc87a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2468456
Commit-Queue: Shahbaz Youssefi <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Charlie Lao <[email protected]>
This dramatically speeds up Android shards that use batches of
hudreds of tests. Because ANGLE already has the test list, it no
longer needs to call GTest with an enourmous gtest_filter.

Bug: angleproject:5164
Change-Id: I28fee2f36c50006f2a35a4dcd90f44f8ebe4f78c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2468464
Commit-Queue: Jamie Madill <[email protected]>
Reviewed-by: Yuly Novikov <[email protected]>
These produce low memory warnings on Quadro when run multi-process.

Bug: angleproject:5162
Change-Id: Ibef3a8ea9119d923a538181387c30562d503bcb6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2466782
Commit-Queue: Jamie Madill <[email protected]>
Reviewed-by: Yuly Novikov <[email protected]>
Bug: angleproject:5158
Change-Id: I3c29adf36f6f31f23bf662c2d7d6c4d05d8e9028
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2466781
Commit-Queue: Jamie Madill <[email protected]>
Reviewed-by: Courtney Goeltzenleuchter <[email protected]>
Reviewed-by: Yuly Novikov <[email protected]>
The perFrameWindowSizeQuery feature was enabled for Arm, based on a
faulty dEQP test, that says that it is resizing a window on Android,
but doesn't actually.  The Arm team has verified that this feature is
no longer needed for Arm/Mali, and so it is being removed.

Bug: b/170733470
Bug: angleproject:5150
Change-Id: I8b9d7cb45983b6bbf8d52d37bf5b237f2c3e4fe4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2468176
Reviewed-by: Courtney Goeltzenleuchter <[email protected]>
Reviewed-by: Ian Elliott <[email protected]>
Commit-Queue: Ian Elliott <[email protected]>
This makes interoperation with Chromium tests easier. For instance when
triggering tests with scripts when using sharding. And also using the
run/ wrapper scripts instead of run_gtest_angle_test.

Bug: angleproject:5158
Change-Id: Ia5b1f94c02a081caf576615175791fff4e0d3fb3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2464030
Reviewed-by: Courtney Goeltzenleuchter <[email protected]>
Reviewed-by: Yuly Novikov <[email protected]>
Commit-Queue: Jamie Madill <[email protected]>
Bug: b/167275320
Bug: angleproject:4836
Change-Id: Iedbe1dfc8562c4c28477bf6a5a298620fcd48a67
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2468457
Commit-Queue: Shahbaz Youssefi <[email protected]>
Reviewed-by: Charlie Lao <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
clearImmediatelyWithRenderPassOp is removed and the draw path is used
for the scissor.  That path was added to avoid creating a large number
of graphics pipelines due to the scissor state.  This is now done by
using dynamic state for scissor in the draw path for clear.

Running the following dEQP tests without and with dynamic state for
scissor:

    dEQP-GLES3.functional.fragment_ops.depth_stencil.stencil_ops.*

the number of graphics pipelines is reduced from 95392 to 16.

Bug: angleproject:4617
Bug: angleproject:4836
Change-Id: Ib373d8cd23ca2b67e6fd26aa2a1103f281f7e473
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2463985
Commit-Queue: Shahbaz Youssefi <[email protected]>
Reviewed-by: Charlie Lao <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
Bug: b/167275320
Bug: angleproject:4836
Change-Id: Ic5da615931f13e1ce34f486f163d4f28c8af9287
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2468458
Commit-Queue: Shahbaz Youssefi <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Charlie Lao <[email protected]>
gl::DrawBuffersVector was used to hold the clear values, but that didn't
have enough space for depth/stencil clear values if MAX draw buffers
where used and cleared.

The added test in this change exposes the vkCmdClearAttachment Qualcomm
bug (previously presumed to affect color clears only) with depth/stencil
buffers, so the workaround is expanded to avoid vkCmdClearAttachment
entirely.

Bug: b/159808300
Change-Id: I27c58d9b534bce0bdd27cc53fc64e139f1363c1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2455166
Commit-Queue: Shahbaz Youssefi <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Courtney Goeltzenleuchter <[email protected]>
https://chromium.googlesource.com/chromium/src.git/+log/a6b7134c40b1..20d60a8527d7

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-angle-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Changed dependencies
* build: https://chromium.googlesource.com/chromium/src/build.git/+log/28f65f7116..4af5c075ce
* testing: https://chromium.googlesource.com/chromium/src/testing/+log/225e4dc4d6..a8c1307999
No update to Clang.

Bug: angleproject:5124
Tbr: [email protected]
Change-Id: I82d32eb5b80daa8d26491b4399289e00283c3f65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2470543
Reviewed-by: angle-autoroll <[email protected]>
Commit-Queue: angle-autoroll <[email protected]>
This makes trigger.py use the same code paths as the bots
when they trigger standalone ANGLE tests.

Fixes launching tests via trigger.py on Linux because of
using the 'windowed_test_launcher' method that used xvfb.

Bug: angleproject:5114
Change-Id: I073631270b5b69aac8f3f0f6378bd71f951ce8e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2464425
Commit-Queue: Jamie Madill <[email protected]>
Reviewed-by: Courtney Goeltzenleuchter <[email protected]>
Reviewed-by: Yuly Novikov <[email protected]>
Use vkGetPhysicalDeviceSurfaceCapabilitiesKHR() instead of
ANativeWindow_getWidth() & ANativeWindow_getHeight().  The former
gives the proper size of the window, where the latter gives the size
of the device's display (which is the default size of a window).

Bug: b/168327817
Change-Id: I524116b7b07bf2ec7637fe2874806c5eb8318171
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2464920
Reviewed-by: Tim Van Patten <[email protected]>
Reviewed-by: Courtney Goeltzenleuchter <[email protected]>
Commit-Queue: Ian Elliott <[email protected]>
Some users on Linux/Wayland are reporting issues rendering Chrome
unusable when ANGLE exposes GLX_OML_sync_control. This CL adds a new
feature to ANGLE to disable this extension, but for now we leave the
feature off by default, so users can test it via command line flags.

Bug: chromium:1137851
Change-Id: I804ea935fe441c4794b93ee62ca335e78b9e453a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2468216
Reviewed-by: Geoff Lang <[email protected]>
Commit-Queue: Jonah Ryan-Davis <[email protected]>
…ision)

https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/9d4b40ae645e..f121d1252b2a

2020-10-13 [email protected] best_practices: Fix bug introduced in refactor

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-validation-layers-angle-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: [email protected]
Change-Id: I2f2e559f16ca493d079fc13ef5f48aa16bd6c265
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2470736
Reviewed-by: angle-autoroll <[email protected]>
Commit-Queue: angle-autoroll <[email protected]>
Add support for GL_OES_texture_cube_map_array to the Vulkan backend
if the underlying ICD supports creation of of cube array ImageViews

Bug: angleproject:3584
Test: dEQP-GLES31.functional.fbo.color.texcubearray.*
Change-Id: I636cbf347d718abfc1600119b312578370b8e02e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437989
Commit-Queue: Shahbaz Youssefi <[email protected]>
Reviewed-by: Shahbaz Youssefi <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
These two tests are causing the driver internally to OOM.

dEQP-GLES3.functional.multisample.fbo_max_samples.constancy_sample_coverage_inverted
dEQP-GLES3.functional.multisample.fbo_max_samples.constancy_both

Bug: angleproject:5162
Change-Id: I6960b4b171efb2f74b42a82d8ecafce1edb167c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2469958
Commit-Queue: Jamie Madill <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
If depth/stencil is not loaded, and it's not written to during the
render pass, then treat it as if it was invalidated so storeOp can be
set to DONT_CARE and its corresponding resolve attachment (if any)
removed.

This is especially useful for MSRTT as a resolve attachment is added at
the start of render pass, and this optimization will give it a chance to
undo that if depth/stencil was not actually used in the render pass.

This situation can arise for example if a render pass is created for the
sole purpose of clearing color.

This change includes a bug fix for missing depth/stencil on*Access in
the UtilsVk blit/resolve path.

Bug: angleproject:4836
Change-Id: Ifc8eea3e6ffb3eb4bba19f03d1358f151ec69c44
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2453468
Reviewed-by: Charlie Lao <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
Commit-Queue: Shahbaz Youssefi <[email protected]>
Simplified and made faster for devices that return
VK_ERROR_OUT_OF_DATE_KHR (and VK_SUBOPTIMAL_KHR).

Bug: b/168327817
Change-Id: Iec3dad8d528eb7d3645062a6736b397514432829
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2464921
Commit-Queue: Ian Elliott <[email protected]>
Reviewed-by: Tim Van Patten <[email protected]>
Reviewed-by: Courtney Goeltzenleuchter <[email protected]>
These tests are failing for unknown ordering reasons:

dEQP-GLES2.functional.fbo.render.texsubimage.after_render_tex2d_rgba
dEQP-GLES2.functional.fbo.render.texsubimage.between_render_tex2d_rgb
dEQP-GLES2.functional.fbo.render.texsubimage.between_render_tex2d_rgba

Bug: angleproject:5169
Change-Id: I25e592f6aa50cf80b0d60f04085c42cb1169dd31
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472517
Commit-Queue: Jamie Madill <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
dEQP-EGL.functional.swap_buffers_with_damage.resize_after_swap.*
dEQP-EGL.functional.swap_buffers_with_damage.resize_before_swap.*

See issue for more details.

Bug: angleproject:5170
Change-Id: Id0376dcb26514dffc09a28e9ad7b2ade8d50b8c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472518
Reviewed-by: Jamie Madill <[email protected]>
Commit-Queue: Jamie Madill <[email protected]>
Consolidate error info into a structure in preparation of threading
work. Also preserves the meaning of the data until it's rendered to a
string for consumption by GL.

Bug: b/154030730
Change-Id: I8cde7133c817d77fdb117efc1c11edc94f615da3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2468537
Commit-Queue: Courtney Goeltzenleuchter <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Tim Van Patten <[email protected]>
…etrieved"

This reverts commit 4dae43d.

Reason for revert: VVL rolled with the fix.

Original change's description:
> Vulkan: Disable vkCreateDevice-physical-device-features-not-retrieved
>
> Disable
> UNASSIGNED-BestPractices-vkCreateDevice-physical-device-features-not-retrieved
> while the Khronos issue is investigated.
>
> Bug: angleproject:5149
> Change-Id: I680cf264d6356cf219826902d7fdf2304e27ebab
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2461475
> Commit-Queue: Tim Van Patten <[email protected]>
> Reviewed-by: Jamie Madill <[email protected]>
> Reviewed-by: Shahbaz Youssefi <[email protected]>

[email protected],[email protected],[email protected]

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: angleproject:5149
Change-Id: I0a338983ac0804d5bb0e41e592f177372be66d5c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2471556
Reviewed-by: Jamie Madill <[email protected]>
Commit-Queue: Tim Van Patten <[email protected]>
https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/c2553a315f5c..5c64374dd6cb

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/spirv-tools-angle-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: [email protected]
Change-Id: Ia678f7bcac2750fc489f639e151f56b77468d8c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2470737
Reviewed-by: angle-autoroll <[email protected]>
Commit-Queue: angle-autoroll <[email protected]>
Disables the following tests due to them failing on the ARM-based Mac
DTKs:

* GLSLTest_ES3.GLVertexIDIntegerTextureDrawArrays/ES3_OpenGL
* OcclusionQueriesTest.MultiQueries/ES2_Metal
* TransformFeedbackTest.TwoUnreferencedInFragShader/ES3_OpenGL
* WebGL2CompatibilityTest.CopyMip1ToMip0/ES3_OpenGL

Bug: chromium:1132295
Change-Id: I557e3c978d884e9beeafb4f43676271edcd36a87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472532
Reviewed-by: Jamie Madill <[email protected]>
Commit-Queue: Brian Sheedy <[email protected]>
Commit-Queue: Jamie Madill <[email protected]>
Bug: angleproject:3593
Change-Id: I6d3a55a3112f5f9b20ef33c859a60b2952bfbc2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2444209
Commit-Queue: Mohan Maiya <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Shahbaz Youssefi <[email protected]>
GLES1ConformanceTest.Blend/ES1_Vulkan

Bug: angleproject:5171
Change-Id: I2f3bb0d53676ed54e1fb74816e7c93a8e44042a3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472536
Reviewed-by: Jamie Madill <[email protected]>
Commit-Queue: Jamie Madill <[email protected]>
This CL adds support for dumping the VMA stats string, which can be
given to VmaDumpVis.py to visualize the allocations that the VMA has
performed.

To enable dumping the string, set:
RendererVk.cpp
  rx::kOutputVmaStatsString = true

Copy the desired JSON output into a text file, and pass that to
VmaDumpVis.py:
python3 \
  third_party/vulkan_memory_allocator/tools/VmaDumpVis/VmaDumpVis.py \
  -o stats.png stats.txt

The legend for the visualization is available at:
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/tree/master/tools/VmaDumpVis

Bug: angleproject:2162
Test: Manual verification
Change-Id: Ic8c1002805dd57e594df724bcf1cdbc1d1599a3e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472525
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Charlie Lao <[email protected]>
Commit-Queue: Tim Van Patten <[email protected]>
Previously GL_NONE were being used, causing
nativegl::SupportsNativeRendering to think the bound texture wasn't
renderable, and TextureGL::copySubTextureHelper (called via
CopyTexSubImageCHROMIUM) to use CPU readback. This affected the WebGL
DrawingBuffer's premultiplyAlpha:false code path.

Thanks to geofflang@ for the patch.

Bug: chromium:1136613
Change-Id: Iee650156983f880fa802b3a17d3989f5a9322e91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2472535
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Geoff Lang <[email protected]>
Commit-Queue: Kenneth Russell <[email protected]>
jonahryandavis and others added 23 commits October 29, 2020 19:31
This would include "angle:angle_common" which is not a directory.

Bug: b/171848471
Change-Id: Ic4f03b174a4cd4b81470862b3ed79a58b415ad04
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2507630
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Geoff Lang <[email protected]>
Commit-Queue: Jamie Madill <[email protected]>
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/483a71c5130e..e69b9b7294af

2020-10-25 [email protected] Merge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master
2020-10-25 [email protected] Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master
2020-10-24 [email protected] Notice of withdrawal of Vulkan CTS 1.1.6.x
2020-10-24 [email protected] Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master
2020-10-23 [email protected] ANGLE waiver for GLES XFB array element capture
2020-10-23 [email protected] Fix depth/stencil resolve compatibility tests
2020-10-23 [email protected] Fix validation errors in AHB tests
2020-10-23 [email protected] Add create and destroy object tests for the VK_EXT_device_memory_report extension
2020-10-23 [email protected] Add tests for clamping of depth values
2020-10-23 [email protected] Implement custom border color tests

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: [email protected],[email protected]
Change-Id: I2cd46cab1b48ccd22233cf4ea938590bab4d0945
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2507709
Reviewed-by: angle-autoroll <[email protected]>
Commit-Queue: angle-autoroll <[email protected]>
https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/8308d6744d50..428654245ad3

2020-10-28 [email protected] Configure vulkan.pc when pkg-config is available

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-loader-angle-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: [email protected]
Change-Id: Ic3137a446d4e977d94168c2e9abb1fc23d49974b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2507094
Reviewed-by: angle-autoroll <[email protected]>
Commit-Queue: angle-autoroll <[email protected]>
…isions)

https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/87b0951f8dba..a72e7b987746

2020-10-28 [email protected] tests: Add invalid stride test for GetQueryPoolResults
2020-10-28 [email protected] corechecks: Added 4519 vuid for GetQueryPoolResults stride
2020-10-28 [email protected] stateless: Add a missing "not" to ValidateGreaterThan

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-validation-layers-angle-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: [email protected]
Change-Id: I3c1003765bf75b46f22781458a81e13378ebe451
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2507093
Reviewed-by: angle-autoroll <[email protected]>
Commit-Queue: angle-autoroll <[email protected]>
Prior changes had made it so we no longer were spacing out the output
correctly.

Bug: None
Change-Id: Icf81b579271f2b4c8fa5a1d90d323dc062f23585
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2507635
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Geoff Lang <[email protected]>
Commit-Queue: Jamie Madill <[email protected]>
The definition _LIBCPP_ABI_UNSTABLE breaks std::string in Android AOSP
builds, starting with GetHelperExecutableDir(), but others fail later
if that's worked around. Instead, we'll disable that flag with a GN arg
for AOSP rolls.

Bug: angleproject:5263
Test: Build on AOSP and launch Cuttlefish
Change-Id: Ia4b293a5ce0b09206f4ed87a5a442e544e2021c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508529
Reviewed-by: Geoff Lang <[email protected]>
Commit-Queue: Tim Van Patten <[email protected]>
Add support for shader builtins and enable the extension.

Bug: angleproject:3578
Tests: dEQP-GLES31.functional.*image_atomic*
Change-Id: Idd45b2ee62efe1474c6c5947c77da64ff2221bf6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2505540
Commit-Queue: Mohan Maiya <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Shahbaz Youssefi <[email protected]>
This will force "GN analyze" to pick up changes in the gold tests
when all that GN sees is a new SHA1 file. In effect a SHA1 change
means all the sources in a trace have changed.

Bug: chromium:1143507
Change-Id: Idf44045ebd5d2bda9380b339e95d336b6804ce8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508530
Commit-Queue: Jamie Madill <[email protected]>
Reviewed-by: Yuly Novikov <[email protected]>
Reviewed-by: Cody Northrop <[email protected]>
Bug: angleproject:5265
Change-Id: I1d3f1802398472c0da2d00526bd7eb52f6596bea
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508532
Reviewed-by: Jamie Madill <[email protected]>
Commit-Queue: Yuly Novikov <[email protected]>
Descriptor pools need to live as long as the descriptor sets that are
allocated from them. Using Serials while building a command to judge a
pool's lifetime is prone to errors, since a command's Serial value
isn't known until the command is submitted, leading to deleting pools
too early relative to when the descriptor set is actually used.

This CL updates DescriptorPoolHelper to inherit from Resource, so the
descriptor pools can be retain()'ed. This allows the Resource's counter
to indicate that a pool is in use until the command's Serial is known
and can be recorded to indicate when the command completes. This
prevents descriptor pools from being destroyed before the command
completes (while the descriptor sets are still in use), or even before
the command has been submitted. Destroying a descriptor pool resets all
of the descriptors that were allocated from it, which can trigger a
variety of VVL errors depending on when it's erroneously performed.

This CL also adds the necessary retain() calls for the descriptor pools.
In particular, the pools need to be retained each time a cached
descriptor set that was allocated from it is re-used. This is relatively
simple with the current design, since we always clear the descriptor set
caches whenever a new pool is allocated, so the descriptor pool binding
is always accurate.

Bug: angleproject:5030
Test: VulkanMultithreadingTest::MultiContextDrawSmallDescriptorPools()
Change-Id: Iac9e7efef338f169a6bf8ac3b2140e03dd326641
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2504457
Reviewed-by: Jamie Madill <[email protected]>
Reviewed-by: Courtney Goeltzenleuchter <[email protected]>
Commit-Queue: Tim Van Patten <[email protected]>
In Python 3, you have to be careful to distinguish between
bytes and strings when reading from subprocesses; the code
to read the commit position was failing to do that in one place.

Bug: chromium:1112471
Change-Id: Ifbfba6872f762d7e5d7e356772e93b4a7ee1dfeb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508746
Commit-Queue: Dirk Pranke <[email protected]>
Commit-Queue: Jamie Madill <[email protected]>
Reviewed-by: Jamie Madill <[email protected]>
Crashes on Mac Mini 8.1

Bug: angleproject:5268
Change-Id: I18cab39a8b6a8703e798cd8fb14d498a3a611eec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508969
Reviewed-by: Yuly Novikov <[email protected]>
Commit-Queue: Yuly Novikov <[email protected]>
Bug: angleproject:5267
Change-Id: I41a7c7c07701e0236a85becd93f2d23db2cdaa8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508538
Reviewed-by: Yuly Novikov <[email protected]>
Commit-Queue: Yuly Novikov <[email protected]>
DepthStencilFormatsTest.DepthStencilReadback_Float/ES2_OpenGL
DepthStencilFormatsTest.DepthStencilReadback_UInt/ES2_OpenGL

Bug: angleproject:5269
Change-Id: I223c80d8c8ac47176d5a4ecdff34f6ce27286284
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508971
Reviewed-by: Yuly Novikov <[email protected]>
Commit-Queue: Yuly Novikov <[email protected]>
Bug: angleproject:5270
Change-Id: I11ec5f9eef3989ac99a618bf5ab707484710a254
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508972
Reviewed-by: Yuly Novikov <[email protected]>
Commit-Queue: Yuly Novikov <[email protected]>
Bug: angleproject:5271
Change-Id: I644b28670ce0501407797f7ae7e749a66a63d84e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508975
Reviewed-by: Yuly Novikov <[email protected]>
Commit-Queue: Yuly Novikov <[email protected]>
This changes from returning a vector to directly returning a
pointer to the binary data for the serialized state.

The second cleanup is to use a ContextID as a wrapped type
which simplifies the output formatting code.

Bug: angleproject:5247
Change-Id: Ieb8afdb9326a12968dd2d69c05e1ed811b93abff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2506198
Reviewed-by: Courtney Goeltzenleuchter <[email protected]>
Reviewed-by: Cody Northrop <[email protected]>
Commit-Queue: Jamie Madill <[email protected]>
Bug: angleproject:4988
Change-Id: I59facc66aaa2af216d3a6c6ef1e4efa934a45cb8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2506779
Reviewed-by: Shahbaz Youssefi <[email protected]>
Commit-Queue: Shahbaz Youssefi <[email protected]>
https://chromium.googlesource.com/chromium/src.git/+log/80c364fa8e53..1e88b939ff30

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-angle-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Changed dependencies
* build: https://chromium.googlesource.com/chromium/src/build.git/+log/899545e432..5cdd7aaa22
* testing: https://chromium.googlesource.com/chromium/src/testing/+log/e74c871704..98789ba90c
* third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/d24a1910b9..dbf0550693
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..24bd418544
* tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/f9b4a22424..12b3cd36d8
* tools/luci-go: git_revision:576741d3eed0fa33971fb34cd823650e6f5b47fb..git_revision:1a022d3a4c50be4207ee93451255d71896416596
* tools/luci-go: git_revision:576741d3eed0fa33971fb34cd823650e6f5b47fb..git_revision:1a022d3a4c50be4207ee93451255d71896416596
* tools/luci-go: git_revision:576741d3eed0fa33971fb34cd823650e6f5b47fb..git_revision:1a022d3a4c50be4207ee93451255d71896416596
* tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/1d51f2aa14..88a308c1a4
No update to Clang.

Bug: angleproject:2930,angleproject:3020,angleproject:3111,angleproject:3481,angleproject:5213,angleproject:5227,angleproject:5259
Tbr: [email protected]
Change-Id: I41975759f796173e010b3f986815ff845f3b2da0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508985
Reviewed-by: angle-autoroll <[email protected]>
Commit-Queue: angle-autoroll <[email protected]>
https://swiftshader.googlesource.com/SwiftShader.git/+log/c1839ee3cedd..e6c9497255c6

2020-10-29 [email protected] Fix LLVM pointer element type
2020-10-29 [email protected] Avoid false-positive MSan error for thread_local
2020-10-29 [email protected] Update Marl to 3285a2dfb
2020-10-28 [email protected] Temporarily support both ORCv1 and ORCv2

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-angle-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: [email protected]
Change-Id: Ibcf37e0128989e89d6e5ec2cf5033f1cf2d599f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2509671
Reviewed-by: angle-autoroll <[email protected]>
Commit-Queue: angle-autoroll <[email protected]>
…ision)

https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/a72e7b987746..f673b4e6ebf3

2020-10-29 [email protected] build: Reconcile final 158 VUID inconsistencies

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-validation-layers-angle-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Bug: None
Tbr: [email protected]
Change-Id: Icdc92303ef357bdb2f5390402af65c0d8209e82e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2509672
Reviewed-by: angle-autoroll <[email protected]>
Commit-Queue: angle-autoroll <[email protected]>
The type information is redundant with the parameters. Cleans up both
the debugger and text-based traces.

Bug: b/170249632
Change-Id: I00f96dc1d69ec7a8c5ca24b1a275f3bc7c29d376
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2507636
Reviewed-by: Ian Elliott <[email protected]>
Reviewed-by: Shahbaz Youssefi <[email protected]>
Commit-Queue: Jamie Madill <[email protected]>
@ChristopherHX ChristopherHX merged commit 297f5c4 into master Nov 1, 2020
ChristopherHX pushed a commit that referenced this pull request Nov 1, 2020
We could mess up capturing Program #1 by using a temp shader ID of 1.
Instead we can use a shader ID that isn't used in the application.
Noticed when capturing from the T-Rex replay.

Bug: angleproject:5134
Change-Id: Ic6fefe9d8cdf327a5ebbb47539b2e11161a4b13c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449159
Commit-Queue: Jamie Madill <[email protected]>
Reviewed-by: Cody Northrop <[email protected]>
Reviewed-by: Courtney Goeltzenleuchter <[email protected]>
@ChristopherHX ChristopherHX deleted the update-merge branch November 1, 2020 11:49
ChristopherHX pushed a commit that referenced this pull request Aug 9, 2023
This CL improves performance compared to the existing code as well as
allows using non-std mutex implementations. Also acts as a base for
future changes.

CL adds new build option:
    angle_enable_global_mutex_recursion = is_android && angle_enable_vulkan

"mutex_recursion" work same way as `std::recursive_mutex` before. It
will help in situations when Vulkan API may return back to the ANGLE.
For example: RenderDoc layer EGL deadlock.
Automatic loading of "libVkLayer_GLES_RenderDoc.so" layer causes
deadlock in EGL.
Recursion stack:
    #1 pc 000000000029ea80  /vendor/lib64/egl/libGLESv2_angle.so (egl::GlobalMutexHelper::lock(int)+596)
    #2 pc 000000000029c59c  /vendor/lib64/egl/libGLESv2_angle.so (EGL_GetError+32)

    google#4 pc 0000000000062368  /system/lib64/libEGL.so (eglQueryString+20)
    google#5 pc 0000000000508fec  /data/local/debug/vulkan/libVkLayer_GLES_RenderDoc.so

    google#20 pc 0000000000016690  /system/lib64/libvulkan.so (vulkan::api::EnumerateInstanceLayerProperties(unsigned int*, VkLayerProperties*)+40)
    google#21 pc 00000000005aa030  /vendor/lib64/egl/libGLESv2_angle.so (rx::RendererVk::initialize(rx::DisplayVk*, egl::Display*, char const*, char const*)+292)
    google#26 pc 000000000029c7e8  /vendor/lib64/egl/libGLESv2_angle.so (EGL_Initialize+192)

Additionally, recursive mutex will partially solve Android
SurfaceTexture deadlock (angleproject:4354).

Some performance numbers for 1000'000 `eglGetError()` calls.

    Mutex                                       Time (ms.)

        Android S906B

    egl::GetGlobalMutex()(std::recursive_mutex)    41.4

    (Default)   GlobalMutex (std::recursive_mutex) 39.1

    (Recursive) GlobalMutex (std::mutex)           34.9
    (Debug)     GlobalMutex (std::mutex)           34.7
    (Default)   GlobalMutex (std::mutex)           34.4

        Windows

    egl::GetGlobalMutex()(std::recursive_mutex)    20.5

    (Default)   GlobalMutex (std::recursive_mutex) 20.0

    (Recursive) GlobalMutex (std::mutex)           21.9
    (Debug)     GlobalMutex (std::mutex)           20.5
    (Default)   GlobalMutex (std::mutex)           19.9

Note: Recursive GlobalMutex enabled only for Android Vulkan by default.
Original fix:
    https://chromium-review.googlesource.com/c/angle/angle/+/2029218

Bug: angleproject:8101
Bug: angleproject:4354
Test: angle_unittests --gtest_filter=GlobalMutexTest.*
Change-Id: I9e9d9b5c598ad1177ffa147ea690bd955946a712
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401940
Commit-Queue: Igor Nazarov <[email protected]>
Reviewed-by: Charlie Lao <[email protected]>
Reviewed-by: Shahbaz Youssefi <[email protected]>
ChristopherHX pushed a commit that referenced this pull request Aug 9, 2023
Regression from this commit:
    Vulkan: Clean up CommandProcessor::queuePresent
    https://chromium-review.googlesource.com/c/angle/angle/+/4257927

Details:
- `CommandProcessor::processTask()` handles `CustomTask::Present`;
- It calls `CommandProcessor::present()` that assigns
  `swapchainStatus->isPending = false`;
- `CommandProcessor` thread is suspended for a while...;
- `WindowSurfaceVk::destroy()` calls `waitForPresentToBeSubmitted()`;
- It sees that `swapchainStatus->isPending == false` and skips waiting;
- `WindowSurfaceVk` (and `SwapchainStatus` ) instance is destroyed;
- `CommandProcessor` thread resumes and checks
  `task->getSwapchainStatus()->lastPresentResult` - ASAN failure.

The 460 bytes offset is `SwapchainStatus::lastPresentResult` member
inside `WindowSurfaceVk` instance.

Test that failed:
    ImageTest.ValidationGLEGLImageExternal/ES2_Vulkan_SwiftShader_AsyncCommandQueue

    ==27108==ERROR: AddressSanitizer: heap-use-after-free on address 0x61e0000eea4c at pc 0x7f98434e0e10 bp 0x7f98363c0a70 sp 0x7f98363c0a68
    READ of size 4 at 0x61e0000eea4c thread T29
    #0 0x7f98434e0e0f in rx::vk::CommandProcessor::processTask(rx::vk::CommandProcessorTask*) src/libANGLE/renderer/vulkan/CommandProcessor.cpp:664:59

    0x61e0000eea4c is located 460 bytes inside of 2880-byte region [0x61e0000ee880,0x61e0000ef3c0)
    freed by thread T0 here:
    #0 0x5651c72a563d in operator delete(void*) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:152:3
    #1 0x7f9843f4c8c9 in SafeDelete<rx::SurfaceImpl> src/common/angleutils.h:285:5

    previously allocated by thread T0 here:
    #0 0x5651c72a4ddd in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:95:3
    #1 0x7f9843a38599 in rx::DisplayVkXcb::createWindowSurfaceVk(egl::SurfaceState const&, long) src/libANGLE/renderer/vulkan/linux/xcb/DisplayVkXcb.cpp:99:12

Bug: b/269524271
Change-Id: Ie70bc9e2b89267653ddb6b3a30c1a67e22864f26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4491743
Commit-Queue: Igor Nazarov <[email protected]>
Reviewed-by: Charlie Lao <[email protected]>
Reviewed-by: Shahbaz Youssefi <[email protected]>
ChristopherHX pushed a commit that referenced this pull request Aug 9, 2023
Option is for Android Vulkan.

Fixes the recursion problem:
    #00 pc 000000000004d69c  /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) (BuildId: dda896312b8ac9c639f6aeb0175b8a0a)
    #1 pc 0000000000051e84  /apex/com.android.runtime/lib64/bionic/libc.so (__futex_wait_ex(void volatile*, bool, int, bool, timespec const*)+144) (BuildId: dda896312b8ac9c639f6aeb0175b8a0a)
    #2 pc 00000000000b41b4  /apex/com.android.runtime/lib64/bionic/libc.so (NonPI::MutexLockWithTimeout(pthread_mutex_internal_t*, bool, timespec const*)+236) (BuildId: dda896312b8ac9c639f6aeb0175b8a0a)
    #3 pc 00000000003d8274  /vendor/lib64/egl/libGLESv2_angle.so (std::__Cr::mutex::lock()+12) (BuildId: 203fee8f1cfe9c18)
    google#4 pc 0000000000336494  /vendor/lib64/egl/libGLESv2_angle.so (egl::SharedContextMutex<std::__Cr::mutex>::doLock()+132) (BuildId: 203fee8f1cfe9c18)
    google#5 pc 000000000033668c  /vendor/lib64/egl/libGLESv2_angle.so (egl::SharedContextMutex<std::__Cr::mutex>::lock()+124) (BuildId: 203fee8f1cfe9c18)
    google#6 pc 00000000001d6e08  /vendor/lib64/egl/libGLESv2_angle.so (EGL_ClientWaitSyncKHR+100) (BuildId: 203fee8f1cfe9c18)
    google#7 pc 00000000000674f0  /system/lib64/libEGL.so (android::eglClientWaitSyncKHRImpl(void*, void*, int, unsigned long)+112) (BuildId: c4698b8b366f6519dbd7bd3a5f6239f2)
    google#8 pc 0000000000086648  /system/lib64/libgui.so (android::BufferQueueProducer::dequeueBuffer(int*, android::sp<android::Fence>*, unsigned int, unsigned int, int, unsigned long, unsigned long*, android::FrameEventHistoryDelta*)+3240) (BuildId: ff35b91736084ee7c49efe908fb9f8f3)
    google#9 pc 00000000000e24fc  /system/lib64/libgui.so (android::Surface::dequeueBuffer(ANativeWindowBuffer**, int*)+392) (BuildId: ff35b91736084ee7c49efe908fb9f8f3)
    google#10 pc 0000000000755770  /system/lib64/libhwui.so (android::uirenderer::renderthread::ReliableSurface::hook_dequeueBuffer(ANativeWindow*, int (*)(ANativeWindow*, ANativeWindowBuffer**, int*), void*, ANativeWindowBuffer**, int*)+80) (BuildId: 0ab7d7584ac800860c4d180557441d1b)
    google#11 pc 00000000000e0b48  /system/lib64/libgui.so (android::Surface::hook_dequeueBuffer(ANativeWindow*, ANativeWindowBuffer**, int*)+92) (BuildId: ff35b91736084ee7c49efe908fb9f8f3)
    google#12 pc 000000000002cc8c  /system/lib64/libvulkan.so (vulkan::driver::AcquireNextImageKHR(VkDevice_T*, VkSwapchainKHR_T*, unsigned long, VkSemaphore_T*, VkFence_T*, unsigned int*)+280) (BuildId: 0c72f8685858f73fbb13fd68d401bba5)
    google#13 pc 0000000000266f08  /vendor/lib64/egl/libGLESv2_angle.so (rx::(anonymous namespace)::TryAcquireNextImageUnlocked(VkDevice_T*, VkSwapchainKHR_T*, rx::impl::ImageAcquireOperation*)+128) (BuildId: 203fee8f1cfe9c18)
    google#14 pc 000000000026495c  /vendor/lib64/egl/libGLESv2_angle.so (rx::WindowSurfaceVk::acquireNextSwapchainImage(rx::vk::Context*)+140) (BuildId: 203fee8f1cfe9c18)
    google#15 pc 0000000000265800  /vendor/lib64/egl/libGLESv2_angle.so (rx::WindowSurfaceVk::doDeferredAcquireNextImageWithUsableSwapchain(gl::Context const*)+148) (BuildId: 203fee8f1cfe9c18)
    google#16 pc 0000000000267bb4  /vendor/lib64/egl/libGLESv2_angle.so (rx::WindowSurfaceVk::getBufferAge(gl::Context const*, int*)+196) (BuildId: 203fee8f1cfe9c18)
    google#17 pc 000000000034143c  /vendor/lib64/egl/libGLESv2_angle.so (egl::Surface::getBufferAge(gl::Context const*, int*)+36) (BuildId: 203fee8f1cfe9c18)
    google#18 pc 000000000036c354  /vendor/lib64/egl/libGLESv2_angle.so (egl::QuerySurfaceAttrib(egl::Display const*, gl::Context const*, egl::Surface*, int, int*)+812) (BuildId: 203fee8f1cfe9c18)
    google#19 pc 00000000001d1674  /vendor/lib64/egl/libGLESv2_angle.so (egl::QuerySurface(egl::Thread*, egl::Display*, egl::SurfaceID, int, int*)+176) (BuildId: 203fee8f1cfe9c18)
    google#20 pc 00000000001d3658  /vendor/lib64/egl/libGLESv2_angle.so (EGL_QuerySurface+200) (BuildId: 203fee8f1cfe9c18)

Happens only on platforms that use "EGL_KHR_fence_sync" instead of
"EGL_ANDROID_native_fence_sync" for synchronization. Happens only on
specific Surface types, that using `EGLConsumer`/`GLConsumer`, such as
`SurfaceTexture`.

The Android's "testDrawingHardwareBitmapNotLeaking" test may be used for
testing the issue. Note: in order to reproduce, `SingleContextMutex`
must not be used by context. The "Fix ExternalImageTarget EGLImage race"
CL will achieve that.

To check what extension is used, call:
    adb shell "dumpsys SurfaceFlinger | grep 'Sync configuration'"
Possible results:
    Sync configuration: [using: EGL_KHR_fence_sync EGL_KHR_wait_sync]
    Sync configuration: [using: EGL_ANDROID_native_fence_sync EGL_KHR_wait_sync]

Bug: angleproject:4354
Change-Id: I915a2c026b59af0a2098ae6b3300f773b29cbfbb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4733831
Commit-Queue: Igor Nazarov <[email protected]>
Reviewed-by: Shahbaz Youssefi <[email protected]>
ChristopherHX pushed a commit that referenced this pull request Jan 2, 2024
It's ok to flush denormalized constants to zero.
It's not ok to flush perfectly valid normal float constants >= FLT_MIN
to zero.

Two problems:

1) Values when parsed as doubles with a value less than FLT_MIN are
being flushed to zero. This is incorrect when the comparison is done
in double, since some values below FLT_MIN in double are equal to
FLT_MIN when cast to float. The fix is to perform the comparison in
float.

2) Values with a decimal exponent less than FLT_MIN_10_EXP are being
flushed to zero. FLT_MIN_10_EXP is -37 but FLT_MIN is 1.1754943E-38.
10^-37 may be the "minimum negative integer such that 10 raised to
that power is a normalized float", but being constrained to powers of
ten it's above FLT_MIN (which is 2^-126). Since this comparison is
done before #1 above, it's only present (AFAIK) to ensure that the
exponent will not make the pow() function overflow. Comparing against
-38 (FLT_MIN_10_EXP - 1) instead will do the trick.

Bug: angleproject:8373, dawn:2077
Change-Id: I1ddf410c2caa9f0d1ba3529ace693dcd326a2cb3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4936714
Reviewed-by: Geoff Lang <[email protected]>
Reviewed-by: Shahbaz Youssefi <[email protected]>
Commit-Queue: Stephen White <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.