Граф коммитов

13548 Коммитов

Автор SHA1 Сообщение Дата
Jamie Madill 6d1bf2b4d7 Give trigger.py executable bit.
Bug: angleproject:3162
Change-Id: I4ebd0ccf397568aeaa62a033155e70024a806965
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2420333
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2020-09-21 15:04:44 +00:00
Jamie Madill a87964cd3e Suppress Linux GL Compute Tests on Intel.
ComputeShaderTest.AtomicFunctionsInNonInitializerSingleAssignment/ES3_1_OpenGL
ComputeShaderTest.AtomicFunctionsInitializerWithUnsigned/ES3_1_OpenGL
ComputeShaderTest.AtomicFunctionsNoReturnValue/ES3_1_OpenGL
ComputeShaderTest.AtomicFunctionsReturnWithMultipleTypes/ES3_1_OpenGL
ComputeShaderTest.AtomicFunctionsReturnWithUnsigned/ES3_1_OpenGL
ComputeShaderTest.DispatchDraw/ES3_1_OpenGL
ComputeShaderTest.DrawDispatchDispatchDraw/ES3_1_OpenGL
ComputeShaderTest.LoadImageThenStore/ES3_1_OpenGL
ComputeShaderTest.NonArraySharedVariable/ES3_1_OpenGL
ComputeShaderTest.NonStructArrayAsSharedVariable/ES3_1_OpenGL
ComputeShaderTest.StoreImageThenLoad/ES3_1_OpenGL
ComputeShaderTest.StructArrayAsSharedVariable/ES3_1_OpenGL
ComputeShaderTest.UniformDirty/ES3_1_OpenGL
ComputeShaderTest.groupMemoryBarrierAndBarrierTest/ES3_1_OpenGL
GLSLTest_ES31.ArraysOfArraysImage/ES3_1_OpenGL
GLSLTest_ES31.MixOfAllResources/ES3_1_OpenGL
LinkAndRelinkTestES31.RelinkProgramSucceedsFromRenderingToCompute/ES3_1_OpenGL

Bug: angleproject:5072
Change-Id: I506c931d7e8714e0393fb5a7b9671b2fc74caeee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2420332
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2020-09-21 15:01:54 +00:00
Jamie Madill 9f70b6b205 Disable slow max uniform count test on D3D11/Intel.
Bug: angleproject:5076
Change-Id: I21fc0504513e092003e19fb845d6759eba0a3866
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2420750
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2020-09-21 14:52:53 +00:00
Jamie Madill d13c9e78cf Rename ShaderImpl::mData to mState.
Makes it consistent with the other back-end types.

Bug: angleproject:5076 
Change-Id: I7a54dd4a0a54e6dc05e257b7b2ac1ec21ceea700
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2420748
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-09-21 13:24:02 +00:00
angle-autoroll a25fcc579d Roll Vulkan-ValidationLayers from d6935becabad to 0a863bc36554 (1 revision)
d6935becab..0a863bc365

2020-09-18 tony@lunarg.com gpu: Move vma allocator destroy to after state tracker

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: Ic5703da73bc1fa6c9244da9e1e3728dcf73221a4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2421271
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-21 11:55:02 +00:00
angle-autoroll 467c917c25 Roll Vulkan-Headers from f0e102e48197 to 7f9879b1b1fa (1 revision)
f0e102e481..7f9879b1b1

2020-09-21 oddhack@sonic.net Update for Vulkan-Docs 1.2.154

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 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

Change-Id: Ic66b570914960f1fcfbff89c8bcb5f26ccde539b
Bug: None
Tbr: syoussefi@google.com
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2421329
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-21 11:53:22 +00:00
angle-autoroll c42a0f357b Roll glslang from 9eaa69c21c45 to 4dcc12d1a441 (1 revision)
9eaa69c21c..4dcc12d1a4

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: Ibc5041023628ee57e351478fbf4757f3c5d78a9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2421270
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-21 11:48:12 +00:00
angle-autoroll 078776328d Roll SPIRV-Tools from 50ae4c5f4427 to 60ce96e2ff10 (2 revisions)
50ae4c5f44..60ce96e2ff

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: Ief4b7f0e41bc7888163dd923b43161f72b31fb93
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2421272
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-21 11:46:52 +00:00
Mohan Maiya 48588bd181 Vulkan: Add GL_EXT_buffer_storage extension entry points
Addition of just the entry points for GL_EXT_buffer_storage extension.

Bug: angleproject:5056
Change-Id: I7a3d7c151f004f89fd945d5d06dbe7afcd491578
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419951
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-09-21 00:03:30 +00:00
Mohan Maiya de335c1685 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>
2020-09-20 18:05:10 +00:00
Jamie Madill 76e90947a8 Test Runner: Really reuse displays with --bot-mode.
The prior design didn't pass the correct flag to the subprocess.
Instead add a new --reuse-displays flag that forces display reuse
on in ANGLE tests. Pass the new flag to the child processes when
running with --bot-mode.

Bug: angleproject:3162
Change-Id: I5f62125d83d339b5e8b2506b4ca4656976f7398e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419638
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-09-19 16:05:31 +00:00
Jamie Madill 3f20c71388 Test Runner: Fix "--bot-mode" error level return value.
Previously the runner was returning "1" on success and "0" on failure.
Swap this so that it correctly returns "0" on success and "1" on fail.
This only affected "--bot-mode" which isn't yet enabled.

Bug: angleproject:3162
Change-Id: I1ee942223272d24eff137279d5a0638d3a65694e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419639
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-09-19 16:04:50 +00:00
Jamie Madill 93f58c15ec Vulkan: Allow no validation layers in ExternalImageTest.
Similarly to common test init, these specific tests init the Vulkan
resources with validation layers when they might not be available.
Fix this by checking for the appropriate define.

Bug: b/168744561
Change-Id: I93dd3bac839297ced07cb2c4cbbcf64db2e65a1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419041
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-09-19 14:43:20 +00:00
Jamie Madill f6f206018c Vulkan: Optimize Attribute Change Perf (4/5)
This patch series optimizes programs that use the pattern:

for (;;) {
  glVertexAttribPointer(...)
  glDraw(...)
}

Change 4: Inline ValidateProgramDrawStates.

A hotspot in most draw calls that change state.

In total the patch series reduces test iteration time by 25%. This
change reduces the listed "null" benchmark time from 295 -> 286 ns.

Test: DrawCallPerfBenchmark.Run/vulkan_null_attrib_change
Bug: angleproject:5045
Bug: b/168493024
Change-Id: I80959c9d06030709d7f4eba696e43614c33d5a8f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2409176
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-19 00:27:09 +00:00
Tim Van Patten a42a7f0694 Remove setting a default value for use_custom_libcxx
Update the .gn to remove forcing use_custom_libcxx = false. Instead, let
//build/config/c++/c++.gni determine the value, which should better
match Chromium.

In particular, this helps with Abseil integration by supporting Windows
component builds by better matching the contents of the .def files.

Bug: angleproject:4873
Test: CQ
Change-Id: If8c064f16459292bfb95113a4d78e14e8923f86f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2414739
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
2020-09-19 00:12:18 +00:00
Jamie Madill d79db25910 Vulkan: Optimize Attribute Change Perf (3/5)
This patch series optimizes programs that use the pattern:

for (;;) {
  glVertexAttribPointer(...)
  glDraw(...)
}

Change 3: Use FastUnorderedSet for RP XFB buffers.

Most of the time this list is empty. This speeds up the count check for
empty and non-empty sets considerably.

In total the patch series reduces test iteration time by 25%.

Test: DrawCallPerfBenchmark.Run/vulkan_attrib_change
Bug: angleproject:5045
Bug: b/168493024
Change-Id: Ia43eb11bdd62aa3bf425069b591f9318f519fd4c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2409175
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-18 23:06:36 +00:00
Jamie Madill d6806d732d Test Runner: Fix sharding and --bot-mode.
We were using the incorrect test list to set up initial test
expectations. Fix this by using the already generated test set
in the test suite.

Test: angle_unittests with --bot-mode, sharding, and filter
Bug: angleproject:3162
Change-Id: Id108943494130410caab404faad25115792e794d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419596
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-09-18 22:58:06 +00:00
Jamie Madill 357caadb09 Vulkan: Optimize Attribute Change Perf (2/5)
This patch series optimizes programs that use the pattern:

for (;;) {
  glVertexAttribPointer(...)
  glDraw(...)
}

Change 2: Micro-optimize XFB resume CPU overhead.

We don't need to set resume on every new command buffer. We only need
to set the dirty bit when we have an unexpected pause.

In total the patch series reduces test iteration time by 25%.

Test: DrawCallPerfBenchmark.Run/vulkan_attrib_change
Bug: angleproject:5045
Bug: b/168493024
Change-Id: I8f6c68ff0513be4f405276e395d80bc1a185a061
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2409174
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-18 22:41:36 +00:00
Jamie Madill 9b4cfd1883 Vulkan: Optimize Attribute Change Perf (1/5)
This patch series optimizes programs that use the pattern:

for (;;) {
  glVertexAttribPointer(...)
  glDraw(...)
}

Change 1: Don't null out pipeline on state change.

This allows us to use the transition table for reduced CPU overhead.
Note that we don't use a transition table for compute pipelines.

In total the patch series reduces test iteration time by 25%. This is
the most significant patch, reducing test time by 20%.

Test: DrawCallPerfBenchmark.Run/vulkan_attrib_change
Bug: angleproject:5045
Bug: b/168493024
Change-Id: I3823bb7d83bc2c66357fc5eb8f5dc3e4e54f6a17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2407340
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-18 22:28:26 +00:00
Ian Elliott e8d01272eb Vulkan: Additional "invalidate" white-box tests
These are additional tests that were written when trying to refactor
mContentDefined and move it from RenderTargetVk to ImageHelper for
depth/stencil attachments.  We still want to land the tests.

Bug: b/167275320
Change-Id: I12f6bf8cece6499e4474a8f114b177626c1aa4d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419117
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2020-09-18 21:31:35 +00:00
Courtney Goeltzenleuchter e1f7e2def9 Vulkan: lock around accesses to mSharedGarbage
Bug: b/168744476
Change-Id: I26205e7d29260ffdefbd5b2971b570c8bff7187f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416236
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-09-18 21:05:45 +00:00
Adrian Taylor fbab23e186 Add CPEPrefix for rapidjson.
This will allow automated notification of any vulnerabilities
reported against rapidjson. Prior commit history suggests that
this is only used for outputting test results and is therefore
unlikely to be security-critical, but we're gradually aiming to
get 100% coverage of all our dependencies and this should be an
easy one.

See
https://chromium.googlesource.com/chromium/src.git/+/master/docs/adding_to_third_party.md#add-a-readme_chromium

Bug: chromium:895969
Change-Id: Ie3f0db3fed525e81e4fa6e84fe96fe6c72575046
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419035
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-09-18 19:53:55 +00:00
Courtney Goeltzenleuchter 3c64fe30ca Vulkan: need to serialize access to mFenceRecycler
It's possible for multiple threads to touch mFenceRecycler so need to
protect it with a mutex to prevent race conditions.

Bug: b/168744476
Change-Id: I9898d2e9ebf0974581a1074cbda5be41a09cd790
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415401
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-09-18 18:52:12 +00:00
Jamie Madill 512059a99c Tests: Allow tests to function without VVLs.
This is necessary to run angle_end2end_tests with sanitizers. We
don't currently support building the VVL in sanitized configs.

Bug: b/168744561
Change-Id: If16a25ac5786f5f5aeb8ae50d9f7fa22c6c87995
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415513
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-09-18 17:52:32 +00:00
Geoff Lang f17cd288c1 Refactor IsMipmapFiltered to take the min filter directly.
This function is more useful if it takes just the min filter mode
instead of the entire sampler struct to read a single member.

Bug: b/167404532
Change-Id: Ie8c01c4095a615f06fe046fb175cdfb92fa54cbf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2419111
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2020-09-18 17:29:12 +00:00
Jamie Madill bda2205da1 Traces: Move up from tests/perf_tests/ to tests/.
The trace tests aren't strictly for performance. Since we'll be using
them for correctenss testing as well it makes sense to move them out
of the perf_tests/ folder.

Also renames RestrictedTraceTests.md to README.md so it'll load
automatically in gitiles.

Bug: angleproject:4090
Bug: b/168049670
Change-Id: I8be9f1d831489a9abf534d049a93441687850142
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416913
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2020-09-18 17:25:52 +00:00
Jamie Madill 5bfca93e1a Fix roll script for CIPD deps.
Was looking at the Chromium path instead of the ANGLE path.

Bug: skia:10572
Change-Id: I7f5dba011a5d446b8f1ef814f89421edfd0f7b95
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2418420
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-09-18 13:50:20 +00:00
angle-autoroll 082c0240c5 Roll VK-GL-CTS from 6ccc0d9ba0ff to c9f4fb2fccda (7 revisions)
6ccc0d9ba0..c9f4fb2fcc

2020-09-18 alexander.galazin@arm.com Merge vk-gl-cts/github-master into vk-gl-cts/master
2020-09-18 michal.m.pawlowski@mobica.com Issues detected by synchronization validation layer fix
2020-09-18 gleese@broadcom.com Fix memory barriers in image_subresrouce tests
2020-09-18 slawomir.cygan@intel.com Bump fence timeout in Amber test cases to infinity
2020-09-18 anholt@google.com vulkan: Add temporary constant-data shader indexing tests.
2020-09-18 ari.suonpaa@siru.fi Add transform feedback test with NULL offset array
2020-09-14 jessehall@google.com Fix small errors in external/openglcts/README.md

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 jmadill@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: jmadill@google.com,angle-bots+autoroll-info@google.com
Change-Id: I0549c327a93685a748e10505f7f0f6a4954eed45
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2418233
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-18 12:26:00 +00:00
angle-autoroll 97813ea40e Roll Vulkan-Loader from 399f7fd741f7 to a148cdd49041 (1 revision)
399f7fd741..a148cdd490

2020-09-17 charles@lunarg.com Revert "loader: Return error if layer loading failed"

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 jmadill@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: jmadill@google.com
Change-Id: I565f036b5aefb25958059a83a40972d3210303fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2418353
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-18 12:04:20 +00:00
angle-autoroll 502621d174 Roll Vulkan-ValidationLayers from 46fc663a1cb3 to d6935becabad (6 revisions)
46fc663a1c..d6935becab

2020-09-17 lionel.g.landwerlin@intel.com corechecks: Fix validation of VU 03227
2020-09-17 lionel.g.landwerlin@intel.com tests: Fix QueryPerformanceResetAndBegin test
2020-09-17 lionel.g.landwerlin@intel.com tests: Fix QueryPerformanceIncompletePasses
2020-09-17 lionel.g.landwerlin@intel.com tests: Fix QueryPerformanceReleaseProfileLockBeforeSubmit test
2020-09-17 s.fricke@samsung.com tests: Add VUID 03311 and 03312
2020-09-17 s.fricke@samsung.com layers: combine renderpass create logic

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 jmadill@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: jmadill@google.com
Change-Id: I6db2f85ac027cba303fd8d7ced01d2bd6c3e2b79
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2418351
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-18 11:37:40 +00:00
angle-autoroll 7db8a19d13 Roll SPIRV-Tools from 34ef0c3fdc8e to 50ae4c5f4427 (3 revisions)
34ef0c3fdc..50ae4c5f44

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 jmadill@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: jmadill@google.com
Change-Id: Ie557a8f0936e468539aa3852c0f66eb22db4ed32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2418352
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-18 11:16:50 +00:00
angle-autoroll 2b3764ca1f Roll VK-GL-CTS from b045bf7d3b6a to 6ccc0d9ba0ff (1 revision)
b045bf7d3b..6ccc0d9ba0

2020-09-18 alexander.galazin@arm.com Merge pull request #227 from kusma/nearest-edge-8-bit-precision

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 jmadill@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: jmadill@google.com,angle-bots+autoroll-info@google.com
Change-Id: Iaa532dd819fb8265bbe256d9b924d2d80d839ced
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2417977
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-18 10:31:30 +00:00
Shahbaz Youssefi 68c424fe42 Vulkan: Workaround oldSwapchin bug on Android
When vkCreateSwapchainKHR is called with a valid oldSwapchain, the
Android framework destroys the images in oldSwapchain.  This is not
correct, as it should be deferred to the actual vkDestroySwapchainKHR
call performed later by ANGLE.  This is because rendering to the
oldSwapchain could still be in progress.

While this issue affects all of Android, currently only ARM shows any
symptoms.  A workaround is added for ARM to vkDeviceWaitIdle before
recreating the swapchain if oldSwapchain is valid.

Bug: angleproject:5061
Change-Id: I308e4798c6418d7891d880218b0ebcfd7a795643
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416238
Reviewed-by: Sunny Sun <sunny.sun@arm.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-18 04:55:04 +00:00
Jamie Madill 4043b9d103 Guard against data race with MemoryProgramCache.
Uses the display global mutex.

Caught with angle_end2end_tests MultithreadingTest and TSAN.

Bug: b/168744561
Change-Id: I5a60346cb5f95ff506dc166604eeae501863a774
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415182
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-09-18 04:39:44 +00:00
Shahbaz Youssefi 5f8af83fe9 Vulkan: Add perf warning for mid-RP clear
Bug: angleproject:3461
Change-Id: Id80ccc81db3cb66438b6b5e6d504eda613f481d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416244
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-09-18 04:24:04 +00:00
Shahbaz Youssefi 8d4331eeb5 Vulkan: Free up 5 bits in RenderPassDesc
Leveraging the fact that there are only a handful of depth/stencil
formats, the last element of RenderPassDesc::mAttachmentFormats can
contain other information in addition to the depth/stencil format ID.

The FormatID enum is rearranged such that depth/stencil formats are
placed first, as a result occupying values in [1, 7].  These values take
up 3 bits in an element of RenderPassDesc::mAttachmentFormats (which
could be the last element if all color draw buffers are attached).

As a result, the upper 5 bits of the last element of
RenderPassDesc::mAttachmentFormats is unused.  It is intended for these
bits to be used in the implementation of multisampled-render-to-texture
depth/stencil renderbuffers.

Bug: angleproject:4836
Change-Id: I0786e0712539cdbbf5494ec83aeee1dd93f936dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2413165
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-09-18 03:05:34 +00:00
Jamie Madill 32de9efebc Guard against race in perf warnings.
Expose the "debug" mutex so insertPerfWarning can use it.

This was detected using TSAN and MultithreadingTest.

Bug: b/168744561
Change-Id: Idde95a7b217f21f007893192a4a1f0a69b4ed3a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415184
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-09-17 23:44:04 +00:00
Jamie Madill 6939a023f5 Vulkan: Fix racy access to VkPipelineCache.
Use a mutex to guard against the object init. The accesses to the
cache internals are internally synchronized. There is a Vulkan ext
that allows for external cache synchronization that we could
investigate at some point.

Detected by looking at MultithreadingTest with TSAN enabled.

Bug: b/168744561
Change-Id: I1d4744e1aa970bcd57cac49f7ecaf8c238ea61c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415183
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-09-17 23:01:34 +00:00
Jamie Madill f2749096ea Fix racy global in gl::Compiler.
We introduce a new Display Global Mutex in egl::Display that
can guard access to gActiveCompilers in Compiler.cpp.

Was detected by running MultithreadingTest against TSAN.

Bug: b/168744561
Change-Id: I97866b60a173f60899cd0406fe0f71000035c0cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415181
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2020-09-17 23:00:34 +00:00
Ian Elliott 1c79e9ea29 Vulkan: Delay vkAcquireNextImageKHR till later
Currently, ANGLE calls vkAcquireNextImageKHR() immediately after
calling vkQueuePresentKHR(), which can cause the process to stall
(even with multi-threading).  Delay it until it is absoluately needed.

Test: angle_end2end_tests --gtest_filter=*EGLPreRotationSurfaceTest*/*
Test: angle_white_box_tests --gtest_filter=VulkanPerformanceCounterTest.*Invalidate*/*
Test: angle_deqp_egl_tests --gtest_filter=dEQP.EGL/functional_query_context_get_current_display_rgba8888_window* --use-angle=vulkan
Test: angle_perftests --gtest_filter=GenerateMipmapBenchmark.Run/vulkan_webgl
Bug: angleproject:5064
Bug: b/162082698
Change-Id: I466df9237136dd59a9556faa8cf2dbad94e076fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2399509
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2020-09-17 21:15:34 +00:00
Shahbaz Youssefi 37457d086e Vulkan: Support MSRTT color renderbuffers
Color renderbuffers are similar to multisampled-render-to-texture
textures, but much simpler.  The same mechanism is used to implement
them.

Bug: angleproject:4836
Change-Id: I298529c9fd1b03e78b1e37cdbe595e66166ee130
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2412847
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-09-17 17:15:44 +00:00
Jamie Madill bb96aefaa1 GN: Componentize D3D back-ends.
This also isolates headers for D3D9 / D3D11 from each other.

Bug: angleproject:3943
Change-Id: I04edbe7db68461ae4fc78ac7f9c22451debcb768
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2405807
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2020-09-17 16:40:13 +00:00
Mohan Maiya c99c22bb32 EGL: Add support for EGL_ANDROID_create_native_client_buffer
This EGL extension will add support for creating EGLClientBuffer
backed by an Android window buffer (struct ANativeWindowBuffer)
which can be later used to create an EGLImage.

Bug: angleproject:5018
Tests: angle_end2end_tests --gtest_filter=ImageTest.SourceNativeClientBufferTarget*
Change-Id: If78ed7b80ad09629b8c5f5b5a0eb07a548e82e6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404320
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
2020-09-17 15:04:57 +00:00
Amy Liu 83c7e1ae86 Fix the regression of color blit.
Move the offset aligning code to stencilBlitResolveNoShaderExport
to avoid affecting color blit.

Test: dEQP-GLES3.functional.fbo.blit.default_framebuffer.*_linear_*
Bug: angleproject:5044
Change-Id: Ic2ebef94091853146424d567b0035161611ba32d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416008
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-17 14:12:27 +00:00
angle-autoroll 3b8c957e63 Roll SPIRV-Tools from e8ce4355ae1c to 34ef0c3fdc8e (5 revisions)
e8ce4355ae..34ef0c3fdc

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 jmadill@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: jmadill@google.com
Change-Id: Iabc9534322647983574c505a99b926782df6a904
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416109
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-17 11:29:48 +00:00
angle-autoroll f6cbbf6848 Roll Vulkan-ValidationLayers from f105898a102f to 46fc663a1cb3 (4 revisions)
f105898a10..46fc663a1c

2020-09-16 s.fricke@samsung.com layers: Add function name to renderpass stateless
2020-09-16 s.fricke@samsung.com tests: DisabledProtectedMemory 1.1 check
2020-09-16 s.fricke@samsung.com tests: Fix UnsupportedPnextApiVersion on 1.0
2020-09-16 s.fricke@samsung.com tests: ToolingExtension devsim check

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 jmadill@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: jmadill@google.com
Change-Id: I282762e32f84fa3ff551dfb61c761fe77b220fd0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416108
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-17 11:15:38 +00:00
angle-autoroll 40e0b66ac9 Roll SwiftShader from b33e0b36a08c to fe878dedd5ad (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b33e0b36a08c..fe878dedd5ad

2020-09-16 hidehiko@google.com Expand is_linux to is_linux || is_chromeos.

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 jmadill@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: jmadill@google.com
Change-Id: I57f8a3c9d7170b41fb80f9c457d75d8105a62071
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416110
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-17 11:05:58 +00:00
angle-autoroll 8da60e2523 Roll Chromium from e4cbd27e4a55 to d9fa0d469f57 (420 revisions)
e4cbd27e4a..d9fa0d469f

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 jmadill@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: 42cbd32cfb..ff80cb1d7c
* testing: 1d2f486547..5b99869e59
* third_party/abseil-cpp: e73d966652..3a81ef17d6
* third_party/libjpeg_turbo: 8ca19625de..d5148db386
* tools/clang: e075ddd622..92b3622380
* tools/mb: 552c4cfa71..894c57e360
No update to Clang.

Bug: angleproject:3162
Tbr: jmadill@google.com
Change-Id: I64cc3bf35e95add19696b72f12566cb1578e1a2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2415853
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-17 08:26:50 +00:00
Courtney Goeltzenleuchter 0a8a3ea25b Vulkan: Skip nested pow test on NVIDIA, Windows
Suspect possible NVIDIA driver issue as unable to repro on some NVIDIA,
Windows, NVIDIA configurations.

Test:
    angle_end2end_tests --gtest_filter=GLSLTest.NestedPowStatements/ES3_Vulkan

Bug: chromium:1127866
Change-Id: Ic6a95915af72aab086753a0e0199ac1dee8bfb62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2410560
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-09-17 02:04:34 +00:00
Tim Van Patten 233cc31b6e Vulkan: Use linkedShaderStages in GlslangGetShaderSpirvCode()
The parameter linkedShaderStages is passed to
GlslangGetShaderSpirvCode(), but is unused. This CL uses the parameter,
rather than gl::AllShaderTypes().

This CL also removes the unused parameter variableInfoMap from the call
chain.

Bug: angleproject:3570
Change-Id: Ic60084e87cb2aa2a245e3e963598851331379e89
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2412364
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-09-17 01:36:43 +00:00