They are only used to mark angle_BaseVertex and angle_BaseInstance
uniforms, but they make it complicated for the rest of the code to
identify them as uniforms.
Bug: angleproject:4889
Change-Id: I0c632bb595dc9a7fcda19db11ecb27539b1c33e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818144
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
When enumerating PCI devices to find GPUs, only filter on the base
class. This allows devices with class PCI_CLASS_DISPLAY_OTHER to be
found.
Bug: b/178748337
Change-Id: Ia0cd29dddc49a16428da16c1ef1b94040c1221f7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2817973
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
This is no longer needed now that ANGLE uses the pinned depot_tools.
We should land this after the recipe updates to no longer use the
cache.
Patch series:
1. http://crrev.com/c/2819943
2. http://crrev.com/c/2819472
3. This CL
Bug: angleproject:5842
Change-Id: I5d166c7cd66a9d7f077c09b4149de08b22724af8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2819945
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This will align the ANGLE standalone build more with Chromium.
It can catch some kinds of build break on the CQ, preventing
some churn, and also will let us cache the vs_toolchain without
needing a special named cache.
Also includes a necessary tool to cross-compile Win on Linux.
Patch series:
1. This CL
2. http://crrev.com/c/2819472
3. http://crrev.com/c/2819945
Bug: angleproject:5842
Change-Id: Idaee3b44d970d1171076a8eaa09e3e0555331d49
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2819943
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
All builtins of gl_out, like gl_out[].gl_Position need to be
considered active as well.
Bug: angleproject:5557
Test: dEQP-GLES31.functional.tessellation.shader_input_output.gl_position_tcs_to_tes
Change-Id: I74aeef86be573dc8df17472b88acd521032d7921
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2786630
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
... instead of RGBA32_FLOAT. VK_FORMAT_R16G16B16A16_SFLOAT has
mandatory support for vertex buffers.
Bug: b/184163871
Change-Id: I7ef2933cd15e46bb984e6fd1b020d2ec15b9c60e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2807780
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Remove the SurfaceVk::present() code that rotated damage rectangles
and the feature flag that controlled that rotation.
The Vulkan specification was changed so that the rectangles provided
to the VK_KHR_incremental_present extension must never be pre-rotated.
The spec change requires the same behavior on all platforms (just in
case), even though Android is the only platform known to support
rotation.
FYI: the Vulkan spec change was merge request 4442.
Bug: b/182930524
Change-Id: I5128fd76e718f3d964c9091830bcc5886d265543
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818826
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Provide both a performance warning and a debug-util label (for AGI)
when loading a vertex attribute requires a format conversion.
Bug: b/184355822
Change-Id: Id8cbb34f70214327e1f5cc96559e4ea66dc17889
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2801154
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
This changes the call to base.test.util.UrlUtils to a native OS
method. We may need to update this when Chromium starts running
tests on "R". At that point we'll need a non-base mechanism to
pass the right folder to ANGLE. This could be via env vars,
debug properties, command-line arguments, or #defines.
The prior implementation is left as commented-out code as a
reminder to fix later.
Also updates WARN() to std::cerr because WARN() was not showing
up when testing.
Bug: chromium:1097957
Change-Id: I4a84ea007341dbe7fe2184eac3aae0ddca44cc9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818240
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Adding feature flag that forces highp in fragment shader to mediump. It
is disabled by default. You can enable it for experiment.
Bug: b/184850002
Change-Id: I73980be4ad160eb1b17a3a3ecfc09f2e4aeb468c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815240
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
The GN arg angle_expose_non_conformant_extensions_and_versions was not
being referenced correctly in the Vulkan backend, so it was not being
properly enabled in RendererVk.cpp. This CL updates the BUILD.gn files
to fix this issue.
Bug: b/184767884
Change-Id: I7244aad9112c38bf76544f8c767563a7f0cf1b2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2816165
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
Account for an in-tree AOSP build of ANGLE while generating
ANGLE commit SHA
Bug: angleproject:5838
Change-Id: I81d6d821810544c35daf6af9b167f18a4b095e99
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815241
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Many transformations only look at the first variable in a
TIntermDeclaration. This change validates that once the
SeparateDeclarations transformation has been run, multi-declarations are
not reintroduced.
Bug: angleproject:2733
Change-Id: If5f96689cbdd28817c479dd7c495b91535f87199
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815565
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
SH_DONT_PRUNE_UNUSED_FUNCTIONS was only used by tests, and never used by
ANGLE or chromium.
Bug: angleproject:4889
Change-Id: I4926f86125e69b07e9d4d95134b7b70522e0d64f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2607491
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
This CL interposes the draw call API entries. If enabled by command line
option "--minimize-gpu-work", it will override all draw calls to render
a single GL_POINT instead. It forces view port and scissor size to 1x1.
It forces all data copy to 1 texel or 1 byte. It ignores
glGenerateMipmap call. The goal is to make the frame time reflect the
driver CPU performance as much as possible so that we can use it to
compare ANGLE vs native GLES on the driver overhead, as well as
identifying CPU hot spot.
Bug: b/184766477
Change-Id: Ie8b5b585e0ed55320fed7863da37cce419acc65f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802858
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This reverts commit 8b9889bf62.
Reason for revert: Breaks CI
Original change's description:
> Fix multithreaded crash on draw commands on D3D11 backend.
>
> A crash can occur if thread A is executing eglDestroyContext while
> thread B issues a draw call, if the threads are interleaved in such a
> manner that a makeCurrent occurs without triggering a change to the
> global context and a dirtyAllState call. We handle that case by
> explicitly making current the proper contexts in the eglDestroyContext
> call.
>
> A test has been added that triggers a crash without this fix when
> running on the D3D11 backend. In addition, all of MultithreadingTest
> is enabled for the D3D11 backend.
>
> Test: Ran MultithreadingTest. Test exhibits a crash before this
> change, and does not after this change. Also ran:
> dEQP-EGL.functional.sharing.gles2.multithread.*
> dEQP-EGL.functional.multithread.*
>
> Bug: b/183756357
> Change-Id: Ic6f76a062868b2f3b4e60d29dc087ec180bfb7cd
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798591
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Doug Horn <doughorn@google.com>
Bug: b/183756357
Change-Id: I2e9d6385576330f84623d7dafbf690642fcb441f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815242
Commit-Queue: Doug Horn <doughorn@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Updating sampler uniforms when using PPOs is currently broken, since the
Context/State use the currently bound ProgramExecutable which belongs to
the PPO, but the updates only happen to the Program's executable that
the uniform belongs to.
This change updates Program::updateSamplerUniform() to update any PPO
ProgramExecutables with the updated texture information when a Program's
sampler uniforms are updated, so the Context/State use the correct data.
Bug: b/182409935
Test: ProgramPipelineTest31.SampleTextureAThenTextureB
Test: SamplersTest31.SampleTextureAThenTextureB
Change-Id: I3c4e156c6e0c781e706f321f0bd12baf484ff42a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797951
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
A crash can occur if thread A is executing eglDestroyContext while
thread B issues a draw call, if the threads are interleaved in such a
manner that a makeCurrent occurs without triggering a change to the
global context and a dirtyAllState call. We handle that case by
explicitly making current the proper contexts in the eglDestroyContext
call.
A test has been added that triggers a crash without this fix when
running on the D3D11 backend. In addition, all of MultithreadingTest
is enabled for the D3D11 backend.
Test: Ran MultithreadingTest. Test exhibits a crash before this
change, and does not after this change. Also ran:
dEQP-EGL.functional.sharing.gles2.multithread.*
dEQP-EGL.functional.multithread.*
Bug: b/183756357
Change-Id: Ic6f76a062868b2f3b4e60d29dc087ec180bfb7cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798591
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Doug Horn <doughorn@google.com>
ContextVk::mCurrentGraphicsPipeline should be reset during
ProgramExecutableVk::reset() since programInfo.release() frees the
PipelineHelper that it's pointing to. This has resulted in several
use-after-free errors, which this CL will prevent in the future.
Bug: angleproject:5624
Bug: b/182409935
Change-Id: I847bb7eb5b593c89b84f0fbbca23ea5367f5f55c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2792861
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Previously it was enabled by default in every build that includes
D3D11. This would impact CPU overhead in Chrome and other targets
that don't need this feature.
Bug: angleproject:5828
Change-Id: Ic9d700847c72978540b66fdaf7a62f959779f2e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809855
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Doug Horn <doughorn@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Skip the test on Vulkan+AMD+Linux, as it produces OpenGL errors on
Mesa/RADV.
Also skip the test on Vulkan+Intel+Linux, as it requires a Mesa version
of 20.3.5 or higher to work.
Test: angle_perftests --gtest_filter="*professional_baseball_spirits*"
Bug: b/181870336
Bug: angleproject:5827
Change-Id: Ic9c5e3767cb6cf7e925cfbcd2ae5dda0d736b87c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2810788
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
743bf032b7..c8a676460a
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 geofflang@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: 3e210bf13a..77edba11e2
* buildtools/third_party/libc++abi/trunk: a136a3b8e9..d0f33885a2
* testing: 05632231e5..a9d80f02d0
* third_party/abseil-cpp: 3cd3442b05..5447d00cc9
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..44319b56ef
* tools/luci-go: git_revision:d6d24b11ecded4d89f3dfd1b2e5a0072a3d4ab15..git_revision:63310fdc83db00f27d0902961627ff98043076e0
* tools/luci-go: git_revision:d6d24b11ecded4d89f3dfd1b2e5a0072a3d4ab15..git_revision:63310fdc83db00f27d0902961627ff98043076e0
* tools/luci-go: git_revision:d6d24b11ecded4d89f3dfd1b2e5a0072a3d4ab15..git_revision:63310fdc83db00f27d0902961627ff98043076e0
* tools/mb: 8311fb760c..93c8ae3a54
* tools/skia_goldctl/linux: -rExHiWOcks_RlkFBMnAOYEVLEGvm3sncdHy7RIQUvUC..hppkAohY9Cc45kW6zZWYXtdLKzo9CQ9XvcqLNIBaqQQC
* tools/skia_goldctl/mac: vJzRxG9eh8Zl9oN4Li63sfRu7kHPvf54fXvv-nMXJZcC..JnqYnN3TwP__L0jvUBgcLpPQsBgz9ZcBk8-bsbiez6QC
* tools/skia_goldctl/win: Uc9sbdhlwsqNbi5Q4fAmKXKL665j5gsdf3Ifpe4qnr0C..0el4SjlMxSJWhUyzmXXYXqGT59IZHXzEaDTufNH8bOwC
No update to Clang.
Bug: None
Tbr: geofflang@google.com
Change-Id: Idc95dd300300cb1d8eb49f95acaa51f017bb9b3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2812961
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Set the GS layer provoking vertex value to
GL_LAST_VERTEX_CONVENTION if the provoking vertex extension
is enabled. Otherwise, use GL_FIRST_VERTEX_CONVENTION as
vulkan follows this convention for provoking vertex.
Tests: dEQP-GLES31.functional.geometry_shading.layered.layer_provoking_vertex_*
Bug: angleproject:5452
Change-Id: Ie385f3b713486c54114dbfcefd799d180701bb60
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2799033
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Per the spec for DeleteBuffers:
> Unused names in buffers are silently ignored, as is the value zero.
Haven't seen an app delete unknown buffers yet, but just hit one that
deletes 0 a lot.
Test: MEC for Disney Tsum Tsum
Bug: b/184770989
Bug: angleproject:5835
Change-Id: I2070b753d89fdcf390203072cd7ec2c9f915089c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2811643
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
This is in preparation for using dynamic offsets for other sets than
the default descriptors.
Bug: angleproject:5736
Change-Id: I546e688ad57a35b380f8d7f303ffc0c62773ac18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2804813
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
This deletes redundant sha1 files that are not required anymore since
the migration to CIPD.
Bug: angleproject:5811
Change-Id: Ib1131f9cdda0b00b8f605f8b6dff6650d262ce25
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2810789
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
The OpenCL CTS assumes that libOpenCL has symbols for all versions as it
usually expects to link against the Khronos loader. Since we're not
using that, we have to expose all the symbols it wants, whether we
intend to implement all versions or not. All the 2.x stuff will likely
remain stubs forever as it is made optional again in 3.0.
In the generator scripts, work around a small issue where one function
takes an array-typed parameter, which confused just_the_name and
produced invalid code.
Bug: angleproject:5819
Change-Id: I6c3591dc9229c5276f14ff66ee3ee6362e8bf622
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2807531
Commit-Queue: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: John Plate <jplate@google.com>
A prior refactor had broken the method we used to cause test steps to
fail on API errors. This CL restores the path. We detected this when
analyzing a particular GLES trace that contained invalid GLES calls.
Bug: angleproject:5788
Change-Id: I26940e49cf73ce6050ea6ee274d5c5748835a167
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2782008
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
This CL makes angle_test() use an angle-specific gtest launcher -
AngleUnitTestActivity.java. This enables building standalone Android
angle without //base
Chromium-Bug: 1149922
Bug: None
Change-Id: Id84f3e2bd84c5017ed1988ca07534f424ebfa596
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2745535
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Will allow running "null" Mock ICD tests.
Also fixes a crash running the Mock ICD with the overlay.
Bug: angleproject:5736
Change-Id: I42e3943a0de00dbab3ee125f1946afd22b38fec6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809096
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This script was not parsing the trace list properly and was
running no tests.
Bug: angleproject:5811
Change-Id: I925bc16ac476823ca2f850d4a9e208b9bb5deb62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2810805
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
ANGLE doesn't recognize the Mesa vendor ID, leading to a crash in
GetVendorString(). This is exposed when trying to capture traces of
ANGLE captures with RenderDoc.
Bug: angleproject:5824
Change-Id: I6c45a01dba78fa6057df26b38ca3db89cacf865e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2809878
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
roll_aosp.sh can now generate an Android.bp file without having to
perform a roll. This facilitates on demand generation of Android.bp.
Provide an option to enable API traces with "--enableApiTrace" flag.
Usage -
# Generates Android.bp and perform a roll
./scripts/roll_aosp.sh
# Generates Android.bp
./scripts/roll_aosp.sh --genAndroidBp
# Generates Android.bp with API tracing enabled
./scripts/roll_aosp.sh --genAndroidBp --enableApiTrace
Bug: angleproject:5774
Change-Id: I3a2bd505f5d75d6d5fc331d61fa9517d6042db70
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2774758
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>