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

10639 Коммитов

Автор SHA1 Сообщение Дата
Geoff Lang 5c81d94fa3 Fix a typo in the GL_NUM_REQUESTABLE_EXTENSIONS_ANGLE enum value.
GL_NUM_REQUESTABLE_EXTENSIONS_ANGLE had a typo between the spec and the
header but any user who used our header would still get the correct
beaviour.

BUG=angleproject:3861

Change-Id: Ibc85607ad41a8419246e057065ab4ce797f0ce66
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1772376
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2019-08-27 14:59:11 +00:00
Sami Väisänen 76a93c3325 Remove skipping of several tests on NVIDIA since they are now passing
Remove skipping of several tests on NVIDIA since they are now passing.

  - MissingReturnStructOfArrays
  - DrawWithLevelsOutsideRangeWithInconsistentDimensions
  - TextureFormatChangesWithBaseLevel
  - TextureLuminance16Implicit

BUG=angleproject:3849
BUG=angleproject:1305
BUG=angleproject:596

Change-Id: Ie3c3ba6634a251a7320a61c6c4cc03cb178db925
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763964
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-08-27 14:23:51 +00:00
angle-autoroll 2697f1f03d Roll ./third_party/spirv-tools/src 1eb89172a82b..15fc19d0912d (1 commits)
1eb89172a8..15fc19d091


Created with:
  gclient setdep -r ./third_party/spirv-tools/src@15fc19d0912d

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 cwallez@chromium.org 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/+/master/autoroll/README.md

Bug: None
TBR=cwallez@chromium.org
Change-Id: I1ea8b23204c09ff214e38a5ed1bdb0cd02739757
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1768885
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-08-27 08:06:26 +00:00
Shahbaz Youssefi 57ad1e1287 Vulkan: Introduce ContextScoped
Scoped is changed to DeviceScoped and a ContextScoped class is added.
The former destroys objects at the end of scope, and the latter releases
them.

Bug: angleproject:3757
Change-Id: Ia0bbded53e94af9c8c72c77d07306d6724c6c409
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769060
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-08-27 02:54:53 +00:00
shrekshao cd31f2860b Implement Draw base vertex and base instance functions
This patch implements functionality of  glDrawArraysInstancedBaseInstanceANGLE,
glDrawElementsInstancedBaseVertexBaseInstanceANGLE,
glMultiDrawArraysInstancedBaseInstanceANGLE,
and glMultiDrawElementsInstancedBaseVertexBaseInstanceANGLE

Workaround for OpenGL driver on Mac:
gl_VertexID on Mac with AMD GPU doesn't include baseVertex value.
So replace gl_VertexID with (gl_VertexID + angle_BaseVertex) if any.

Workaround for Vulkan GLSL:
gl_InstanceIndex on Vulkan includes baseInstance. So replace
gl_InstanceIndex with (gl_InstanceIndex - angle_BaseInstance) when
angle_BaseInstance is declared.

Bug: chromium:891861, angleproject:3402
Change-Id: Ia1d94b5d4d7da7e635468c05c962c4f7eb1b1919
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1750126
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-26 21:33:24 +00:00
Nico Weber 52cc70fa44 Try to list files instead of directory in isolate for gl_cts data.
Bug: angleproject:3827
Change-Id: I65ed81886dce185bfc7542c321f43cc9bde6ef92
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1771979
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-08-26 21:21:00 +00:00
Jiacheng Lu 962503e75a Use FenceNVID in place of GLuint handles
Bug: angleproject:3804
Change-Id: I29c16e17c3a426efbbf0b60670581962ee505f3e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1764298
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-26 17:46:52 +00:00
Jamie Madill 87b106a094 Fix trace logging in Debug.
- fix crash when logging an invalid context
- output to trace even when platform logging is on

Bug: angleproject:3815
Change-Id: I725f5728e1d839e3d8458579ad1958cb775d9ecf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769505
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-08-26 17:03:52 +00:00
Ian Elliott 27a8b32f73 Vulkan: Enable ES1_VULKAN testing in end2end tests.
Bug: angleproject:3408
Change-Id: I19b3c0f4795130638f43eabfe9c6f41ff85521fc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1771547
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Ian Elliott <ianelliott@google.com>
2019-08-26 16:22:20 +00:00
Corentin Wallez f2f111d77f LoggingAnnotator: don't output to trace file if there is no platform
This is a revert of a small chunk of
https://chromium-review.googlesource.com/c/angle/angle/+/1761163 that is
suspect to cause weird failures on the GPU FYI waterfall in Debug on
Windows, maybe because the many disk writes are too slow.

BUG=chromium:997667
TBR=jmadill@chromium.org

Change-Id: Ifb799d2ed90682e55e5cc7c0ce21d2598bf30c9e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1768371
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
2019-08-26 14:10:37 +00:00
angle-autoroll 39e2669a3e Roll ./third_party/spirv-tools/src aef8f92b2bb6..1eb89172a82b (3 commits)
aef8f92b2b..1eb89172a8


Created with:
  gclient setdep -r ./third_party/spirv-tools/src@1eb89172a82b

The AutoRoll server is located here: https://autoroll.skia.org/r/spirv-tools-angle-autoroll

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

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


Bug: None
TBR=jonahr@chromium.org,jonahr@google.com
Change-Id: Iacbec76c6c8667fdf818206f1fe8f4577c026d82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1770175
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-08-26 08:19:23 +00:00
Jamie Madill 3c6b2e1613 More improvements to trace logging.
- output 'glDrawArrays' instead of 'DrawArrays'
- output context IDs for multithreaded scenarios
- output to trace even when platform logging is on
- fix newlines in trace file output

Bug: angleproject:3815
Change-Id: Ie07c5c91d9eae6204aaf6f6319ef318b88d292aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1761163
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2019-08-23 23:17:26 +00:00
James Dong 83a369bbec Vulkan: Improve cubemap emulation seam handling
Changes seamful cubemap emulation to always compute the derivative,
emulating the bias parameter by scaling the provided derivatives.
This results in more accurate mipmap levels for seams within primitives.
There are some artifacts as a result of how derivatives are calculated,
but this matches the native driver.

Bug: angleproject:3243
Bug: angleproject:3732
Change-Id: Icb976e2a7e14cb4210645571edc037d4e607bd0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1754383
Commit-Queue: James Dong <dongja@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2019-08-23 22:49:46 +00:00
Brian Sheedy 2f4a751866 Refactor perf tests to fix metric/story swapping
Refactors the perf tests to fix the issue of metric and story being
swapped, which causes issues when trying to convert to histograms.

Specifically, does the following:
1. Rolls the version of src/tests/perf_tests/third_party/perf/ to
   Chromium 476dae823269c8d05b544271af97ad1adb0db8ee
2. Switch to using PerfResultReporter instead of PrintResult directly.
3. Split RenderTestParams::suffix into backend and story; backend is
   used as part of the metric, while story is used as the story.
4. Remove the "average" metric that was being automatically reported
   by ANGLEPerfTest, as reported results are automatically averaged.
5. Update the reported metric to more clearly distinguish between
   test, backend, and metric. It is now name_backend.metric. e.g.
   DrawCallPerf_vulkan.wall_time.

Bug: chromium:923564,chromium:924618
Change-Id: I00cc191407052f23df57dbfa53b6fb088fc26960
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762360
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2019-08-23 21:44:15 +00:00
Geoff Lang e2ea45bac5 Don't reset the texture size to zero in TextureGL::releaseTexImage on Mac.
After unbinding IOSurface textures, we reset the texture size to 0 because
some platforms don't correctly update their state tracking.  This call ends
up generating GL_INVALID_OPERATION errors on Mac for unknown reasons.

Skip the call, the size reset is not required on Mac anyways.

BUG=angleproject:3859

Change-Id: I5e39b6a36aaff41082a5fcc923970f8e97774675
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769059
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2019-08-23 21:04:20 +00:00
Geoff Lang 2ed7b2906c GL: Unset the bound PBO when initiailizing texture data.
If a PBO is bound when uploading the initialization data, GL erorrs or crashes
can happen.

Covered by tests added in
https://chromium-review.googlesource.com/c/angle/angle/+/1764476

BUG=angleproject:3858

Change-Id: I16963b1c09b5b173665a87f77296607f8639c975
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769058
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2019-08-23 20:58:09 +00:00
Jonah Ryan-Davis 563f9f8107 Suppress failure in MultisampleCompatibilityTest
Started failing on Win10 Intel Vulkan recently.

Bug: angleproject:3855
Change-Id: I817ac2ffc593a9aac922dae0f5a8fb482940aa62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769077
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2019-08-23 20:43:29 +00:00
Jamie Madill 83c24aa8a1 Vulkan: Reference Context fences in FenceSyncVk.
A particular test waits on a fence that was created in another Context.
Then it immediately destroys all other resources. This triggered a bug
where the VkEvent corresponding to the FenceSync was deleted while it
was still in use by a command buffer. Fix this by referencing the other
submit fence of the second ContextVk in the FenceSync class.

Bug: angleproject:2464
Change-Id: I4ef096bf760aa8943db08d491006c68e36db993b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1757505
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-08-23 18:44:41 +00:00
Geoff Lang 0aa1102620 Only log D3D11 annotations from the thread used to initialize the annotator.
Chrome makes some ANGLE calls from multiple threads for initializing WebXR
buffers which breaks the assumption that DebugAnnotator11 is only called from a
single thread.  Work around this by only allowing DebugAnnotator11 to log
annotations from the thread used to initialize it.

BUG=995888
BUG=972914

Change-Id: I2241e078031633cafea470f85b7b1ecf1fba8466
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769057
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2019-08-23 18:15:55 +00:00
Clemen Deng d7d425404b Don't build symbol table for GLSL built-ins if on Android
The GLSL + ESSL autogenerated symbol table is too large for
android, and android also doesn't need desktop GL functionality
If on android, compile the ESSL only symbol table

Bug: chromium:996286
Change-Id: I14dfc7748dae389e78c35f82a390c67962665356
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1757372
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2019-08-23 16:43:26 +00:00
James Dong 1d5aaa6cd9 Vulkan: support dynamic indices in array of arrays
Expands existing struct-sampler rewrite to flatten arrays of arrays.
This allows us to support dynamically-uniform array indexing, which is
core in ES 3.2.

Samplers inside (possibly nested) structs are broken apart as before,
and then if the type resulting from merging the array sizes of the field
and its containing structs is an array of array, the array is flattened.

Also adds an offset parameter to functions taking in arrays to account
for this translation.

As a result of outer array sizes leaking into function signatures,
functions taking arrays of different sizes are duplicated according to
how the function is invoked.

Bug: angleproject:3604
Change-Id: Ic9373fd12a38f19bd811eac92e281055a63c1901
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1744177
Commit-Queue: James Dong <dongja@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2019-08-23 16:37:46 +00:00
Sami Väisänen 5f45432fd5 Add several angle bugs for end2end tests failing on NVIDIA
Add several angle bugs for end2end tests failing on NVIDIA.

  - TwiceMaxVaryingVec2 failing on GLES
  - MipLevels failing on Shield GLES
  - GenerateMipmapCubeBaseLevel failing on GL

BUG=angleproject:3849
BUG=angleproject:3850
BUG=angleproject:3851

Change-Id: I6e5283f0d4c1c5da8259034dfda3beb94e041b21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1768016
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-23 15:30:26 +00:00
Sami Väisänen 68c4fec059 Add AtomicCounterIncrement test case
Add AtomicCounterIncrement test case.

BUG=angleproject:3246

Change-Id: I6e74f349b758c3ae9fcb44a14e70d36495406dfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1768017
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-23 15:29:17 +00:00
Jaedon Lee 3b46885e19 Vulkan: Implement EXT_texture_type_2_10_10_10_REV
- Expose GLES 3.0 feature of 2_10_10_10_REV texture type
  on GLES 2.0 as EXT.
- Handle alpha channel value as 1.0 when used with RGB format.
- Add test for "RGB+UNSIGNED_INT_2_10_10_10_REV" case into TextureUploadFormatTest.

BUG=angleproject:3232.
Test:
 dEQP-GLES2.capability.extensions.uncompressed_texture_formats.GL_EXT_texture_type_2_10_10_10_REV
 dEQP-GLES2.functional.fbo.completeness.renderable.texture.*2_10_10_10_rev
 dEQP-GLES3.functional.fbo.completeness.renderable.texture.*2_10_10_10_rev
 KHR-GLES2.core.internalformat.*2_10_10_10_rev*
 KHR-GLES3.core.internalformat.*2_10_10_10_rev*

Change-Id: Iac00517971f9242161115c7256117a69093fb5df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1732618
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-23 15:28:26 +00:00
Jonah Ryan-Davis a9389dfeb4 Revert "Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA"
This reverts commit aac491fcdb.

Reason for revert: This test is still failing on the Win7 NVIDIA bots:
https://ci.chromium.org/p/chromium/builders/ci/Win7%20FYI%20Release%20%28NVIDIA%29/6206
https://ci.chromium.org/p/chromium/builders/ci/Win7%20FYI%20x64%20Release%20%28NVIDIA%29/6261


Original change's description:
> Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA
> 
> Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA.
> 
> BUG=angleproject:2280
> 
> Change-Id: I9ea72939cd0f828295bb694c9d3515ef554c9a36
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763948
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>

TBR=kkinnunen@nvidia.com,jmadill@chromium.org,svaisanen@nvidia.com

Change-Id: Ib7802e66b68419f7aa3dabf3a308811d36c52ff2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2280
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1769076
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2019-08-23 15:22:48 +00:00
Shahbaz Youssefi d6c7fec137 Vulkan: Support mixed column/row-major buffer fields
Adds comprehensive tests for mixed column/row-major interface blocks,
which flush out various bugs in different OpenGL drivers too.

Bug: angleproject:3443
Change-Id: Ie88cca743373891bbb49d9f564f30407475e07fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1749334
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-08-23 14:40:46 +00:00
Shahbaz Youssefi 472c74c60c Translator: Allow tree validation in children of TCompiler
This is to be able to perform validation inside TranslatorVulkan, even
if it's through ASSERTs.

Additionally, every transformation is changed such that they do their
validation themselves.  TIntermTraverser::updateTree() performs the
validation, which indirectly validates many of three tree
transformations.  Some of the more ancient transformations that don't
use this function directly call TCompiler::validateAST.

Bug: angleproject:2733
Change-Id: Ie4af029d34e053c5ad1dc8c2c2568eecd625d344
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1761149
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-08-23 14:35:06 +00:00
angle-autoroll 890a65b17d Roll ./third_party/glslang/src 34cccdc65d79..a3bc04b278ed (5 commits)
34cccdc65d..a3bc04b278


Created with:
  gclient setdep -r ./third_party/glslang/src@a3bc04b278ed

The AutoRoll server is located here: https://autoroll.skia.org/r/glslang-angle-autoroll

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

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


Bug: None
TBR=jonahr@chromium.org,jonahr@google.com
Change-Id: If2dcd0ae19146f2058d4ea2989ce2754cd87c63d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1767497
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-08-23 09:25:16 +00:00
Shahbaz Youssefi 17f26865c8 Vulkan: Fix missing deepCopy() from dFdy transform
Bug: angleproject:2733
Change-Id: Id1375618e6d91eb1d577abf2f8c707a63ab17b57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1767364
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-08-23 03:18:39 +00:00
Shahbaz Youssefi 1fe8622d8e Vulkan: Fix missing deepCopy()s in FlipBuiltinVariable
Bug: angleproject:2733
Change-Id: Ica4a3d4f53dc1f0b5beb33cfa8f996acbaa496d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1765890
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2019-08-23 03:17:09 +00:00
Jamie Madill 5f3c98de9d Revert "Vulkan: Use VK repos' internal BUILD.gn files"
This reverts commit 552f5fcb0d.

Reason for revert: Causing flakiness in "confirm no-op" CQ step.
See issue for more details.

Bug: chromium:997016

Original change's description:
> Vulkan: Use VK repos' internal BUILD.gn files
> 
> This retires custom BUILD.gn files for the Vulkan Headers, Tools,
> Validation-Layers, and Loader repos. They now have integrated BUILD.gn
> files so switched ANGLE to use those by default.
> Also Validation Layer, Loader, and Tools repos no longer uses codegen
> so this speeds up the build overall.
> Switched over from old VK_LAYER_LUNARG_standard_validation meta-layer
> to VK_LAYER_KHRONOS_validation unified layer.
> 
> This changes includes a temporary workaround to the Vulkan-Loader repo
> to remove its Window's build dependence on WDK. There are plans to
> remove that depenedence in Loader master, but until then we can use
> our custom branch workaround.
> It also includes a custom branch for validation layers that includes
> some build fixes for ANGLE.
> Finally, the layers were crashing on Android when attempting to use
> DebugUtils extension so forcing DebugReport on Android for now.
> 
> Bug: angleproject:2449
> Bug: angleproject:3320
> Bug: angleproject:3852
> Change-Id: I48b36acefcc7f2bc930eb72d6fdbc87bca24f833
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610438
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Tobin Ehlis <tobine@google.com>

TBR=ynovikov@chromium.org,tobine@google.com,syoussefi@chromium.org,jmadill@chromium.org

Change-Id: Iec97ba8cb5c38fa56bfd4c0afb0f7af8d68513ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:2449, angleproject:3320, angleproject:3852
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1767363
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2019-08-23 01:05:50 +00:00
Daksh Idnani 5ec0488010 Reland "Make Mac SystemInfo reflect the currently active GPU on dual GPU machines"
This reverts commit 58940f67ac.

Reason for revert: pixel test failures have been triaged in Gold. Relanding.

Original change's description:
> Revert "Make Mac SystemInfo reflect the currently active GPU on dual GPU machines"
> 
> This reverts commit 720a8bab0e.
> 
> Reason for revert: pixel test failures per http://crbug.com/984780#c13
> 
> Original change's description:
> > Make Mac SystemInfo reflect the currently active GPU on dual GPU machines
> > 
> > Currently, the GetSystemInfo() function (in gpu_info_util/SystemInfo_mac.mm)
> > on dual GPU Macs always updates the active GPU field of the SystemInfo
> > instance to the first non-Intel GPU it finds. This change overrides the
> > activeGPUIndex field of the SystemInfo instance to reflect the current GPU
> > instead of the non-intel GPU.
> > 
> > Bug: 985486, 984780, angleproject:3701
> > Change-Id: Ia93f38f4a2f7728c05e99c83a940722bd3808766
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752334
> > Commit-Queue: Kenneth Russell <kbr@chromium.org>
> > Reviewed-by: Zhenyao Mo <zmo@chromium.org>
> > Reviewed-by: Kenneth Russell <kbr@chromium.org>
> 
> TBR=zmo@chromium.org,geofflang@chromium.org,kbr@chromium.org,dakshidnani@google.com
> 
> Change-Id: Iacf4b8433ac1aa4d30c51f08ddfc6489af440cc4
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 985486, 984780, angleproject:3701
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1757373
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>

Bug: 985486, 984780, angleproject:3701
Change-Id: I8f2f26f68329a2826a92742c46471b8c092b36ed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1765963
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
2019-08-22 22:23:58 +00:00
Clemen Deng 56db378961 Use flat arrays instead of switches for function lookups
Current implementation of built in function lookup uses
autogenerated switch statements. Instead, use the perfect
hash mapping to have the lookup use arrays instead. This
will improve runtime performance.

Bug: angleproject:3805
Change-Id: I6d0ba62d79abd53a7fe818fe675282800781f256
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1756883
Commit-Queue: Clemen Deng <clemendeng@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2019-08-22 19:10:47 +00:00
Tobin Ehlis 552f5fcb0d Vulkan: Use VK repos' internal BUILD.gn files
This retires custom BUILD.gn files for the Vulkan Headers, Tools,
Validation-Layers, and Loader repos. They now have integrated BUILD.gn
files so switched ANGLE to use those by default.
Also Validation Layer, Loader, and Tools repos no longer uses codegen
so this speeds up the build overall.
Switched over from old VK_LAYER_LUNARG_standard_validation meta-layer
to VK_LAYER_KHRONOS_validation unified layer.

This changes includes a temporary workaround to the Vulkan-Loader repo
to remove its Window's build dependence on WDK. There are plans to
remove that depenedence in Loader master, but until then we can use
our custom branch workaround.
It also includes a custom branch for validation layers that includes
some build fixes for ANGLE.
Finally, the layers were crashing on Android when attempting to use
DebugUtils extension so forcing DebugReport on Android for now.

Bug: angleproject:2449
Bug: angleproject:3320
Bug: angleproject:3852
Change-Id: I48b36acefcc7f2bc930eb72d6fdbc87bca24f833
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1610438
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2019-08-22 18:20:47 +00:00
Jiacheng Lu ee79e2ff36 Use SamplerID in place of GLuint handles
Update all Sampler handles to type SamplerID, preparing for midframe
capture of sampler.

Bug: angleproject:3804
Change-Id: I9337919f97d61e28718987612d642c569b90246a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1761780
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-22 17:58:16 +00:00
Clemen Deng 05744c23e1 Change gl_DrawID from level = ESSL1+ESSL3 to COMMON
Built in variable gl_DrawID is exposed to ESSL1 with
a suffix, when the variable is the exact same. No need
to do this.

Bug: angleproject:3805
Change-Id: I63c71791bb6a0e8aa7b644171a3f5a81099eddc0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762359
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Clemen Deng <clemendeng@google.com>
2019-08-22 17:53:55 +00:00
Sami Väisänen aac491fcdb Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA
Remove skipping of groupMemoryBarrierAndBarrierTest on NVIDIA.

BUG=angleproject:2280

Change-Id: I9ea72939cd0f828295bb694c9d3515ef554c9a36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763948
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-22 16:06:41 +00:00
Jonah Ryan-Davis 58940f67ac Revert "Make Mac SystemInfo reflect the currently active GPU on dual GPU machines"
This reverts commit 720a8bab0e.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Make Mac SystemInfo reflect the currently active GPU on dual GPU machines
> 
> Currently, the GetSystemInfo() function (in gpu_info_util/SystemInfo_mac.mm)
> on dual GPU Macs always updates the active GPU field of the SystemInfo
> instance to the first non-Intel GPU it finds. This change overrides the
> activeGPUIndex field of the SystemInfo instance to reflect the current GPU
> instead of the non-intel GPU.
> 
> Bug: 985486, 984780, angleproject:3701
> Change-Id: Ia93f38f4a2f7728c05e99c83a940722bd3808766
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752334
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Zhenyao Mo <zmo@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>

TBR=zmo@chromium.org,geofflang@chromium.org,kbr@chromium.org,dakshidnani@google.com

Change-Id: Iacf4b8433ac1aa4d30c51f08ddfc6489af440cc4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 985486, 984780, angleproject:3701
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1757373
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2019-08-22 15:41:06 +00:00
angle-autoroll f26abdb4f4 Roll ./third_party/spirv-tools/src 0cbdc7a2c35b..aef8f92b2bb6 (2 commits)
0cbdc7a2c3..aef8f92b2b


Created with:
  gclient setdep -r ./third_party/spirv-tools/src@aef8f92b2bb6

The AutoRoll server is located here: https://autoroll.skia.org/r/spirv-tools-angle-autoroll

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

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


Bug: None
TBR=jonahr@chromium.org,jonahr@google.com
Change-Id: I6294a75d72198b951506b298e571692e4bcf31c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1764654
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-08-22 08:12:14 +00:00
James Darpinian 91dc5da806 WebKit requires "Web" as prefix to Objective-C class names
WebKit's build process requires that every Objective-C class name begin with the
prefix "Web". While this is unfortunate, we only have one Objective-C class in
the codebase that needs to change so we might as well just do it.

Bug: angleproject:3439
Change-Id: I07d1f5478b067f680971d0f24befe2f63651c735
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1764649
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: James Darpinian <jdarpinian@chromium.org>
2019-08-21 23:42:08 +00:00
Daksh Idnani 720a8bab0e Make Mac SystemInfo reflect the currently active GPU on dual GPU machines
Currently, the GetSystemInfo() function (in gpu_info_util/SystemInfo_mac.mm)
on dual GPU Macs always updates the active GPU field of the SystemInfo
instance to the first non-Intel GPU it finds. This change overrides the
activeGPUIndex field of the SystemInfo instance to reflect the current GPU
instead of the non-intel GPU.

Bug: 985486, 984780, angleproject:3701
Change-Id: Ia93f38f4a2f7728c05e99c83a940722bd3808766
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1752334
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2019-08-21 22:05:28 +00:00
Jiacheng Lu 617f23d149 Fix frame capture build for Android
Bug: angleproject:3611
Change-Id: I65018823a8d7223de0f63ea5bd6a573f62f1c24b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1748884
Commit-Queue: Jiacheng Lu <lujc@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-21 20:58:08 +00:00
Jiacheng Lu 24456989e2 Fix incorrect parameter in gl_angle_ext.xml
The first parameter of glGetFramebufferParameterivRobustANGLE should be
`GLenum target`.

Bug: angleproject:3826
Change-Id: Ice4ea265389794a51838d8e61fff774c55588512
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762714
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiacheng Lu <lujc@google.com>
2019-08-21 20:07:38 +00:00
Shahbaz Youssefi c972435b15 Vulkan: Support non-pow2 buffer alignments
Bug: angleproject:2898
Change-Id: I7c8e548a1a449f48225516c37d830ecc201b064d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762496
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2019-08-21 18:08:53 +00:00
Tobin Ehlis 1d83e1e8a1 Vulkan: Handle new validation errors
With updated validation layers Vulkan backend is hitting two new
errors. This CL fixes one and works around (WA) another.

Fixes issue where a Buffer used in vkCmdDispatchIndirect() did
not have VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT set so now setting
that usage bit for all buffers.

WA issue where invalid topologies enabled primitiveRestart so
ignoring that VUID initially until complete fix is implemented.

Bug: angleproject:3832
Change-Id: Ie3f681eaf9e2051c27bdf00a35dc50d8ad4a2528
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763196
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tobin Ehlis <tobine@google.com>
2019-08-21 15:59:43 +00:00
angle-autoroll ed4906f89d Roll ./third_party/glslang/src 95609e6d923a..34cccdc65d79 (2 commits)
95609e6d92..34cccdc65d


Created with:
  gclient setdep -r ./third_party/glslang/src@34cccdc65d79

The AutoRoll server is located here: https://autoroll.skia.org/r/glslang-angle-autoroll

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

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


Bug: None
TBR=jonahr@chromium.org,jonahr@google.com
Change-Id: I081646d2e3a52bf36108313bf531d3308eaed98c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763168
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-08-21 07:56:38 +00:00
angle-autoroll d228d52c30 Roll ./third_party/spirv-tools/src bc62722b80a6..0cbdc7a2c35b (1 commits)
bc62722b80..0cbdc7a2c3


Created with:
  gclient setdep -r ./third_party/spirv-tools/src@0cbdc7a2c35b

The AutoRoll server is located here: https://autoroll.skia.org/r/spirv-tools-angle-autoroll

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

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


Bug: None
TBR=jonahr@chromium.org,jonahr@google.com
Change-Id: I18367493052de4c05c85e2e1b6d080e70bee4f5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1763169
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2019-08-21 07:50:58 +00:00
Hyunchang Kim 6d653c02dd Vulkan: Set empty buffer to xfb descriptor set as an initial buffer
When we have xfb descriptor set without buffer bindings it causes
errors in Vulkan validation layer. So we set empty buffer by default.

BUG=angleproject:3681
Tests: dEQP-GLES3.functional.*transform_feedback*
dEQP-GLES3.functional.lifetime.attach.deleted_input.buffer_vertex_array

Change-Id: I4e7c9c9ee661f1fc92bf01fb78a2212c1a423eaa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1753387
Commit-Queue: Hyunchang Kim <hckim.kim@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2019-08-21 01:18:40 +00:00
Jonah Ryan-Davis 396527c921 Autogenerated kFunction* variables detected as mutable constants
The android binary size is increased incorrectly because the autogen
kFunction* variables are detected as mutable constants. Rename them to
function* to workaround this.

Bug: angleproject:3823
Change-Id: Ia335d1ae97ce5276a0ff8b9e432b53181cc36680
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1762494
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2019-08-20 19:40:36 +00:00
Clemen Deng 213ad6bd46 Get rid of gl_ViewID_OVR for ESSL1
Only use UInt gl_ViewID_OVR from ESSL3
OVR multiview should not be exposed in ESSL1

Bug: angleproject:3822
Change-Id: Ia9d6247e3a717b06db26f1d436e2b33336b12a7d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1759143
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Clemen Deng <clemendeng@google.com>
2019-08-20 17:02:11 +00:00