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

16506 Коммитов

Автор SHA1 Сообщение Дата
Shahbaz Youssefi ff7eafb56c Vulkan: SPIR-V Gen: Fix .length() vs ssbo arrays
Bug: angleproject:4889
Change-Id: Ib490a46fabf058064fc1b18d2c084a4bc5f9277d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052682
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-07-27 01:06:30 +00:00
Shahbaz Youssefi b19fbbdabe Vulkan: SPIR-V Gen: Support multiview
Bug: angleproject:4889
Change-Id: Ibe66f53357473dbb4435af58775b524d83ed250b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3052675
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-27 01:01:27 +00:00
Jamie Madill 3bd2273b4f Capture/Replay: Only perform call updates on valid calls.
Bug: angleproject:5133
Change-Id: Ib1a6ae1ca9ff9717c4e51f8908f5a4ee132d72ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035443
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-26 12:24:43 +00:00
angle-autoroll 2ce8181788 Roll Chromium from 172cae01c41b to 779c0d440060 (322 revisions)
172cae01c4..779c0d4400

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/main/autoroll/README.md

Changed dependencies
* build: 5e09be1ee6..958a8ec2c1
* testing: 47f98e89a3..412b2038bc
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..10f6e4b89b
* tools/clang: 131233f789..94ebf0661e
* tools/perf: 42bdc1223f..48df54f532
Clang version changed llvmorg-13-init-15163-g98033fdc:llvmorg-13-init-15561-gf98ed74f
Details: 131233f789..94ebf0661e/scripts/update.py

Bug: None
Tbr: jmadill@google.com
Change-Id: Id07aacc82c17d56790faec87e042b77db4f39d17
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3053611
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-26 08:15:23 +00:00
Gert Wollny d67cab2288 Capture/Replay: Handle missing context serialization
Some ContextLost* tests do weird things with the context
serialization which results in a mis-match of available context
serializations.

In this case check whether both serializations are missing, if so
consider this to be an equal contexts states, otherwise, if only
one serialization is available, report failure.

While touching this code, also remove an unused parameter from
the context serialization compare function.

Disable tests that still fail with this change.

Bug: angleproject:6157
Change-Id: Iee6cc7d65437112e38919cff59804e2b7f9467da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021061
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-07-26 07:18:24 +00:00
Shahbaz Youssefi a5b7655cb2 Vulkan: Unsupress fixed test
Fix landed in glslang.

Bug: angleproject:6178
Change-Id: Ie3d2a9535b4ed0d484c97e08be069ff9e27cdde1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3051313
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-24 14:03:39 +00:00
Shahbaz Youssefi 939ea5f41e Vulkan: SPIR-V Gen: Fixes to tessellation builtins
On TCS, TES and FS, gl_PrimitiveID is actually an input.  Additionally,
`patch` variables (including gl_TessLevel* built-ins) need to be
decorated with Patch.

Bug: angleproject:4889
Change-Id: I326ec4b0c011fe8eaafbad4f8bcb0f537005f96f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048320
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-07-24 05:26:35 +00:00
Shahbaz Youssefi 9416e84e17 Vulkan: SPIR-V Gen: Add missing DepthReplacing execution mode
Shaders writing to gl_FragDepth need this execution mode specified.

Bug: angleproject:4889
Change-Id: I315c90f9161f4d3d51b1c856f1364fb26a4bd404
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048317
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-24 05:26:15 +00:00
Shahbaz Youssefi de8dc2c931 Vulkan: SPIR-V Gen: Support OES_sample_variables
Built-ins from this extension are now decorated.

Bug: angleproject:4889
Change-Id: I12f80d67e3595f94fc64bdc8cb3031d36b98c279
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048319
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-07-24 04:34:45 +00:00
Shahbaz Youssefi 8bf2e5ec10 Vulkan: SPIR-V Gen: Fix switch with default at the end
A minor bug was making a switch with default at the end to jump to the
merge block instead of the default block.

Bug: angleproject:4889
Change-Id: Ied434fab949b10d45a0db1242c1b8535a5f4f773
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048321
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-07-24 04:29:55 +00:00
Shahbaz Youssefi 82d7d888f5 Vulkan: SPIR-V Gen: Fix bugs with texture* builtins
With this change, deqp ES3 tests pass.

Bug: angleproject:4889
Change-Id: Ica158d4e9012c7bb3e458da62b4a7f92aee5c6de
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047380
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-24 04:29:05 +00:00
Shahbaz Youssefi 31bc922649 Vulkan: SPIR-V Gen: Fix unpack* built-ins
The parameter to these built-ins was getting extended to a vector.

Bug: angleproject:4889
Change-Id: Idddce008c9b4f6bf9205b1e20f6e89ef657ea3a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048318
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-07-24 03:41:55 +00:00
Shahbaz Youssefi 24610ba60c Suppress failing SPIR-V gen tests
Bug: angleproject:4889
Change-Id: Ie5a5cb5c8f947e2d90861371893367b9ec341f19
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3051312
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-24 03:27:55 +00:00
Shahbaz Youssefi 6b5cec154a Vulkan: SPIR-V Gen: Fixes to scalar->vector promotion
With the ternary operator, the condition may be a bool-in-interface
block that needs to be cast.  This cast is now part of
createConstructorVectorFromScalar so it can't be missed.

Bug: angleproject:4889
Change-Id: I0e24cd4127301d33a3ac677ccaf560c4468e0799
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3047379
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-24 02:37:03 +00:00
Shahbaz Youssefi d0c03ff49e Vulkan: SPIR-V Gen: Fix lvalues passed to in/inout parameters
In GLSL, these values are semantically copied when passed to a function
as an in or inout parameter.  For example in:

    bool f(inout vec4 a, inout vec4 b)
    {
        a = vec4(0);
        return all(equal(a, b));
    }

    var = vec4(1);
    bool result = f(var, var);

result is expected to be false.  In SPIR-V, every parameter is
semantically passed by "reference".

glslang conservatively uses temporaries to pass to functions.  An
optimization in ANGLE didn't create temporaries for unindexed lvalues,
which did not take into account the above fact.  This optimization is
limited to out parameters now.

Bug: angleproject:4889
Change-Id: Ie1b4b1cecba847ba63d5810d01d0856823b89ddc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046103
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-24 00:40:43 +00:00
Shahbaz Youssefi cc69d861ab Vulkan: SPIR-V Gen: Fix textureProj's coordinate adjustment
The OpCompositeInsert's parameters were given in the wrong order.
Additionally, some instructions were not having RelaxedPrecision applied
correctly; this is fixed by deriving the decorations from the type of
the argument that's passed in a function instead of the type of the
parameter itself.

Bug: angleproject:4889
Change-Id: I34a54fcc0ef1699e554f9e1abb94c93a5b34b6d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046102
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-23 23:00:13 +00:00
Shahbaz Youssefi 9d23ae62c8 Vulkan: SPIR-V Gen: Fix conditionals with pruned blocks
Rewored the visitIfElse function to simplify the logic and correctly
handle if-else constructs where the true block is pruned.

Bug: angleproject:4889
Change-Id: Ib968a2fe65f4b6463158fd76e7d67757115ee832
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046101
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-07-23 22:03:02 +00:00
Shahbaz Youssefi ad8c32578d Vulkan: Fix bresenham line emulation in shaders with return
RunAtTheEndOfShader should have been used to ensure that the appended
code runs at the end of the shader no matter if the shader includes
return statements.

Bug: angleproject:4889
Bug: angleproject:6206
Change-Id: I848eafdf3c7bc63206a7f82cdf0badad335fa3bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046100
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-23 19:54:32 +00:00
angle-autoroll 1f72aa14a2 Roll Chromium from 208fab302a17 to 172cae01c41b (609 revisions)
208fab302a..172cae01c4

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/main/autoroll/README.md

Changed dependencies
* build: 2ef6eae721..5e09be1ee6
* testing: b8e44ff539..47f98e89a3
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..10f6e4b89b
* third_party/r8: gXyBDv_fM87KnLcxvF5AGV5lwnm-JXIALYH8zrzdoaMC..Nu_mvQJe34CotIXadFlA3w732CJ9EvQGuVs4udcZedAC
* tools/mb: 609c3a5216..159bcd47b2
* tools/perf: 7668723204..42bdc1223f
No update to Clang.

Bug: angleproject:6090
Tbr: jmadill@google.com
Change-Id: I75f1c7a574cea4e64c53b531a4953a06b9ebee4a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049710
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-23 19:39:16 +00:00
Shahbaz Youssefi 02c5cdbdbd infra: Enable gles2 deqp tests with direct SPIR-V generation
Enabled on Linux/Nvidia, Windows/Nvidia and Pixel4.

Bug: angleproject:4889
Change-Id: I50c5e31097bd7e1539caf7b229a249cbfa62b93d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042557
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2021-07-23 19:01:02 +00:00
Jamie Madill fbffcf7bb3 dEQP: Suppress two tests with undefined behaviour.
dEQP-GLES3.functional.shaders.operator.unary_operator.minus.lowp_uvec4_vertex
dEQP-GLES3.functional.shaders.operator.unary_operator.minus.mediump_uvec4_vertex

See bug for more details.

Bug: angleproject:6214
Change-Id: Ibc69dbcd1524470da620c31d41da20f69dfbaae2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049254
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-23 18:45:22 +00:00
Shahbaz Youssefi 8f6f52b563 GL: Temporarily disable sync control on all GPUs on Linux
This workaround is supposed to be limited to Intel GPUs with a recent
mesa version, but due to anglebug.com/6174 is not actually enabled on
dual-GPU systems.

The workaround is temporarily disabled on all GPUs until said issue is
fixed.

Bug: chromium:1187475
Bug: angleproject:6174
Change-Id: Ieee430b1e2a04e36d6f8d60cabc9e391f0e49988
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048237
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-23 18:23:06 +00:00
Tim Van Patten 348eaf1523 roll_aosp.sh: Add dcheck_always_on = false
The GN args 'dcheck_always_on' was recently enabled by default, which
resulted in an increase to ANGLE's APK size in AOSP from 16.3MB to
20.6MB. Adding 'dcheck_always_on = false' to roll_aosp.sh to disable the
feature reduces the APK back to the original 16.3MB size.

Bug: b/189125396
Change-Id: I606c30fe49291fa893228644c4b1fe4dd5fbeabf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048933
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-07-23 18:13:38 +00:00
Jamie Madill f18bb9c0ee Roll Chromium DEPS manually.
Because the packages list changed, the roll_chromium_deps script
was failing. Manually roll and update the failure assertion to
make the required action clear.

Changed dependencies
* build: 488aac0b88..2ef6eae721
* testing: 8c3404999d..b8e44ff539
* third_party/abseil-cpp: 9211d9e376..368be24f93
* third_party/android_deps: 0ab40df9d1..12d2cf1a46
* third_party/android_sdk: 76bd51b56b..ff9352c23f
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..10f6e4b89b
* third_party/r8: Nu_mvQJe34CotIXadFlA3w732CJ9EvQGuVs4udcZedAC..gXyBDv_fM87KnLcxvF5AGV5lwnm-JXIALYH8zrzdoaMC
* tools/luci-go: git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d..git_revision:81e548572494391fa74559e816562d60c767bc69
* tools/luci-go: git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d..git_revision:81e548572494391fa74559e816562d60c767bc69
* tools/luci-go: git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d..git_revision:81e548572494391fa74559e816562d60c767bc69
* tools/mb: 2db94c0aa3..609c3a5216
* tools/perf: 4682254401..7668723204
* tools/skia_goldctl/linux: 4iy6PO3bO0fujafbQ4I4eWhD8ErkBKf5xAnGzPrziIUC..kaeAzSau0swqM5_PxvyRfHSMDvXSjyDsqgPiP5rpoYEC
* tools/skia_goldctl/mac: _9rtsnZzHBJ4851DtK33jnz7UzMZ77SqJ9sYpciBwiMC..sZ1aXBq0Ae2kaeyAtTGpMuEEGdcqMzga658pAaCAl0IC
* tools/skia_goldctl/win: NsVk6Er035r7JVK4foqbqAksO65XEzgIT9Bjwf0Q1q0C..67QQ3-xX3VTYrb9YrwUR0VedVqNq7sebZZeHS823QdcC
No update to Clang.

Bug: angleproject:6211
Change-Id: I152572fd15066a100cb5f379f7adbd967dc6eac8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048852
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-23 17:33:59 +00:00
Shahbaz Youssefi 6262879919 Vulkan: SPIR-V Gen: Support dEQP
A temporary condition for direct SPIR-V generation is added to test
expectations while this work is in progress, so test suites can be
partially enabled.  32 tests are currently failing.

Bug: angleproject:4889
Change-Id: Icf0f6ef80d30fdb7564d8ecf928e67ca58ace86f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042556
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-23 17:21:26 +00:00
Alexis Hetu 729cbcf172 Make Display and X11 available in the same build
Chromium can use the 'use_ozone' and 'use_x11' build flags
simultaneously, so we need the Vulkan display to still be
selectable, even when the 'use_x11' flag is used.

This is required to make SwANGLE work with Ozone/Wayland, which
is going to use EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE
when SwANGLE is requested.

Bug: chromium:1231934
Change-Id: I2ac1d3d9bc231608d7f77e9a2540f4c538840076
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3049351
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
2021-07-23 17:12:58 +00:00
Jamie Madill 91b35c909e infra: Add perf results processing script.
This script is a modified version of the Chromium script:
https://chromium.googlesource.com/chromium/src/+/main/tools/perf/process_perf_results.py

The primary change is to add additional build info to the
histogram set before upload. This additional info isn't
available to the test harness and is required for the perf
dashboard upload.

We can also use this as a basis for uploading to the Skia
perf dashboard.

Test: led launch
Bug: angleproject:6090
Change-Id: Ie439ed34a24ce66f4b60b947f221e4cb96cf7d25
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2997002
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-23 16:02:30 +00:00
Jamie Madill 2c60b88a0e Make the trybot exclusion filter a proper regex.
Bug: angleproject:6212
Change-Id: I20ca648675a5dd4773d1c3e44b251388318197f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048854
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-23 16:01:49 +00:00
Jamie Madill 646c02b9eb Update angle_assert_always_on condition.
A prior CL would miss the standalone case.

Bug: chromium:1227171
Change-Id: Ib1c06d0ae7eed0feb082516690b227b964de72b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048853
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-23 14:23:58 +00:00
Jamie Madill aed52e6704 Set dcheck_always_on on every ANGLE builder.
This GN argument is necessary because some build components
reference it directly. Letting it be specified implicitly will
caused undesired side-effects.

Bug: chromium:1227171
Change-Id: Ib12cc3add58ecc8ae0360f816d30587158d756c1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048850
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-23 13:17:37 +00:00
Shahbaz Youssefi 9f7a86a808 Vulkan: SPIR-V Gen: Fix bugs with matrix ops
A number of matrix operations are fixed in this change, such as
matrix/scalar, ++matrix etc.

This change fixes most of the failing dEQP-GLES2.* tests.  The test
suite will be enabled once the remaining 32 failures are fixed.

Bug: angleproject:4889
Change-Id: I0905dfaeabe50716432ce354b890be35f2a16e59
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042555
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-23 02:47:16 +00:00
Shahbaz Youssefi 951b04bb31 Vulkan: SPIR-V Gen: Support scalar constructors
In GLSL, the scalar constructor can be given a vector and matrix, in
which case the first element is selected.  This case was not previously
handled.

Bug: angleproject:4889
Change-Id: Ibf276883fc7396b750981a4e469ff9b152c6e700
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042554
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-23 02:34:07 +00:00
Shahbaz Youssefi 45d4641a4c Vulkan: SPIR-V Gen: Support tessellation shaders
Bug: angleproject:4889
Change-Id: I7370e037a82689260e27bfd5e72c5c8c982efa58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041624
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-23 02:22:56 +00:00
Shahbaz Youssefi 7f199d7514 Vulkan: SPIR-V Gen: Support geometry shaders
Geometry shader built-ins are implemented.  A bug in
DeclarePerVertexBlocks is fixed w.r.t to gl_PerVertex arrays and a new
AST validation option is added to catch that sort of error.

Bug: angleproject:4889
Change-Id: I40b2929e450eac8ae840bbf1a1583e6c4c047c88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041623
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-23 01:31:54 +00:00
Tim Van Patten 05716b9f3f Cleanup license_text to remove missing license files
The initial list of files speficied for license_text in
generate_android_bp.py included license files that aren't present after
issuing: git clean -f -x -d -f

While the list will build correctly when rolling ANGLE locally, since
roll_aosp.sh doesn't issue a 'git clean', it fails to build on the
Android presubmit bots.

Bug: b/191882454
Test: git clean -f -x -d -f ; m ANGLE -j50
Change-Id: I31efba1f5030b118838ba1a21501f32200c93db3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046958
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-07-22 22:31:34 +00:00
Tim Van Patten 2ec44d079d List all license files in Android.bp
Update generate_android_bp.py to list all of the license files in
external/angle.

Bug: b/191882454
Change-Id: Ie13fb9199c7216b5468bf91994526fdcd8552be1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3046509
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-07-22 21:25:18 +00:00
Jamie Madill 27ccdc850c Add Chromium perf result processing script.
We will override this script in a follow-up CL to meet ANGLE's
specific needs.

Bug: angleproject:6090
Change-Id: I8d3a326645367e90ae79f49ef15ace700d6af106
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042213
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-22 17:39:38 +00:00
Alexis Hetu 20ae10c2dc Enable SwANGLE on all ozone platforms.
SwANGLE should be available on all ozone platforms.
This will also compile the vulkan backend.

Bug: chromium:1227864
Change-Id: I4971e52f45e70fed91567c3d2f369dafe160ff4f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043626
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
2021-07-22 17:31:28 +00:00
Cody Northrop b5630d5c60 Capture/Replay: Add textures to resource tracking
This CL:
- Shifts resource reset tracking to be stored in an array of structs
indexed by type. This helps curb the complexity of adding more
resource types.
- Moves buffer and program tracking to the new layout.
- Adds textures to the resource tracker, using new layout.

Note that only aspects common to all ResourceIDTypes have been moved
to the new layout. Unique pieces of data, like buffer mapping state
and GLSync handling, remain in resource tracker alone.

Since texture setup is quite involved, this CL takes the approach of
having each call applied to two call chains at the same time;
SetupReplay calls and ResetReplay calls.

ResetReplay ends up with a sequence similar to buffers:

    ...
    const GLuint deleteTextures[] = {
        gTextureMap[1], gTextureMap[2], ...  gTextureMap[n]};
    glDeleteTextures(<count>, deleteTextures);
    ...
    glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
    UpdateTextureID(1, 0);
    glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
    UpdateTextureID(2, 0);
    glGenTextures(1, reinterpret_cast<GLuint *>(gReadBuffer));
    UpdateTextureID(3, 0);
    ...
    glBindTexture(GL_TEXTURE_2D, gTextureMap[1]);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 9729);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, 33071);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, 33071);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, 33071);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, 519);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);
    glTexImage2D(GL_TEXTURE_2D, 0, 6406, 512, 512, 0, GL_ALPHA, GL_UNSIGNED_BYTE,
        reinterpret_cast<const GLubyte *>(&gBinaryData[183263280]));
    glBindTexture(GL_TEXTURE_2D, gTextureMap[2]);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, 9987);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, 519);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 6);
    glTexStorage2D(GL_TEXTURE_2D, 7, GL_COMPRESSED_SRGB8_ETC2, 64, 64);
    ...

Test: PUBG Mobile MEC
Bug: b/180418573
Bug: angleproject:6087
Change-Id: I9f8e151c12aec5b2b7af376b8e0ff644ff9c61c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016114
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-22 16:42:25 +00:00
Jamie Madill c408926fc8 Revert "EGL: GLES: Implement GL_EXT_protected_textures"
This reverts commit 6210a9b34a.

Reason for revert: Suspected for breaking ANGLE->Chrome roller.

Bug: angleproject:6204

Original change's description:
> EGL: GLES: Implement GL_EXT_protected_textures
>
> Implement EGL_EXT_protected_content Images
> Add protected member to Images and Textures
> Add error when creating objects if not supported or
> does't match native buffer
> When creating siblings pass protected state
> Add extension caps
> Add Validation
> Add GetTexParameter and SetTextparameter
> Add protected to Texture and state
> Expand tests for images and textures
>
> Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
>
> Bug: angleproject:3965
> Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>

Bug: angleproject:3965
Change-Id: Ia3ef260a17097b474189ccad5b235a9db99ee00b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043889
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-07-22 13:55:05 +00:00
Jamie Madill c5f83c34f3 Revert "Vulkan: Suppress VVL errors triggered by external formats"
This reverts commit f46df3978a.

Reason for revert: VVL change rolled into ANGLE + Chrome.

Original change's description:
> Vulkan: Suppress VVL errors triggered by external formats
>
> Since several tests are hitting these and it may be a VVL bug,
> moving to ignore rather than skips.
>
> Bug: angleproject:6155
> Bug: angleproject:6168
> Change-Id: I38a5be8d792b8b13a490be895a68349bffe69c6e
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028809
> Reviewed-by: Tim Van Patten <timvp@google.com>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
> Commit-Queue: Cody Northrop <cnorthrop@google.com>

Bug: angleproject:6155
Bug: angleproject:6168
Change-Id: I11696095300c214ca0b68624b0eb6763ba9d31f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043888
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-22 13:35:25 +00:00
Jamie Madill 03cf78880e Test Runner: Remove extra quotes from histograms.
We were double-quoting the test names.

Bug: angleproject:6090
Change-Id: I69ce089ef20068b408de7156bdbade922cdefe95
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043890
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-22 13:12:04 +00:00
angle-autoroll 8ddd1807e3 Roll vulkan-deps from 436e27578f75 to d85297cbd31b (10 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/436e27578f75..d85297cbd31b

Changed dependencies:
* spirv-cross: 18f3cd6810..cd22336a38
* spirv-headers: 1d4e3a7e3a..cf653e4ca4
* spirv-tools: 033768c24b..d9f8925785
* vulkan-tools: 33a87ce6da..a4ee3cacbb
* vulkan-validation-layers: 194db6870e..893fc802e4

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-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/main/autoroll/README.md

Bug: None
Tbr: jmadill@google.com
Change-Id: Icd49cf0abb072acb3c9bd2c79cfef3a3f8103e23
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3045222
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-22 13:01:34 +00:00
angle-autoroll e759ff888e Roll Chromium from f8ef6fcfb849 to 208fab302a17 (1307 revisions)
f8ef6fcfb8..208fab302a

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/main/autoroll/README.md

Changed dependencies
* build: fd86d60f33..488aac0b88
* buildtools/linux64: git_revision:b2d77ab1373192d1532af94b68fb8bab727b0e5b..git_revision:d565aa3e72dd9e81da9595ee8c9d7b24cb45c48b
* buildtools/mac: git_revision:b2d77ab1373192d1532af94b68fb8bab727b0e5b..git_revision:d565aa3e72dd9e81da9595ee8c9d7b24cb45c48b
* buildtools/third_party/libc++abi/trunk: 7d5c92f6cf..e8bf577fbf
* buildtools/win: git_revision:b2d77ab1373192d1532af94b68fb8bab727b0e5b..git_revision:d565aa3e72dd9e81da9595ee8c9d7b24cb45c48b
* testing: f619f21d40..8c3404999d
* third_party/android_deps: 8c49b419c2..0ab40df9d1
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..9ac1fdf373
* tools/clang: c81b8b948f..131233f789
* tools/luci-go: git_revision:175b811c1eebfa8868ab96b58a4dc7b5bcabf756..git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d
* tools/luci-go: git_revision:175b811c1eebfa8868ab96b58a4dc7b5bcabf756..git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d
* tools/luci-go: git_revision:175b811c1eebfa8868ab96b58a4dc7b5bcabf756..git_revision:9ee8b1d719c0d3c268e0e19282351ca78024af2d
* tools/mb: df951e112c..2db94c0aa3
* tools/perf: 49df801dea..4682254401
* tools/skia_goldctl/linux: up6EUcZzuFZnm2JCEV1eW0TwCEAZjPcqtS2CsZN-3qAC..4iy6PO3bO0fujafbQ4I4eWhD8ErkBKf5xAnGzPrziIUC
* tools/skia_goldctl/mac: eR_S1Urlw9be4WKiQcXwEcBn9KiDrWknodT82I6vw-kC.._9rtsnZzHBJ4851DtK33jnz7UzMZ77SqJ9sYpciBwiMC
* tools/skia_goldctl/win: pLY1rCmGsL8vtV0wWxgqY3sOWkwIxuRh6PMIn_0BDcAC..NsVk6Er035r7JVK4foqbqAksO65XEzgIT9Bjwf0Q1q0C
No update to Clang.

Bug: angleproject:6090,angleproject:6198
Tbr: jmadill@google.com
Change-Id: I30e0cc2e8d8820cca7abb589a35cbca09d325a30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3045218
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-22 08:37:04 +00:00
Shahbaz Youssefi 0e1c90cf4f Translator: Validate function parameter qualifiers
This change cleans up a confusion in EvqConst and EvqConstReadOnly,
where the former was frequently used instead of the latter for function
parameters.

The change makes the following renames to make the intent of the
relevant qualifiers clearer:

    EvqIn            -> EvqParamIn
    EvqOut           -> EvqParamOut
    EvqInOut         -> EvqParamInOut
    EvqConstReadOnly -> EvqParamConst

Bug: angleproject:4889
Change-Id: Idedd32c08a91de069b91b1657d6b783dddece04a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041622
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-22 02:03:13 +00:00
Shahbaz Youssefi 6e26145335 Vulkan: SPIR-V Gen: Fix I/O block arrays
Since the qualifier on intermediate nodes are EvqTemporary, the code
that autodeduced the block storage of I/O blocks was incorrectly
assigning them std140 when an indexed I/O block array was encountered.
This resulted in duplicate types in the SPIR-V.  This is generally
benign (other than creating an unnecessary type) except for gl_PerVertex
as it adds BuiltIn decorations.  gl_PerVertex may be an array in
geometry and tessellation shaders.

Bug: angleproject:4889
Change-Id: Iaa8e414ae01a4be127dc52df0e9406546b23d24c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041621
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-22 01:49:02 +00:00
angle-autoroll d6a7b0172c Roll vulkan-deps from a42815069bad to 436e27578f75 (16 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/a42815069bad..436e27578f75

Changed dependencies:
* spirv-cross: e51630595f..18f3cd6810
* spirv-tools: f084bcfe2b..033768c24b
* vulkan-headers: 0193e158bc..872fa25bb6
* vulkan-loader: 99c0b1433a..a0c69f0d3a
* vulkan-validation-layers: d444097efd..194db6870e

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-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/main/autoroll/README.md

Bug: None
Tbr: jmadill@google.com
Change-Id: I802bb8f42ef0c62d8f17b47b6652b22c0d498541
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043744
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2021-07-22 00:39:27 +00:00
Tim Van Patten 8a737c5d40 Capture/Replay: Update unpack state in Shared MEC
The shared context state MEC performed by
CaptureSharedContextMidExecutionSetup() needs to include updating the
pixel unpack state before capturing texture contents. Otherwise,
computeRowPitch() will compute the wrong value, leading to a crash in
memcpy() when capturing Pokemon GO.

Bug: angleproject:6203
Change-Id: Id1b2d0b4f3bc79e615778ba513f50aabaeb4a56e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3044356
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-21 23:48:47 +00:00
Nicolas Capens f8d277e452 Document the need for is_component_build = false
Setting `is_component_build = false` in the GN args is highly
recommended for standalone builds on Windows, to support the common
practice of moving libEGL.dll and libGLESv2.dll to an application's
directory. It makes them self-contained instead of depending on other
DLLs (like e.g. ext-ms-win-kernel32-sidebyside-l1-1-0.dll).

One notable exception is that the non-component build still depends on
d3dcompiler_47.dll, if the Direct3D backend is being used.

Bug: angleproject:6202
Change-Id: Id13e902d3169b37ec00a8065d9063ec7d683134b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3042543
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
2021-07-21 22:33:54 +00:00
Jamie Madill 1a4ac82a0b Vulkan: Disable border color on SwiftShader.
A bug with floating point clamping is breaking some tests on SwS.

Bug: angleproject:6200
Change-Id: Id608f5610a09e85f1bc41e38f20c6f7f0330f77b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3041741
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-21 16:34:51 +00:00