Log

Author Commit Date CI Message
Le Hoang Quyen 6136cbcb 2020-09-23T21:31:05 Metal: Implement transform feedback - XFB is currently emulated by writing to storage buffers. - Metal doesn't allow vertex shader to both write to storage buffers and to stage output (i.e clip position). So if GL_RASTERIZER_DISCARD is NOT enabled, the draw with XFB enabled will have 2 passes: + First pass: vertex shader writes to XFB buffers + not write to stage output + disable rasterizer. + Second pass: vertex shader writes to stage output (i.e. [[position]]) + enable rasterizer. If GL_RASTERIZER_DISCARD is enabled, the second pass is omitted. + This effectively executes the same vertex shader twice. TODO: possible improvement is writing vertex outputs to buffer in first pass then re-use that buffer as input for second pass which has a passthrough vertex shader. - If GL_RASTERIZER_DISCARD is enabled, and XFB is enabled: + Only first pass above will be executed, and the render pass will use an empty 1x1 texture attachment since rasterization is not needed. - If GL_RASTERIZER_DISCARD is enabled, but XFB is NOT enabled: + we still enable Metal rasterizer. + but vertex shader must emulate the discard by writing gl_Position = (-3, -3, -3, 1). This effectively moves the vertex out of clip space's visible area. + This is because GLSL still allows vertex shader to write to stage output when rasterizer is disabled. However, Metal doesn't allow that. In Metal, if rasterizer is disabled, then vertex shader must not write to stage output. - See src/libANGLE/renderer/metal/doc/TransformFeedback.md for more details. Bug: angleproject:2634 Change-Id: I6c700e031052560326b7f660ee7597202d38e6aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2408594 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill b09f16ee 2020-10-01T10:02:07 Don't pull in Vulkan headers in Skia standalone. Bug: angleproject:5118 Change-Id: I92f4932b9d0c0413703177d13ae526307327a710 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2442382 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop b390d8b0 2020-09-30T16:28:46 Capture/Replay: Minor fixes for MEC Detected when recapturing Temple Run and Candy Crush. Each of these apps has updated recently. Test: angle_perftests --gtest_filter="*Trace*" Bug: angleproject:4845 Change-Id: Id0e8d362661d97d7b8e60b3afb0a3a989b6a6771 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441850 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
angle-autoroll 64eb64a0 2020-10-01T10:01:59 Roll SPIRV-Tools from fcb22ecf0f7e to 615fbe6cbc78 (6 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/fcb22ecf0f7e..615fbe6cbc78 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 jonahr@google.com 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: jonahr@google.com Change-Id: Ie48755f1b9097f2c54609c6d4ac3d81b4cee25bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441348 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 27331a01 2020-10-01T10:01:14 Roll SwiftShader from b042f4e70879 to 5e947adaf26e (4 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/b042f4e70879..5e947adaf26e 2020-10-01 capn@google.com Fix clamping cube face coordinates to [0.0, 1.0) range 2020-09-30 nicolascapens@google.com Fix delegating eglCreateWindowSurface to CreatePlatformWindowSurface 2020-09-30 amaiorano@google.com Fix GN build 2020-09-30 amaiorano@google.com Optimize transcendentals for Subzero 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 jonahr@google.com 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: jonahr@google.com Change-Id: I729937d96941832d2330eac96ec00b4e08939bca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441986 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 456af879 2020-10-01T10:01:45 Roll Vulkan-ValidationLayers from e2b329a75b6a to 7a78cc629cca (3 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/e2b329a75b6a..7a78cc629cca 2020-09-30 shannon@lunarg.com build: Update Android known-good for 1.2.154 SDK 2020-09-30 tony@lunarg.com tests: Add test for sampler with null image view 2020-09-30 tony@lunarg.com layers: Allow for sampler with null image view 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 jonahr@google.com 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: jonahr@google.com Change-Id: I7b3d6184abeda68c76acba190a15d320abc26070 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441987 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 3d5e8c4c 2020-10-01T08:05:56 Roll Chromium from 18cdc3179c58 to 5efa84e265f7 (627 revisions) https://chromium.googlesource.com/chromium/src.git/+log/18cdc3179c58..5efa84e265f7 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 jonahr@google.com 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/3ede10128b..83b9c33a0b * testing: https://chromium.googlesource.com/chromium/src/testing/+log/fe12eb7d0a..66ad7ae099 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/bd8e096f1d..921f371807 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/6c5b056475..410285a57e No update to Clang. Bug: angleproject:5038 Tbr: jonahr@google.com Change-Id: I6d685864226e263081fe146ff3e7d04cfed4d336 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441981 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Jamie Madill 11d94d86 2020-09-23T15:16:19 Integrate Skia Gold with restricted trace tests. The implementation is based heavily on the Chromium Skia Gold Python classes in //build/skia_gold_common . Results will be visible here: https://angle-gold.skia.org/ Currently results are not visible until this CL lands. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I7a5d64fe35583ad7ea6360804a0f6b72cd9f6d8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430179 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 38ef7955 2020-09-30T18:27:47 Drop isolated perf output arg in test runner. This argument isn't used and is in the process of being removed. We need to remove it partially to unblock landing ANGLE tests in Chrome. We can follow up later to remove it from the argument set. Bug: angleproject:3162 Change-Id: I3f80eb1bc14fd93a2b6d9732e51f49873fabb27e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441512 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Dirk Pranke <dpranke@google.com>
Tim Van Patten 91b819a9 2020-09-30T10:02:04 Vulkan: Always reset during createPipelineLayout() We need to always call reset() during createPipelineLayout(), particularly to reset the descriptor pools to handle the new descriptor set layouts that are generated by new immutable samplers. Otherwise, DynamicDescriptorPool::init() will detect that a pool is attempting to be created with a mis-matching descriptor set layout handle. Bug: angleproject:4307 Test: Manually verify Cut the Rope doesn't crash Change-Id: I0993bc37170e3ddf45c50abdfefda1d7f782b801 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441127 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Ian Elliott 3705fc41 2020-09-28T21:40:57 Vulkan:Add debug labels for OpenGL calls Implement the DebugAnnotatorVk class, and plumb the EVENT macro in the GL entrypoints to save a string of call info in the vector of all GL calls in ContextVk. Then add a vkCmdBeginDebugUtilsLabelEXT() call that includes the OpenGL draw/dispatch call prior to any Vulkan Draw or Dispatch calls. Also embedded under that label add a second vkCmdBeginDebugUtilsLabelEXT() call labeled "OpenGL Commands" that includes all of the OpenGL calls leading up to the draw/dispatch. Each individual OpenGL call is then given its own vkCmdBegin/EndDebugUtilsLabelEXT() pair so that the complete sequence of GL calls leading up to a draw call is visible for each Draw. Enable the OGL->VK mapping feature by setting "angle_enable_trace = true" in GN args. Note: This will create an ANGLE APK on Android that generally won't work with games, unless launched by AGI (which provides the debug utils extension). A future version will disable these labels unless the debug utils extension is found. Bug: b/162068318 Bug: b/169243237 Change-Id: I09886f17fa9287528c12552698738ea1fe2a4b8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427557 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Courtney Goeltzenleuchter b156a753 2020-09-28T16:43:50 Move LayoutCaches to ShareGroup Testing with TSN found a race condition with RefCounted objects (DescriptorSetLayout and PipelineLayout). Rather than add more lock calls to protect accesses to mRefCount and mObject recommendation was to put these caches in the ShareGroup (basically part of the context). Locking at the GL level will ensure that two threads that share the same context will not access the ShareGroup at the same time. The ShareGroup also works because these layouts are not destroyed until the context is destroyed so don't have to worry about other threads (e.g. command processor thread) accessing them. Bug: b/168744561 Change-Id: Icc0aa07bf4787a69572d6ec62da2f21d286232c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437509 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Charlie Lao b3859a3c 2020-09-30T12:52:39 Vulkan: disable glFlush deferral optimization for QualComm GPUs. It appears this optimization causing Manhattan performance regression on pixel4 with QualComm GPU. It does have a measurable performance improvement on S20+ that has ARM GPU. This disables this optimization for QualComm but still leaves it enabled on other GPUs. Bug: b/166475273 Change-Id: I9c9cd55ab169463fc8cc16d7d917be660cb2f363 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2441667 Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Jamie Madill e1d1b8b3 2020-09-29T19:59:54 Fix info collection on Android without Vulkan. Allows Vulkan info collection even if Vk is not enabled in ANGLE. Also removes the system_utils error message so that the Android test runner can parse the standard output without conflicts. Bug: chromium:1133459 Bug: angleproject:5109 Change-Id: I7d7bff0f1c3e456342f27538812b33ee6cd1054b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2436657 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f8e5b97e 2020-09-28T23:31:41 Additional perf test cleanup & functionality. Adds several new command line arguments and documents all args in the README. Changes the trace tests to output milliseconds. Bug: b/169600938 Change-Id: Ie8c7840a6a8958951992c806979dde6dc7d8a709 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438194 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Courtney Goeltzenleuchter 34f66126 2020-09-10T15:59:22 Vulkan: Check that its okay to add commands It can be hard to tell sometimes when the mRenderPassCommands or mOutSideRenderPassCommands command buffers have changed and there have been some issues with code that locally caches a pointer to a commandBuffer that then becomes invalid. This change adds checking so that if a command is being added to a commandBuffer that's been closed (e.g. submitted for processing) then we hit an assert. Bug: b/168144059 Change-Id: If5d37c462e3bcb51f6ec2ca44c27a2fad4e57c19 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2405812 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Shahbaz Youssefi 463e02e6 2020-09-29T14:46:46 Vulkan: Constants for unpacked D/S attachment indices kClearValueDepth/StencilIndex is renamed and repurposed in other places where depth and stencil are placed at indices MAX_DRAW_BUFFERS and MAX_DRAW_BUFFERS+1. Bug: angleproject:4836 Change-Id: Idaeff5017d944d786a5f388c4f1ce3a4e3fe9b7d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437505 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
angle-autoroll fa082bb5 2020-09-30T10:01:58 Roll SPIRV-Tools from c6ca885c0b4a to fcb22ecf0f7e (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/c6ca885c0b4a..fcb22ecf0f7e 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 jonahr@google.com 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: jonahr@google.com Change-Id: Ice3b01847559d28504fbdb31fce4bd4e2445cfd3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438321 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll d2764304 2020-09-30T10:01:45 Roll Vulkan-ValidationLayers from db992e60cc7a to e2b329a75b6a (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/db992e60cc7a..e2b329a75b6a 2020-09-29 jmadill@chromium.org layers: Fix duplicate header in GN build. 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 jonahr@google.com 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: jonahr@google.com Change-Id: I59148be2f0530db904394c864c8fd264f47166c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438319 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 9efc2480 2020-09-30T10:01:14 Roll SwiftShader from 44be0942f9a8 to b042f4e70879 (15 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/44be0942f9a8..b042f4e70879 2020-09-29 caramelli.devel@gmail.com EGL_KHR_platform_x11: wrong implementation in CreatePlatformWindowSurface() 2020-09-29 caramelli.devel@gmail.com Add DirectFB support for Vulkan WSI 2020-09-29 srisser@google.com Add VK_KHR_imageless_framebuffer 2020-09-29 bclayton@google.com SpirvShaderDebugger: Mark II 2020-09-29 bclayton@google.com Vulkan/Debug: Support Locations as hashmap keys 2020-09-29 bclayton@google.com System/Types: Add support for vec3 2020-09-29 bclayton@google.com Pipeline: Remove hack to disable spirv-opt when debugging 2020-09-29 bclayton@google.com Vulkan/Debug: Add Context::Lock::findFile() 2020-09-29 bclayton@google.com src/Pipeline: Misc fixes 2020-09-29 bclayton@google.com Vulkan/Debug: Various fixes / improvements to Thread 2020-09-29 bclayton@google.com Vulkan/Debug: Don't accumulate function breakpoints 2020-09-29 bclayton@google.com Vulkan/Debug: Overhaul Values / Variables 2020-09-29 bclayton@google.com Vulkan/Debug: Assert on locking context twice on same thread 2020-09-29 bclayton@google.com Vulkan/Debug: Add File::getBreakpoints() 2020-09-29 bclayton@google.com Vulkan/Debug: Split EventListener 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 jonahr@google.com 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: jonahr@google.com Change-Id: I1ed77dc24226c95be3dcb458b2ea705703ec56c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2439100 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 2bf019f7 2020-09-30T10:01:46 Roll Vulkan-Tools from 2bfd6a752dc6 to c5c6265c026e (3 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/2bfd6a752dc6..c5c6265c026e 2020-09-29 nathaniel@lunarg.com build: Fix linux/windows build in single directory 2020-09-29 richard@lunarg.com Update known_good.json for MoltenVK 2020-09-29 richard@lunarg.com Fixed paths for MoltenVK changes If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-tools-angle-autoroll Please CC jonahr@google.com 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: jonahr@google.com Change-Id: Ia046082a56d0d9a5ed0095f75ab8cf35793ec1d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438320 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 58a9893c 2020-09-30T10:01:46 Roll Vulkan-Loader from 8fdc21e4078d to 0c0ac2c6c458 (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/8fdc21e4078d..0c0ac2c6c458 2020-09-29 charles@lunarg.com docs: Update static linking info 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 jonahr@google.com 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: jonahr@google.com Change-Id: Ia0290adf8de0751eaada3f97963b9b5b0f0f986d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2439101 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll cb4a008a 2020-09-30T07:00:12 Roll Chromium from 3049a95d28fb to 18cdc3179c58 (353 revisions) https://chromium.googlesource.com/chromium/src.git/+log/3049a95d28fb..18cdc3179c58 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 jonahr@google.com 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/00ed20cfb8..3ede10128b * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/3ff4f5027b..4be464e050 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/31ad7f13e1..fe12eb7d0a * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/4668feaaa4..26211a5a8e * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/3017edade6..bd8e096f1d * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/dec9a2365d..6c5b056475 No update to Clang. Bug: None Tbr: jonahr@google.com Change-Id: I4a39180b2dbd382967aea77fe9121ce439b8dea1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2439767 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 43163491 2020-09-22T11:45:06 Vulkan: Unresolve depth/stencil MSRTT attachments Using the same shader that unresolves color, this change allows depth/stencil to be unresolved as well. In turn, this allows the depth and stencil loadOp/storeOp of the implicit multisampled image associated with a multisampled-render-to-texture renderbuffer to be set to DONT_CARE. Stencil unresolve depends on VK_EXT_shader_stencil_export. In the absence of this extension, the stencil aspect is not unresolved and must continue to use loadOp=LOAD and storeOp=STORE. This is not ideal, but the expected use-case of depth/stencil MSRTT renderbuffers is that they get invalidated, so that load and store wouldn't happen in practice. Bug: angleproject:4836 Change-Id: I9939d1e15e10fa8ed285acdd6fe6edb42c59054f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427049 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
James Darpinian 74ed9b65 2020-09-16T16:50:31 Support EXT_color_buffer_half_float on WebGL 2.0 contexts EXT_color_buffer_half_float was recently updated to be valid for WebGL 2 contexts because iOS can't support EXT_color_buffer_float. Bug: angleproject:5038 Change-Id: Ib0d35c6b26a6cd215ff6725e92c47d1efd64e048 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415187 Commit-Queue: James Darpinian <jdarpinian@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Jamie Madill e9813ba0 2020-09-29T19:38:03 trigger.py: Add launching of Android tests. This adds new conditonal arguments --device-type and --device-os (shortened as -t and -o) that specify an Android device type/OS. In practice only -t is usually necessary. Also makes the GPU dimension optional (-g or --gpu). Bug: angleproject:5109 Bug: chromium:1133459 Change-Id: Id975c676db40e9eb104b73a4ed5858e6083cbd70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2439481 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten f57b00f1 2020-09-28T09:53:52 Vulkan: Don't modify mReadOnlyDepthStencilMode in syncState() We're currently looking for any deferred clears before disabling read-only depth/stencil mode in FramebufferVk::syncState(). This CL removes that checking, since read-only D/S mode is configured at the start of a render pass, so it doesn't need to be updated again as part of changing framebuffers. Bug: b/168953278 Test: CQ Change-Id: I386114640f2b763c964d5ef0c18b1d31449a6f1f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2435497 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Mohan Maiya 43a3519d 2020-09-29T11:45:58 Add Samsung to ANGLE vendor list Add Samsung's PCI-SIG vendor ID to ANGLE's list of known vendors. Bug: angleproject:5111 Change-Id: I0ec7b6b0dd057fc02828ccb3bfd597591cd7a9ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438930 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten ec42b143 2020-09-28T10:15:46 Check angle_enable_abseil in Abseil group and config The contents of the group angle_abseil and config angle_abseil_config needs to be underneath a check of angle_enable_abseil, so we don't erroneously attempt to access Abseil files when Abseil is disabled (like when building ANGLE in Skia). Bug: angleproject:4873 Bug: skia:7647 Test: CQ Test: Manual verification of Skia 'gn gen' on Windows Change-Id: I587da0edb66be8c422ae4e7f9d7ed0461749179a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2435898 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 6e36029d 2020-09-28T21:57:08 Disable Mock ICD perf tests on Android. Bug: angleproject:5084 Change-Id: Iafff2adbd8bfc2844c43ca31329f3f8be1250631 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438193 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
angle-autoroll 2cace8f8 2020-09-29T10:01:14 Roll SwiftShader from b94db86cf9b3 to 44be0942f9a8 (2 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/b94db86cf9b3..44be0942f9a8 2020-09-28 bclayton@google.com Pipeline: Fix return type of SIMD::Pointer::limit() 2020-09-28 bclayton@google.com Pipeline: Assign to SpirvRoutine::pointCoord 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 jonahr@google.com 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: jonahr@google.com Change-Id: Ie8783795d53a8c576e4f362ce97a749586b828d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438152 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll ebb87e1e 2020-09-29T10:01:58 Roll SPIRV-Tools from 4b07d50cd9a0 to c6ca885c0b4a (2 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/4b07d50cd9a0..c6ca885c0b4a 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 jonahr@google.com 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: jonahr@google.com Change-Id: I52e67398f10213eb3044055347bc66be04c77142 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438153 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll dbb090f4 2020-09-29T07:01:43 Roll Chromium from 30cee4f4533f to 3049a95d28fb (469 revisions) https://chromium.googlesource.com/chromium/src.git/+log/30cee4f4533f..3049a95d28fb 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 jonahr@google.com 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/8f04da0238..00ed20cfb8 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/505458c140..31ad7f13e1 * tools/skia_goldctl/linux: afwCiHe5Fh5p0UN2CvmhSo6uWXlU0d289Yml61Egvg0C..dMvix4BkhDJmKBK1tudaxlOMub1Dif3ZPcqzSY72-ZAC * tools/skia_goldctl/mac: _s8IulBrrqUxGhXDY3zbvzauPXhMHKLl63qibypfwXcC..xJncEfNMb0HaDG9EglMx2YNbKAxqk6qJbckhfn0BXb8C * tools/skia_goldctl/win: 4faik34WiW106WOvsK6NNM4Q1Bz0vY5c29bxlSAWOWMC..cLgS219WFD65Hr6NfoCQYA5KEE2FfO3FBl30KYhpTFoC No update to Clang. Bug: angleproject:2634,angleproject:4090 Tbr: jonahr@google.com Change-Id: If22a4ed8cd1b89379bdfc72e74bfe2f3b0094825 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438049 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Ian Elliott 981a401e 2020-09-25T08:00:28 Add Context* to EVENT() & DebugAnnotator::beginEvent() This will make it easier for us to record GLES calls and log them with Vulkan vkCmd*DebugUtilsLabelEXT() Bug: b/162068318 Change-Id: I6bddf086ef39cbaca313409802bbb4f2da0d85cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432193 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
James Darpinian 3af07fd5 2020-09-24T14:26:11 EXT_float_blend is core in ES 3.2 Bug: angleproject:5098 Change-Id: I084defba9dd83153a9b8d2ee83f7d50e82eb154c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430164 Reviewed-by: Shrek Shao <shrekshao@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Tim Van Patten 2663e601 2020-09-24T18:28:31 Vulkan: Dynamically grow descriptor pool sizes Initial testing using benchmarks shows that the majority of the descriptor pools allocate fewer than 32 descriptor sets worth of descriptors. This CL reduces the initial size of each pool from 128 to 32 to reduce memory consumption. Additionally, when a pool is exhausted and a new one is created, the size of the pool doubles each time, up to a max of 512 descriptor sets worth of descriptors. This allows us to aggressively increase the size of the pools that appear to be very hot and decrease the total number of pools created. Bug: angleproject:5067 Test: CQ Change-Id: I190059cf04134902d6251d475dd908c1cbb82b58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430193 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Jeff Vigil 6612da1f 2020-09-25T09:52:58 GL_OES_texture_stencil8 autogen Add extension string to registry_xml.py and autogen files. Bug: angleproject:3231 Change-Id: I57d7f8d8e9292f32b2ae461c539296eb63ce26d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432270 Commit-Queue: Jeff Vigil <j.vigil@samsung.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 19e9df68 2020-09-23T23:37:17 Re-land "Add a small unit test that dumps system info." Re-land fixes the GL APIs accidentally leaking into the test. We can use this in the trace gold tests to identify system properties. The test uses Vulkan info collection when available and dumps out the known GPU info as JSON. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I1481fee14ed8c573f10164d74ec27701e1ad80ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433090 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1179b299 2020-09-25T21:33:10 D3D11: Enable renderable mipmap generation. This path might have been broken some time back with the "setData" path enabled. This speeds up sRGB mipmap generation considerably. Bug: chromium:1130678 Change-Id: Id1c22bc1cfb815339bad5955ce990fe9f48d8b5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432112 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
angle-autoroll 7930477f 2020-09-28T10:01:46 Roll Vulkan-Tools from e7fcc14d450b to 2bfd6a752dc6 (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/e7fcc14d450b..2bfd6a752dc6 2020-09-25 charles@lunarg.com vulkaninfo: Add json output for portability subset If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-tools-angle-autoroll Please CC jonahr@google.com 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: jonahr@google.com Change-Id: I3e0a2020f6e8467284616c7b89e92e4714b8e72e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2435252 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 061e6844 2020-09-28T10:02:45 Roll Vulkan-ValidationLayers from 8ab1c000aaa0 to db992e60cc7a (5 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/8ab1c000aaa0..db992e60cc7a 2020-09-25 shannon@lunarg.com build: Update glslang commit for 154 SDK 2020-09-25 jzulauf@lunarg.com syncval: Add multi subpass dep support 2020-09-25 jzulauf@lunarg.com syncval: Add multi subpass dep to state tracker 2020-09-25 jzulauf@lunarg.com syncval: Clarify debugging usage for all platforms 2020-09-25 jzulauf@lunarg.com syncval: Integrate quick start into usage doc 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 jonahr@google.com 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: jonahr@google.com Change-Id: Ib2c182d12c49369250c83b48b212b12c9016943f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2435254 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 059781ed 2020-09-28T10:01:37 Roll Vulkan-Headers from 7f9879b1b1fa to e1ba543c6789 (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/7f9879b1b1fa..e1ba543c6789 2020-09-28 oddhack@sonic.net Update for Vulkan-Docs 1.2.155 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-headers-angle-autoroll Please CC jonahr@google.com 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 Change-Id: I9141f819aee62a66e15ac532f509b6768560307b Bug: None Tbr: jonahr@google.com Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2435285 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll fbb1d1c1 2020-09-28T10:01:58 Roll SPIRV-Tools from 9e17b9d07a25 to 4b07d50cd9a0 (2 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/9e17b9d07a25..4b07d50cd9a0 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 jonahr@google.com 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: jonahr@google.com Change-Id: If1f4bfaad428e2b7c86125670ce9a933317b6615 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2435253 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll d2f6cc6f 2020-09-28T07:01:04 Roll Chromium from 1ba024edc1fa to 30cee4f4533f (638 revisions) https://chromium.googlesource.com/chromium/src.git/+log/1ba024edc1fa..30cee4f4533f 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 syoussefi@google.com 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/9efd36f044..8f04da0238 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/de417f8eec..505458c140 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/75b1e4b1dd..dec9a2365d * tools/skia_goldctl/linux: XNeE-uWpzXzcRoD6ylUJHEbIn411jlyiRNiGMUlyH9wC..afwCiHe5Fh5p0UN2CvmhSo6uWXlU0d289Yml61Egvg0C * tools/skia_goldctl/mac: McQX6w7ojyNaDcWISrmicbt00IsXxTSvxjuEPfPLiIEC.._s8IulBrrqUxGhXDY3zbvzauPXhMHKLl63qibypfwXcC * tools/skia_goldctl/win: 1qkV-5d6qu6v6W60NcAt1E8QDBmBNVS9ndWZPH93OVwC..4faik34WiW106WOvsK6NNM4Q1Bz0vY5c29bxlSAWOWMC No update to Clang. Bug: angleproject:4090 Tbr: syoussefi@google.com Change-Id: Iec8c5ab4727cd14651ac6158d0a9bf7200e0af7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2434843 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 6f521921 2020-08-24T11:29:33 Vulkan: Use one triangle for full-screen utils In tiling GPUs, using two triangles means the tiles intersecting the seam would be processed twice. Bug: angleproject:4936 Change-Id: Ib10b77e6ab15bba932f0e4e970e10ed5a8399cdd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2372623 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 88dd1a59 2020-09-26T18:21:19 Revert "Add a small unit test that dumps system info." This reverts commit 52ee81cfdc13d3f44c1b5db041b14f236c57188c. Reason for revert: Causes build failure on Android (https://ci.chromium.org/b/8868097753228061152), and is blocking ANGLE roll (crrev.com/c/2433419) Original change's description: > Add a small unit test that dumps system info. > > We can use this in the trace gold tests to identify system properties. > The test uses Vulkan info collection when available and dumps out the > known GPU info as JSON. > > Bug: angleproject:4090 > Bug: b/168049670 > Change-Id: Ib8d2244d82b650b94818da30adab180b471af556 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427872 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> TBR=cnorthrop@google.com,jmadill@chromium.org Change-Id: I2b87c323c896be67aa9fbee2cad980927d551d7f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:4090 Bug: b/168049670 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433089 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill dff93316 2020-09-25T13:31:25 Add Skia Gold CIPD package to DEPS. Will be used in restricted trace testing. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I0931a974c665dd8f8cf557c8af3bdc6e2fdc2544 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2431776 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Charlie Lao ae24f28a 2020-09-22T17:33:32 Vulkan: Move mReadOnlyDepth out of FramebufferDesc The depth read only or not should not affect VkFramebuffer creation. RenderPasses with just depthstencil layout differences are considered compatible. This CL moves this out of FramebufferDesc into FramebufferVk. Bug: b/168953278 Change-Id: I5bd05b262b7b3b0dc70f9fb8fc4a3db5e7082916 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425032 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao d2d9e682 2020-09-15T16:06:42 Vulkan: Use DepthStencilReadOnly when it is read only. We are tracking depth and stencil read or write during the renderpass. We can use that to switch to DepthStencilReadOnly layout if both depth and stencil are not writing. This allows drivers to optimize out the storeOp for the renderpass. Bug: b/168953278 Change-Id: Id82e06b4bae1ae8c83d880bb5e58accfa61f8191 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2411336 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 52ee81cf 2020-09-23T23:37:17 Add a small unit test that dumps system info. We can use this in the trace gold tests to identify system properties. The test uses Vulkan info collection when available and dumps out the known GPU info as JSON. Bug: angleproject:4090 Bug: b/168049670 Change-Id: Ib8d2244d82b650b94818da30adab180b471af556 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427872 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi a3b16c6b 2020-08-28T16:14:30 Vulkan: Workaround vkCmdClearAttachment bug on Pixel Adds a workaround to use draw calls to clear color instead of vkCmdClearAttachment when the clear happens in the middle of render pass. On Pixel phones, vkCmdClearAttachment races with the previous draw calls in the render pass. Bug: b/166809097 Change-Id: I8c96b87793da191757635658ad4ee2c3a7875aca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2382416 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 5173a8e1 2020-09-23T23:01:21 Enable Vulkan SystemInfo on more platforms. Can be used in the gold tests to produce device info. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I60d3ddc7d17cd00aa816dd266a54f6d6a62770d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427871 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 32ed3e71 2020-09-21T23:42:34 Vulkan: Make UtilsVk not contribute to occlusion queries UtilsVk implements some functionality with draw calls. Of these draw calls, clear was accidentally contributing to occlusion query results. Additionally, the copyImage utility creates its own framebuffer and thus directly creates a render pass, bypassing ContextVk::startRenderPass. This change also fixes bugs where occlusion query handling assumed mRenderPassCommandBuffer to be valid and correspond to the started render pass command buffer, which is not true for the copyImage render pass. Bug: angleproject:5042 Change-Id: I19cdbb8fbeabf139791b314a6da265ac5cfd68e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2423209 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 353b7bdd 2020-09-25T16:56:29 Skip BootAnimationTest.DefaultBootAnimation on Win NVIDIA Vulkan Flaky fails and leads to hangs on GTX 1660 with 456.38 driver. Bug: angleproject:5085 Change-Id: Id95b1784e484694b96ba9fc7ce084b30951c260a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432625 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten 001c7e8c 2020-09-21T13:25:46 Vulkan: Link PPO during draw validation From the OpenGL ES 3.1 spec: 11.1.3.11 Validation It is not always possible to determine at link time if a program object can execute successfully, given that LinkProgram can not know the state of the remainder of the pipeline. Therefore validation is done when the first rendering command which triggers shader invocations is issued, to determine if the set of active program objects can be executed. For draws, this CL moves the PPO link operation to ValidateDrawStates() to generate PPO link failures within ANGLE's validation layer, so we fail any rendering commands during command validation. For dispatch, PPOs are linked during Context::prepareForDispatch(), where the PPO is converted from draw to compute, since that conversion requires a re-link. This re-link shouldn't fail due to errors that would have been caught during validation, since the compute shader must have successfully linked before it can be included in the PPO in the first place. We don't re-link when converting back to draw, since it's possible there are validation errors (which we want to catch during validation of the next rendering command). Bug: angleproject:5064 Test: dEQP.GLES31/functional_separate_shader_validation_es31_* Test: ContextNoErrorTest31.DrawWithPPO Test: ProgramPipelineTest31.VerifyPpoLinkErrorSignalledCorrectly Change-Id: Ibb249e893c007a83cc6b813f848a660bfa34ecb0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2422375 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Courtney Goeltzenleuchter fc4e3cf2 2020-09-23T08:41:18 Vulkan: fix ASSERT issue in ResourceSerialFactory Refactor ResourceSerialFactory::issueSerial so that the ASSERT is valid in a threaded environment. Otherwise it's possible for another thread to increment mCurrentUniqueSerial in the middle of the ASSERT. Bug: b/168744561 Change-Id: I7208e8be91b21c50ad4a260d02d69f5b7dab2efe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2426685 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 7bed2a5b 2020-09-22T23:37:54 Capture commit position into Android Manifest. Bug: b/168736059 Change-Id: I2ec1e284f0c51269a60f3b0e51036523258b501e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425198 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 65311748 2020-09-25T13:11:26 Vulkan: Disable MSRTT on AMD/Windows Due to buggy drivers on the bots Bug: chromium:1132366 Change-Id: Ia7a021991fcbd409289915f9121a07d8e5b232c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2431570 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya a2d8bbb5 2020-09-18T18:18:34 Vulkan: Add GL_EXT_buffer_storage extension support Addition of support for immutable storage to buffer objects. Also adds new end2end tests for these usecases * Basic BufferStorage * SubData update * map/unmap buffer Bug: angleproject:5056 Tests: angle_end2end_tests --gtest_filter=BufferStorageTestES3*Vulkan Change-Id: Iba74b372ad033711927b63c6a04cec0eeb4db699 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419952 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Jamie Madill 68dcea7b 2020-09-25T10:52:32 Suppress flaky Multithread Android end2end_test. MultithreadingTest.MultiContextDrawWithSwapBuffers/ES3_OpenGLES_NoVirtual Bug: angleproject:5099 Change-Id: Ide1376702c95103cf988f05ffe0d61e1166f3beb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2432064 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 62778cb9 2020-09-22T23:10:04 Rename version/commit headers. Prefix the files with angle_ to disambiguate them from other tools. Bug: b/168736059 Change-Id: I7be25ca18fb69d7f2ab71bdf355932865d134954 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425197 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
angle-autoroll ff0ec95b 2020-09-25T12:45:56 Roll VK-GL-CTS from c9f4fb2fccda to 02da53e45d9e (7 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/c9f4fb2fccda..02da53e45d9e 2020-09-25 alexander.galazin@arm.com Merge vk-gl-cts/github-master into vk-gl-cts/master 2020-09-25 mikko.tiusanen@siru.fi Avoid gcc divide by zero in getEdgeVolumeClip 2020-09-25 quic_jleger@quicinc.com Add tests for KHR_copy_commands2 2020-09-25 karolina.palka@mobica.com Add tests for incompatible resolve attachments 2020-09-24 alexander.galazin@arm.com Enable more lines tests 2020-09-24 alexander.galazin@arm.com Update Amber 2020-09-21 alexander.galazin@arm.com Update headers 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 syoussefi@google.com,angle-bots+autoroll-info@google.com 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: syoussefi@google.com,angle-bots+autoroll-info@google.com Change-Id: I702acff0182f400c2576c639c6b6104cab829033 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430091 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Jamie Madill 0725c1ed 2020-09-22T22:56:53 Add ANGLE commit position to version.h. Bug: b/168736059 Change-Id: If35210cfc91781cab6f40a1f03a4e82ada90690f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425196 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
angle-autoroll 617d92a3 2020-09-25T10:00:58 Roll SPIRV-Tools from 67525bded1de to 9e17b9d07a25 (10 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/67525bded1de..9e17b9d07a25 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 syoussefi@google.com 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: syoussefi@google.com Change-Id: Ib292230c1dde57ed225d5ce0a2833f8ffb59004f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430967 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 059c719b 2020-09-25T10:01:14 Roll SwiftShader from a09406249fa3 to b94db86cf9b3 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/a09406249fa3..b94db86cf9b3 2020-09-24 sdefresne@chromium.org Explicitly filter assigments to sources variable 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 syoussefi@google.com 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: syoussefi@google.com Change-Id: I6e45d065ee713e9a91f531063e0e7861e834370a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430968 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 7e427f51 2020-09-25T10:01:41 Roll glslang from 4dcc12d1a441 to bacaef3237c5 (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/4dcc12d1a441..bacaef3237c5 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/glslang-angle-autoroll Please CC syoussefi@google.com 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: syoussefi@google.com Change-Id: I56919fff47a85a0870911b68965945a15a275569 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430969 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 4224b3bb 2020-09-25T07:00:51 Roll Chromium from 08c265691668 to 1ba024edc1fa (394 revisions) https://chromium.googlesource.com/chromium/src.git/+log/08c265691668..1ba024edc1fa 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 syoussefi@google.com 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/cd7202be2f..9efd36f044 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/bdb6d18321..de417f8eec * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/f8517bd629..4668feaaa4 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/dbc6b2dadf..75b1e4b1dd No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: Ifb3356151c8ebd9cd232238b8622f8e7fd8e2448 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430606 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Le Hoang Quyen 1677cf14 2020-09-13T20:14:59 Metal: Implement Uniform buffers Uniform buffer is implemented in two forms: - If number of ubo used in shader program is low, each buffer will use one discrete Metal buffer slot. - If number of ubo used is large, they will be embedded into one Metal argument buffer. Argument buffer is similar to Vulkan descriptor set. This is due to limit of number of Metal's discrete buffer slots which is only 31 and over half of them are already used by vertex attributes, default uniforms, driver uniforms, etc. The downside is that whenever a buffer binding is changed, the argument buffer must be updated also. Added empty TransformFeedbackMtl implementation to enable ES3 context creation on Metal. Bug: angleproject:2634 Change-Id: I69325696fac735cb45ab88ab55468c0991abc317 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2408593 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 962e3473 2020-09-25T00:22:27 Fix return code of restricted trace tests. The prior script was incorrectly comparing a boolean result with a number and producing the opposite result: True would be reported as a failure, and False would be reported as success. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I47ec684a57c455c6a833232d0a49774b265f7b39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430667 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Le Hoang Quyen 69da0b92 2020-09-13T20:00:19 Metal: Use shared memory for small dynamic buffers. - If BufferMtl is static or large size, don't use shadow copy. Use one MTLBuffer and map directly on it. - If BufferMtl is dynamic and small size, use shadow copy and buffer pool of 10 MTLBuffer (s). The MTLBuffer is allocated in shared memory in this case (PCI-E memory for example). MTLBuffer in shared memory region doesn't need to sync content between CPU and GPU. - When copyBuffer, if BufferMtl is being used by GPU use blit command to do the copy on GPU side. - Also implemented GL_MAP_UNSYNCHRONIZED_BIT. Bug: angleproject:2634 Change-Id: I7a5aab309d24c76106a7087358ee5883ee05d250 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2408592 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao d59bccb5 2020-09-23T10:20:35 Vulkan: updateRenderPassDesc may lose color attachment data FramebufferVk::updateRenderPassDesc() is resetting entire mRenderPassDesc, which may lose color unresolve attachments. This CL makes sure that when we toggle depth stencil buffer's read/write access, we do not reset the whole mRenderPassDesc. Instead we only update the depth stencil attachment's access. Bug: b/168953278 Change-Id: Ia9df2d8ac81ebf2da8a360ba1293faf6c14b2738 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2426468 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 7bd8bd9f 2020-09-24T17:11:56 Skip PBO test on TSAN. Texture2DTest.TexStorageWithPBO/ES2_OpenGL is flaky. Bug: b/168744561 Bug: angleproject:5097 Change-Id: Ide9b5a7d22e86c6eccd83ebc3bce6797b90150a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430163 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Courtney Goeltzenleuchter 54dbd5e7 2020-09-23T16:10:12 Vulkan: Add mutex around queueSubmit related data There are several queueSubmit related members of RendererVk that can be accessed from multiple threads. Adding mutex around thoses accesses resolves race condition flagged by TSAN. Add stress test for QueueSerial handling Add test to catch race issue in garbage collection found by TSAN. Test: angle_end2end_tests MultithreadingTest.MultiContextDrawWithSwapBuffers angle_end2end_tests MultithreadingTest.MultiContextCreateAndDeleteResources Bug: b/168744561 Change-Id: I238cce9052476710778a3b35f8531891d90ddd6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415402 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 7a0faa82 2020-09-24T20:15:26 Revert "Pass #pragma optimize setting down to compilation." This reverts commit 499173de1c91932ba272269cab6918bf7e8d7c11. Reason for revert: Causes unexpected HLSL compiler errors in some cases. See bug. Bug: angleproject:5094 Original change's description: > Pass #pragma optimize setting down to compilation. > > This will allow us to disable optimizations in the back-end. This can > be useful both for developers and for ANGLE to disable very slow > shader compilation on D3D11. > > Also apply this pragma to VerifyMaxVertexUniformVectorsWithSamplers. > Reduces compilation time by half in local testing. > > Bug: angleproject:5076 > Change-Id: I64ad576e11b9cee5b41f8af0d3621570304d65c2 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2420749 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Geoff Lang <geofflang@chromium.org> TBR=geofflang@chromium.org,jonahr@google.com,jmadill@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:5076 Change-Id: I733e788fe8e9421ae0af662c0eb51af1ed79dde3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2429517 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Sylvain Defresne f024f54b 2020-09-24T12:05:38 Explicitly filter assignments to sources variable set_sources_assignment_filter() is considered as a mis-feature of gn (as it makes it difficult to reason about the BUILD.gn files individually). Change libGLESv2.gni in angle to check the platform before adding plaform-specific source files to "sources" variable. This will allow removing the global sources assignment filter from Chromium codebase. Bug: chromium:1018739 Change-Id: I5db637a583d9cf547f6f175baa445d47751e6a3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2428763 Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 68a5baeb 2020-09-23T22:13:03 Revert "Vulkan: Implement a SharedResourceUse pool" This reverts commit de335c16855f11d1f0a6f0b37bee30c8a09a6c1d. Reason for revert: Might actually regress CPU overhead perf. Unsure but it's possible the reported perf improvement was due to variance. Original change's description: > Vulkan: Implement a SharedResourceUse pool > > When adding a Resource to the ResourceUseList of ContextVk > we constructed a new SharedResourceUse object for tracking > and update of the Resource's Serial. We would then delete > it after releasing the resource. This incurs repeated > memory operation costs. > > Instead we now allocate a pool of SharedResourceUse objects > and acquire and release from this pool as needed. > > VTune profile of the Manhattan 30 offscreen benchmark > shows the CPU occupancy of bufferRead decrease from an > average of 0.9% -> 0.6% and imageRead decreases from > an average of 0.4% -> 0.3%. The bottleneck for both > these methods is the retain() method that leverages > the new SharedResourceUse pool. > > Bug: angleproject:4950 > Change-Id: Ib4f67c6f101d4b2de118014546e6cc14ad108703 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396597 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Mohan Maiya <m.maiya@samsung.com> TBR=syoussefi@chromium.org,jmadill@chromium.org,m.maiya@samsung.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: angleproject:4950 Change-Id: I40081551c3db67d6e55182fea40119946ed16ac3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2426479 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi a76b6836 2020-09-17T22:40:42 Vulkan: Support MSRTT depth/stencil resolve VK_KHR_depth_stencil_resolve is used by this change to resolve depth/stencil multisampled-render-to-texture renderbuffers. This extension is not widely supported yet. If it's not present, the depth/stencil resolve operation is silently ignored and the renderbuffer acts as a normal multisampled one. This is not correct, but our primary user (Chrome), and most applications don't care for the resolved depth/stencil data. In fact, it's recommended for the depth/stencil attachment to be invalidated after rendering. Exposing EXT_multisampled_render_to_texture even in the absence of depth/stencil resolve allows the majority of the applications to still take advantage of MSRTT color attachments. Bug: angleproject:4836 Change-Id: I6ba4187344a0c9330d2c77bdc5e2c6fc5483c299 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2417645 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Geoff Lang f0b02054 2020-08-06T20:55:05 Add a Vulkan feature to compress float32 vertex formats. Use the vertex conversion pipeline in VertexArrayVk to detect static vertex data and convert float32 vertices to float16. This feature is useful for determining if an allication is vertex bandwidth bound and seeing what gains could be had by using smaller attributes. This feature could be implemented in ANGLE's frontend but new infrastructure for converting and storing the converted attributes would need to be added to gl::VertexArray. Our backends already have the functionality needed to handle unsupported attribute formats and this can be repurposed for compressing vertex formats. Bug: b/167404532 Bug: b/161716126 Change-Id: I9a09656a72e8499faa4124adf876d7261c8341c9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2342285 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 4d779fb3 2020-09-24T10:01:45 Roll Vulkan-ValidationLayers from ae8b33cdea62 to 8ab1c000aaa0 (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/ae8b33cdea62..8ab1c000aaa0 2020-09-23 nathaniel@lunarg.com tests: Refactor vklayertests_best_practices 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 syoussefi@google.com 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: syoussefi@google.com Change-Id: I8d9df5e466e6f9b7ea2614c76f8654e481cf9394 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2428208 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll be75fbcc 2020-09-24T10:01:15 Roll SwiftShader from 6aadd31a5f98 to a09406249fa3 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/6aadd31a5f98..a09406249fa3 2020-09-24 egranata@google.com Fix a linker problem with ARM/thumb compatibility 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 syoussefi@google.com 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: syoussefi@google.com Change-Id: I36f026d679b982a678bdd54dd037173b0e668713 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2428207 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 95ee2fa3 2020-09-24T07:12:42 Roll Chromium from d9fa0d469f57 to 08c265691668 (2320 revisions) https://chromium.googlesource.com/chromium/src.git/+log/d9fa0d469f57..08c265691668 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 syoussefi@google.com 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/ff80cb1d7c..cd7202be2f * testing: https://chromium.googlesource.com/chromium/src/testing/+log/5b99869e59..bdb6d18321 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/3a81ef17d6..3187b54c0c * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/92b3622380..3017edade6 * tools/luci-go: git_revision:b022173f8069cf8001d4cf2a87ce7c5f0eae220f..git_revision:83c3df996b224edf5061840744395707a0e513e7 * tools/luci-go: git_revision:b022173f8069cf8001d4cf2a87ce7c5f0eae220f..git_revision:83c3df996b224edf5061840744395707a0e513e7 * tools/luci-go: git_revision:b022173f8069cf8001d4cf2a87ce7c5f0eae220f..git_revision:83c3df996b224edf5061840744395707a0e513e7 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/894c57e360..dbc6b2dadf No update to Clang. Bug: angleproject:3162,angleproject:4090,angleproject:4841,angleproject:4855 Tbr: syoussefi@google.com Change-Id: I0e0d1d67a7064ebc8da23f2d9108df2cc75f8626 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427881 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Sergey Ulanov 483473ae 2020-09-23T15:52:29 Vulkan: Relax ASSERT in SemaphoreVk::wait() The assert in SemaphoreVk::wait() was verifying that acquired images don't have any staged updates. That assert was failing for images with emulated image formats, which may have staged updates to clear the image after initialization. Bug: chromium:1096746 Change-Id: I74658a8ae48e6c09aa4a859ceb1e2a7099e021c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427551 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Michael Spang <spang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten e78d9a61 2020-07-24T11:58:45 Convert unordered_map to absl::flat_hash_map for select files This is the initial CL to start migrating to abseil in various places: - formatutils.h - FramebufferVk.h - Program.h - ProgramExecutableVk.h - RewriteRowMajorMatrices.cpp This intentionally hits a couple different places in the code to make sure the abseil dependencies are added to the required targets. Bug: angleproject:4873 Change-Id: Idd6084dff2ebce47833f304c605bbf3151b97414 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2402382 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill b6c17996 2020-09-23T13:37:48 Auto-generate restricted trace .gitignore. I'm going to add a non-ignored subdirectory so it behooves us to fix our blanket suppression. This will also allow users to clean up stale trace files. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I5b0879eb3eebf3b352bb78e3b927203f9483c89f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2426885 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Brandon Schade cd83b608 2020-09-18T14:54:54 Use ImageHelper staging buffers for copyImageDataToBuffer Revert change from using context staging buffers for copyImageDataToBuffer. There are scenarios where the staging buffer will become invalid before flushing the staged update. Added a test for this case. Bug: angleproject:5092 Test: angle_end2end_tests --gtest_filter=*ETC1CompressedImageDraws* Change-Id: I41c457fda919938600c20336f65836952d73748a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425250 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Mohan Maiya 9e2953c2 2020-09-23T07:57:22 Vulkan: Enable OES_texture_storage_multisample_2d_array The implementation for OES_texture_storage_multisample_2d_array already exists. This patch just enables the appropriate capability flag only if the underlying Vulkan ICD supports standardSampleLocations Bug: angleproject:3583 Tests: angle_end2end_tests --gtest_filter="*TextureMultisampleArrayWebGLTest*Vulkan" dEQP-GLES31.functional.state_query.internal_format.texture_2d_multisample_array.* dEQP-GLES31.functional.state_query.texture_level.texture_2d_multisample_array.* Change-Id: I2ea89041d9aa8c7d94c9ba732f12528c809807ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416979 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Brandon Schade 6c394220 2020-09-09T18:55:48 Vulkan: Fix bug in compressed texel block computation When performing a staged update to compressed images, ensure that the bufferRowLength and bufferImageHeight is a multiple of the compressed texel block Bug: angleproject:5017 Test: angle_end2end_test --gtest_filter=*ETC1CompressedImageNPOT* Change-Id: I54327ec610d1050465d112c7eff385d19dc0c390 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2393754 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
angle-autoroll 2383e36d 2020-09-23T14:06:59 Roll SPIRV-Tools from 125b64241909 to 67525bded1de (4 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/125b64241909..67525bded1de 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 syoussefi@google.com 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: syoussefi@google.com Change-Id: I975dd4e93e42b9f688bc02a9ced5c3efe8ebf423 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2426287 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Mohan Maiya 6b4962e8 2020-09-22T16:37:16 Allow GL_UNSIGNED_BYTE as a type for glColorPointer Previously glColorPointer would reject GL_UNSIGNED_BYTE. This should be allowed in both the gles 1 and 1.1 specifications. See page 6 of the gles 1 specification and page 20 of the gles 1.1 specification. This change allows doodle jump to work on angle on both the gl and vulkan backend Bug: angleproject:4308 Tests: angle_end2end_tests --gtest_filter=VertexPointerTest.AssignRetrieveColorUnsignedByte* Change-Id: I35f41b28d94cb34bc36256420b57793691b78cff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2424465 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
angle-autoroll edea3d95 2020-09-23T10:01:47 Roll Vulkan-Tools from d19622688af4 to e7fcc14d450b (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/d19622688af4..e7fcc14d450b 2020-09-22 shannon@lunarg.com build: Update known-good files for 1.2.154 header If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-tools-angle-autoroll Please CC syoussefi@google.com 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: syoussefi@google.com Change-Id: If1126d8f68f8a8c8dd092cb891a5f204718ce9a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425889 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 738d7758 2020-09-23T10:01:45 Roll Vulkan-ValidationLayers from 0a863bc36554 to ae8b33cdea62 (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/0a863bc36554..ae8b33cdea62 2020-09-21 shannon@lunarg.com build: Update known-good files for 1.2.154 header 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 syoussefi@google.com 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: syoussefi@google.com Change-Id: I6a3123afcfbba358ef08994488841f83b021202e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425888 Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Jamie Madill 2a09e891 2020-09-22T09:32:32 Isolated script args in restricted trace tests. This will allow us to pass CQ since CQ requires isolated script output args. We can also update this logic later to fail CQ if the golden image check fails. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I81c5571e8742e641ebd8c9cbd8e1c89f583c725c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2423212 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f0b0e3e8 2020-09-22T19:35:58 Suppress two more compute shader tests. Failing due to test ordering on Linux. Likely a driver bug that's already fixed in ToT Mesa. ComputeShaderTest.DispatchDrawDrawDispatch/ES3_1_OpenGL ComputeShaderTest.DrawDispatchDrawPreserve/ES3_1_OpenGL Bug: angleproject:5072 Change-Id: I857ef3c7ba5d97f7c619ebe37aec1b5e188a2ffd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2424682 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ee7ae7ab 2020-09-22T19:36:57 Skip another slow test on Win/Intel/D3D11. GLSLTest.VerifyMaxVertexUniformVectors/ES2_D3D11 Bug: angleproject:5076 Change-Id: I178ec224ca6b93f3290de6fb7e5cc3a4f348ba12 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2425323 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter b44af662 2020-09-22T10:20:16 Vulkan: Fix racy access to VkPipelineCache Missing a lock(mPipelineCache). Bug: b/168744561 Change-Id: I7e57f9feed7431d0fdfec153e7e8e47fe9a2fa0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2424463 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Charlie Lao 15617b4b 2020-09-21T11:16:49 Vulkan: Add a alpha to coverage test Early fragment test optimization has to be disabled if alpha to coverage is enabled. This test that the intersection between alpha to coverage test and early fragment test optimization. Bug: angleproject:5082 Change-Id: I628efc2fae7c998467e1daff4167f16fe0c28142 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2422899 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Le Hoang Quyen 9ff58ddd 2020-08-26T01:08:00 Metal: Support array of matrices varying. MSL doesn't support array of matrices as varying variable. This CL converts array of matrices varying to array of vectors. This fixes WebGL test: conformance/glsl/misc/shader-varying-packing-restrictions.html Bug: angleproject:4846 Bug: angleproject:2634 Change-Id: I3cfc638dc01092ddf1add7df02c131d1a5c8ba1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2392172 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Geoff Lang 49f01a53 2020-09-18T11:38:14 Vulkan: Add features to modify sampling parameters Add features to optionally increase the LoD offset of all sampling operations or disable linear filtering. These can be used to compare performance without recompiling ANGLE. These features could be potentially implemented in the frontend it is more difficult because the features are not available at texture initialization time. Bug: b/167404532 Change-Id: Ifcf56fbcf130c24c54834737733bbffa5ade3959 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2411475 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tim Van Patten ed899835 2020-09-11T21:21:55 Vulkan: Allocate descriptor pools with layouts Descriptor set layouts and pools are very tightly coupled, since their binding types and counts must match to ensure the number of available descriptor sets within a pool remains accurate. To enforce this, the descriptor pools will now keep a copy of the VkDescriptorSetLayout that the pool was created for, which is verified when a descriptor set is allocated from the pool. If the handles don't match, an ASSERT() will fire. Bug: angleproject:5033 Test: CQ Change-Id: I4faf82c24f31052e57b656c968788bb0c131b619 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2407282 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill cb286073 2020-09-20T21:59:24 Use c++ thread_local for current thread. This solves a race condition using the global context. Sadly we can't use an unprotected variable safely because it can be written/read from multiple threads doing MakeCurrent. Has about a 2 ns regression when tested in Linux/Release per call. "null" benchmark test went from 27 -> 29 ns/iteration. Fixes a TSAN warning that popped up in angle_end2end_tests. Test: DrawCallPerfBenchmark.Run/vulkan_null Test: EGLContextASANTest.DestroyContextInUse/ES3_Vulkan Bug: b/168744561 Change-Id: Ic56f3faae81c1087b942a3cfc0e011b9ab439e0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419641 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>