|
f1e19872
|
2023-06-12T14:38:23
|
|
Vulkan: Fix read pixels with RGBX
Typically, the format used for data uploads and downloads as well as the
storage format are consistent. That is unfortunately not the case for
GL_RGBX8_ANGLE where data uploads are through 3-byte RGB pixels while
downloads are through 4-byte RGBX pixels. This change swaps out RGBX
for RGBA on the read pixels path.
Test credit of Jason Macnak <natsu@google.com>
Bug: b/246008627
Test: atest CtsSkQPTestCases
Change-Id: I531ebd8318bf4fe5ac09c623068b790a7e301428
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608488
Reviewed-by: Jason Macnak <natsu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
cf095dfb
|
2023-06-12T14:27:57
|
|
Tests: disable TraceTest.respawnables on native Win & Linux
Bug: angleproject:8191
Change-Id: Ie61adc4b15c7db20aa890fad36c079e301f9ffc4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608487
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
21f16cb1
|
2023-06-09T17:30:38
|
|
Disable clang-format on ANGLE features autogen outputs
Updates the script to produce reasonably formatted code without
clang-format.
Autogen files moved to autogen/ sub-directories because clang-format
does not support per-file settings ;(
This allows to run this codegen very quickly
(~50ms on my machine)
Bug: angleproject:8193
Change-Id: Ie84282090d574ebb4debe3edcfd82f983f27a5ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4604578
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
43ef50f3
|
2023-06-08T15:35:17
|
|
Android: Assert that CFI is disabled
There appears to be a bug in the interaction of CFI and
relative vtables. On armv9 it results in a crash with SIGILL
when loading traces.
Since we can't overwrite the flags used to control this
just assert that it is correct in GN args.
To avoid the assert, add the following to your GN args:
arm_control_flow_integrity = "none"
Test: Build and run traces on armv9 devices
Bug: b/278955379
Bug: chromium:1441148
Change-Id: I71bf93dca9bd15d6c66ad2a7223d9bbd0c54392e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4602027
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
72df4283
|
2023-06-09T10:54:31
|
|
Tests: Add Lotsa Slots trace
Test: angle_trace_tests --gtest_filter=TraceTest.lotsa_slots
Bug: b/286514838
Change-Id: I8756a21596f2a09abff8262b3a9489b638d3522d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603714
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
55f3d3c7
|
2023-06-09T11:48:00
|
|
Tests: disable TraceTest.respawnables on native
Bug: angleproject:8191
Change-Id: Ib6dec981830c0a6748e1e1f88dd6727b27592c52
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4605334
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
b508f8ab
|
2023-06-08T10:51:09
|
|
Inline remaining _angle_trace_common* vars
Used only once after these rules were reorganized.
Bug: b/276474703
Change-Id: Ie01f20781ee1ca6f04fd19a9f37769d66561bde8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4600614
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
52152933
|
2023-06-06T15:36:36
|
|
Add trace_interface: functions and callbacks for traces
Defines the interface between the test suite
(or an other TraceLibrary class user) and trace libraries.
TraceFunctions defines entry points for calls suite->trace, such as
SetupReplay() or SetBinaryDataDir().
TraceCallbacks defines entry points for calls trace->suite, for example
for loading .angledata.gz files.
These are set up via the exported SetupEntryPoints() call. Functions
like SetupReplay etc no longer need to be exported from the trace
library.
TraceInfo (parsed representation of the trace json) is moved to
trace_interface as is. This is convenient for further changes to the
fixture that will allow to easily move some of the captured parameters
to json.
This also moves Decompress functionality (and memory ownership) to test
suite entirely, which avoids Decompress/Delete callbacks - the trace
just calls LoadBinaryData via TraceCallbacks and TraceLibrary releases
the memory either on FinishReplay or in its destructor.
This should also take care of the memory leak described in
https://crrev.com/c/3858185
Bug: b/286072760
Change-Id: Ibc6f6f64156ad805b1917c8fc41a3b0d2c0d6375
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594445
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
cfb5d2de
|
2023-04-06T16:06:35
|
|
Remove thread from mActiveThreads during eglTerminate
When eglTerminate is called remove the thread from the
active thread set if there is no context current.
This allows for proper cleanup of invalid EGL objects
during certain EGL terminate related end2end tests.
Also perform appropriate cleanup in EGLBlobCacheTest test.
Bug: angleproject:6723
Bug: angleproject:6798
Test: EGLMultiContextTest.ReuseUnterminatedDisplay*
Change-Id: I5a637938d463d6556f594d8bb0cf457efca92355
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4408364
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: mohan maiya <m.maiya@samsung.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
9f734b5e
|
2023-06-07T10:23:39
|
|
Galaxy A23: add end2end expectations for crashing tests
Bug: b/285045753
Bug: angleproject:8185
Change-Id: I5b58f8220589a9bc8b366932b6aaa06d1fe84024
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4597750
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
ad09353e
|
2023-06-07T10:19:35
|
|
Android: Galaxy A23 support
This CL adds detection of the device, for use in expectations files
Bug: b/285045753
Bug: angleproject:8185
Change-Id: Ia68402c4a85fde058b03143eb97607da4679fc7a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4597749
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
1ad4ae4d
|
2023-06-05T18:45:19
|
|
Clean up EGLPreRotation Test
EGLPreRotationBlitFramebufferTest are passing on
Pixel 6. Skip the failed tests on Pixel4 devices only.
Bug: b/172867704
Bug: angleproject:5044
Change-Id: I23744cec20bf7e74272532a00420d1488398cda8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4590228
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
16841d62
|
2023-01-31T11:51:41
|
|
Reland "Remove SPIRV_METAL references from .gn and tests"
The backend was removed but the references were not.
Update ShaderBinaryTest to properly skip tests if shader binaries are
unsupported in the current ANGLE backend.
Forcibly re-enable building of the Vulkan backend on macOS to keep
ANGLE's SwiftShader backend working.
Fixed: angleproject:6081
Change-Id: I5e6e47d5fe05b0dd6ec150b6db9fe5d75e580173
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594582
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
53b5d25f
|
2023-06-06T12:09:08
|
|
Resolve circular dependency android_helper <-> angle_test_util
Ran into it causing issues in https://crrev.com/c/4545408
Bug: b/286067106
Change-Id: I9314d1e48b064a46362a65db2c3a92760111f02f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594440
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
2780cb0b
|
2023-06-05T00:00:00
|
|
Disallow 'depth_unchanged' qualifier for WebGL contexts
This qualifier has no equivalents in HLSL or MSL.
Bug: angleproject:8046
Change-Id: I1e79c8d725306efb859152b8083d72019c982149
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4595017
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
c37d74a5
|
2023-06-06T17:07:15
|
|
Revert "Remove SPIRV_METAL references from .gn and tests"
This reverts commit f7badd3faa8b1b04538ac7b6db833e1398b13498.
Reason for revert: disables SwiftShader fallback on Mac
Original change's description:
> Remove SPIRV_METAL references from .gn and tests
>
> The backend was removed but the references were not.
>
> Update ShaderBinaryTest to properly skip tests if shader binaries are
> unsupported in the current ANGLE backend.
>
> Fixed: angleproject:6081
> Change-Id: I54bb4080763fbc0dcc2515e71ccd5df5c536db5b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4591046
> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Change-Id: Id41035017830d8b36b29bc4497919c6b01fc3f35
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4595018
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
f7badd3f
|
2023-01-31T11:51:41
|
|
Remove SPIRV_METAL references from .gn and tests
The backend was removed but the references were not.
Update ShaderBinaryTest to properly skip tests if shader binaries are
unsupported in the current ANGLE backend.
Fixed: angleproject:6081
Change-Id: I54bb4080763fbc0dcc2515e71ccd5df5c536db5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4591046
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e60f64dd
|
2023-05-31T17:02:22
|
|
D3D11: fix for atomic assigned to an SSBO.
When assigning the previous value of an atomic op to an SSBO, we do not
want to use the "direct assignment" path, since we can't pass the SSBO
expression as an argument to Interlocked*().
Instead, we change the RewriteAtomicFunctionExpressions transform not to
defer assignments until HLSL output if the LHS is an SSBO expression,
and to do its usual creation of a temporary for the previous value of
the atomic op.
In OutputHLSL, we skip the direct assignment path if the LHS is an SSBO
expression.
Bug: angleproject:8182
Change-Id: I0707f4f69757119fe5c8f8e7a12bd26025ec74e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4573827
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
|
|
6e40ce00
|
2023-06-05T11:47:29
|
|
Do not call postResolveLink in Program::deserialize.
postResolveLink assumes the program is currently linked, which is not
the case in Program::deserialize. It makes calls to set uniforms which
is not always expected by the backend.
Call postResolveLink after the backend has linked when loading
program binaries.
Bug: angleproject:6073, angleproject:8183
Change-Id: Idacb81040ea79a7df51917aaa27c77b25df7d5cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4588410
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e21ecd1b
|
2023-05-26T14:06:46
|
|
Vulkan: Add dirty bit processing for uniform buffer change
When app calls glBufferData for the uniform buffer, we may end up
reallocate the storage. This will set DIRTY_BIT_UNIFORM_BUFFER_BINDINGS
on the context, but the exact uniform block index gets lost along the
way. This CL sets mDirtyBits on the program for the corresponding block
index and then changed vulkan backend to utilize the program's
mDirtyBits and only update the buffer if it is dirty, instead of always
update all uniform buffers even if only one of the buffer is dirty. In
order to make this work, this CL also adds the reverse tracking from
buffer binding to uniform blocks. Previously we already have the
tracking of which buffer binding index is used for which buffer block
index. This CL adds mUniformBlockBindingMasks which is an array of
BitSets. Each array element tracks all the uniform block index that is
using this buffer binding index (you can have the same buffer bound to
multiple uniform block index). Then when a buffer binding index is
dirty, that BitSet gets added into program's uniform block dirty bits.
This CL and previous CL improves GfxBench gl_driver2_off score 1.8%
(from average 6797 to average 6919) on pixel 7 pro.
Bug: b/282194402
Change-Id: Ic5002643a5297907276fc9b20ca7d21af9bdc4fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4553136
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
ad1255c2
|
2023-01-30T18:35:38
|
|
libstdc++: do not use std::logf or std::powf
In libstdc++ there is no implementation of std::logf or std::powf, so
they must be replaced with calls to std::log and std::pow, and use
static_cast for using the right overload.
Bug: chromium:957519
Change-Id: I3c94502c006db200148060c1d30e0dd28b8a30d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4352890
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b0e9bbd7
|
2023-05-31T14:23:40
|
|
Vulkan: Split features for dynamic state
When a driver bug with dynamic state is encountered, it is hard to debug
which dynamic state exactly is causing an issue, due to the current
granularity of disabling all entire state from an extension. With this
change, every dynamic state gets its own ANGLE feature, and can be
toggled as necessary.
Disabling the supportsExtendedDynamicState* features implicitly
disables all dependent features.
Bug: b/285124778
Bug: b/275210062
Bug: fuchsia:107106
Bug: angleproject:5906
Change-Id: Ic291279872df2d0eb58618ff364ab118bdcc4a9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4577553
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
da41e7d9
|
2023-05-29T19:17:48
|
|
Vulkan: Account for queueSubmitOneOff() in SurfaceVk::mUse
There is a possibility to destroy EGLSurface without waiting for
`queueSubmitOneOff()` submission. One possible way to reproduce the
problem is to query `EGL_BUFFER_AGE_EXT` without any rendering in the
EGL_SINGLE_BUFFER mode.
This is a regression from:
Reland "Vulkan: SurfaceVk should only wait for GPU work that uses it"
https://chromium-review.googlesource.com/c/angle/angle/+/4406891
Test: angle_end2end_tests --gtest_filter=EGLSingleBufferTest.WaitOneOffSubmission*
Bug: b/267806287
Change-Id: I9478fcc4fd64b38747cbd80dea51137da9ef5f21
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567549
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
29ad234a
|
2023-05-30T12:03:30
|
|
Tests: Add Off The Road trace
Test: angle_trace_tests --gtest_filter=TraceTest.off_the_road
Bug: b/285110104
Change-Id: I63e86ea9a18f9f60680ac758e284cc1b5e90c0ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4576882
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ad1f58aa
|
2023-05-30T09:41:41
|
|
Tests: skip RGBTextureBufferTestES31 on Linux intel vulkan
vk_icdNegotiateLoaderICDInterfaceVersion crashes (possibly Mesa bug?)
Bug: angleproject:8179
Change-Id: I05812f436ab4f4ac2755c20bddc1cc33a28b5d8e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4574146
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
ff110417
|
2023-04-21T15:16:03
|
|
Vulkan: Emulate RGB32 uniform texel buffers when unsupported
Applies to: GL_RGB32F, GL_RGB32I, GL_RGB32UI
When VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT is specified for these
formats by the Vulkan driver, behavior is the same as before.
When it is not speficied: previously ANGLE wouldn't enable
GL_EXT_texture_buffer unless exposeNonConformantExtensionsAndVersions
was enabled; now ANGLE always enables it and does the RGB->RGBA
conversion (GPU) under the hood and tracks buffer content updates using
the paths added for tracking this for Vertex Arrays.
Bug: b/278585075
Bug: angleproject:8128
Change-Id: I4605719bf3f51c5a10c1a35ecae767833dcd45d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4456498
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
02e7f967
|
2023-05-25T14:54:49
|
|
Translator: Remove the "variables" option
Variable collection is invariably enabled by the front-end as well as
other major users of ANGLE such as Firefox. All translator backends
except GLSL force-enable variable collection either way.
This change removes this compile option and enables variable collection
unconditionally.
The flag itself remains in ShCompileOptions until references to it are
removed from Chromium.
Bug: chromium:1447314
Change-Id: I4d3b30c1bfbd345c5ad269abc62c0a6a59de2f56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568524
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
3f97a29e
|
2023-05-26T15:03:02
|
|
D3D11: Also unbind DSVs when unbinding conflicting resources
Depth stencil views can also cause conflicts when trying to bind them
resource as a shader resource and depth stencil at the same time,
even for compute shaders.
Bug: dawn:1291, angleproject:8171
Change-Id: I759556f7a8a888f1d4d6a042c26d16eedd83d2b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567573
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
055c72ac
|
2023-05-25T09:22:26
|
|
Suppress AllocateVMAImageWhenDeviceOOM for AsyncCQ
Bug: angleproject:8174
Change-Id: I28e7e8bdc26055f2ad03f2842676330430b579b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568283
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
c5282661
|
2023-05-24T15:33:19
|
|
Tests: Add Infinity Ops Trace
Test: angle_trace_tests --gtest_filter=TraceTest.infinity_ops
Bug: b/284273677
Change-Id: I19daa0a0e96a619ff3ec18074012cda213854947
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4566950
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
9b1ff7b1
|
2023-05-25T14:13:13
|
|
Translator: Fix SPIR-V translation without "variables" flag
This flag is now assumed to always be true for the SPIR-V (and MSL)
translators. They use the collected variables during translation.
Bug: chromium:1447314
Change-Id: I69d31ce8144aec0bd2a7263bad6e5a366e922740
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567830
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d9192d9a
|
2023-05-25T14:43:41
|
|
android_helper sets return code to 1 when test json is missing
e.g. FATAL failures / other crashes
Bug: b/278585075
Change-Id: I01850e547d782c302658653780b93699e9e91ffa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567831
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
aea88562
|
2023-05-19T16:52:43
|
|
Reland "Metal: Optimized BufferSubData per device"
This reverts commit ee64836f702332adaca58d9f452063a04b2da955 ,
relanding the patch stack described there.
Between patchsets 1 and 5:
- The shadow buffer allocation has been replaced with a multimap of
precisely-sized buffers, rather than rounding up buffer sizes.
- Garbage collection of shadow buffers is triggered in three situations:
- A certain number of context switches have occurred; this number
was hand-tuned to avoid GC every frame.
- A certain number of command buffer submissions has occurred; this
number was hand-tuned to GC no more often than every few seconds
on representative workloads.
- The total size of the allocated shadow buffers is more than 1 MB,
and either more than twice the size at the last garbage
collection, or 64 MB more than at the last garbage collection. In
this case, aggressive GC is performed in order to reclaim shadow
buffers more quickly.
Performance before and after these changes appears identical on
microbenchmarks. On one Figma test case, comparing GPU memory
allocated inside the BufferManager, peak consumption is decreased by
over 75%, and steady-state consumption decreases by over 88%.
Patchset 6 adds a needed workaround for a bug in the
AMDMTLBronzeDriver affecting uploads of client-side data, and
therefore some dEQP tests. It also streamlines the aggressive GC.
Bug: angleproject:7544
Change-Id: I81b061f0b33c27fa403527fa12d626f4e9c88ebe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497413
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
409bf134
|
2023-05-23T00:00:00
|
|
Metal: Adjust iOS and macCatalyst caps
* Fix swapped iOS and macCatalyst versions for
EXT_blend_func_extended and EXT_depth_clamp
* Always use 13.1 as the lowest macCatalyst version
Bug: angleproject:8121
Bug: angleproject:8047
Bug: angleproject:8015
Change-Id: I1f117de259d211cb8ce2463df59f8fee0e709ef5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568323
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
c80c74a5
|
2023-05-25T12:58:23
|
|
Skip honkai_star_rail on Intel/windows
Consistenly making Intel perf bots red by getting stuck
Bug: angleproject:8175
Change-Id: I96b31d201b5b161c89ba6654cea48becbbc35169
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567829
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
93eee5d2
|
2023-05-18T16:33:25
|
|
Vulkan: Add the Sample decoration when sample shading
The Vulkan spec was clarified that per-sample interpolation is not
necessarily done when sample shading is enabled in the API. In this
change, a SPIR-V transformation is added to add the Sample decoration to
whatever varying is missing it when sample shading is enabled in the
API.
Bug: b/283017896
Change-Id: I121c740add6fc015c9140e6a04d37ea5300c8e57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544591
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c18972fd
|
2023-04-05T10:22:38
|
|
Tests: Add Gangstar Vegas trace
Test: angle_trace_tests --gtest_filter=TraceTest.gangstar_vegas
Bug: b/280785771
Change-Id: Ia1d5de22d45979b44b0711fc510d2dfb7600b910
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507340
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
ad386845
|
2023-05-24T11:14:12
|
|
Tests: Add Empires and Puzzles trace
Test: angle_trace_tests --gtest_filter=TraceTest.empires_and_puzzles
Bug: b/283500712
Change-Id: I3b4ed61ebe8948319ca74e79cb74053b554b0009
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4551449
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
24504dd1
|
2023-05-23T20:27:49
|
|
Tests: Add Kentucky Route Zero trace
Test: angle_trace_tests --gtest_filter="*kentucky_route_zero*"
Bug: b/284061674
Change-Id: Iab42008bfa3604e306628e90abc04b7ceb6fd4bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559458
Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
fb32aef5
|
2023-05-21T20:49:06
|
|
Tests: Add Galaxy S23 deqp expectations
Expectations for the following tests:
angle_deqp_gles2_tests
angle_deqp_gles3_tests
angle_deqp_gles31_tests
angle_deqp_khr_gles2_tests
angle_deqp_khr_gles3_tests
angle_deqp_khr_gles31_tests
angle_deqp_khr_gles32_tests
Bug: b/281128706
Bug: angleproject:8157
Change-Id: If69361db7b4c6b739a84d158320ea86eda2d14f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559448
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
c74dae15
|
2023-05-12T12:45:44
|
|
Vulkan: patch vertex attrib and shader input mismatch.
opengl es spec didn't specified vertex attirb input data type
mismatch with vertex input data type. For this change, it will
change the attrib format to match the vertex input format. while
keep the same data size. (expect normalized data)
Bug: b/280241844
Change-Id: Ib28a18fe495b779d5bb0e8e43887bd36b0037dba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4528299
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
6d936bef
|
2023-05-18T11:51:05
|
|
Restore sync_restricted_traces_to_cipd upload progress bar
https://crrev.com/c/4538368 suppressed stdout for all cipd invocations
to reduce noise. This restores stdout piping to the calling process for
uploads only, as cipd shows a useful progress bar during uploads.
Bug: angleproject:8137
Change-Id: Ida7e43bc55af4dda1be768c65784fe3bc0656955
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545407
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
80e60bbc
|
2023-05-09T12:46:18
|
|
Validate non-precision qualifiers in GLSL shaders
Add validation to reject non-precision qualifiers on struct members
in GLSL shaders, as per the GLSL ES 3.2 specification,
section 4.1.8: Structures
Tests: KHR-GLES3*.shaders.negative.non_precision_qualifiers_in_struct_members
Bug: angleproject:8045
Change-Id: I863ae631b09ff773a826d542f387072491489699
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4534656
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
9e47cbd3
|
2023-05-18T14:40:37
|
|
Capture/Replay: Rework trace EGLDisplay handling
Refactor the trace-replay EGLDisplay handling to allow
initializing the global EGLDisplay handle in the
InitializeReplay4() body. This included adding
support for eglGetCurrentDisplay() to the EGL-on-
WGL shim.
Test: angle_trace_tests --gtest_filter=infinity_ops
Bug: b/282725258
Change-Id: I2319fd9a35f8fb9c0a7f10547ca39f49ce402b8d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4546267
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
|
|
7abc5248
|
2023-05-19T00:00:00
|
|
Vulkan: Enable VK_EXT_depth_clamp_zero_one
Replaced the 'depth_clamping' workaround
with the dedicated extension or explicit
fragment depth clamping.
Fixed: angleproject:3970
Bug: angleproject:8077
Change-Id: Ia7666fcb3e0e949922c13a3fd11b818cbc5a8e26
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545084
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3f633521
|
2023-05-18T21:27:00
|
|
Vulkan: Fix handling inactive unnamed I/O blocks in SPIR-V
When an unnamed I/O block already exists, later inactive unnamed I/O
blocks were not being added to the list of inactive varyings, causing
the SPIR-V transformer to trip up
Bug: b/283017896
Change-Id: Ida5b38e1a03da2b336d5904caa44f53dbdfb8aa3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544590
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
c04ad8e0
|
2023-05-17T10:59:36
|
|
Tests: Add Honkai: Star Rail trace
Test: angle_trace_tests --gtest_filter="*honkai_star_rail*"
Bug: b/283129009
Change-Id: I4c41345b83b7ea2429bccb8a814994bcb13a7486
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545308
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
f382b244
|
2023-05-19T14:28:26
|
|
Add ci/linux-trace disabling logic to ANGLE script
Currently disabled by this line in chromium/tools/build repo:
https://crsrc.org/b/recipes/recipe_modules/angle/api.py;drc=e768c9b9c2a9b34346f9c009341761a034df7a00;l=91
I will remove that logic after this CL lands. This way we can decide
whether to run this test inside ANGLE repo.
Bug: angleproject:6085
Change-Id: I8efafb11149cda1fd47a5e9a95612e521823493a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4549681
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
7d4c6d1d
|
2023-05-09T12:19:54
|
|
Allow glDelete* while PLS is active
Banning glDelete* is extremely dangerous. It will almost definitely
cause memory leaks in client code, and it makes JS garbage collection
needlessly complex.
Instead, specify that PLS is implicity deactivated if the client deletes
anything that is attached to the current draw framebuffer during a PLS
rendering pass.
Bug: chromium:1421437
Change-Id: I3a18ee6b5d5567431e6fa3eccea58cb049845502
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4521436
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
45f91a8c
|
2023-05-08T13:11:44
|
|
Deinitialize PLS planes when their texture is deleted
The spec originally called for PLS planes to be converted to memoryless
when their texture was deleted, but this is not compatible with WebGL,
which does not support memoryless planes. Change the behavior to
deinitialize them instead.
This change requires the addition of a new observer message,
angle::SubjectMessage::TextureIDDeleted, which PLS uses to deinitialize
a plane when the app deletes its texture.
Bug: chromium:1421437
Change-Id: I58fd91003747160f0a1abc1a8a7a87668890ba1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518565
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
c1fc512b
|
2023-05-16T17:14:23
|
|
Manual roll VK-GL-CTS from e3b9db9ad121 to 876d164bd88a (32 revisions)
Manual roll requested by yuxinhu@google.com
* Skipped the following tests:
dEQP-EGL.functional.fence_sync.valid.egl_fence_persistent_buffer
KHR-GLES31.core.texture_buffer.texture_buffer_errors
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/e3b9db9ad121..876d164bd88a
2023-05-16 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3
into vk-gl-cts/main
2023-05-16 piotr.byszewski@mobica.com Merge
vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main
2023-05-15 piotr.byszewski@mobica.com Fix vkExtensionFunctions.inl
2023-05-15 javed@igalia.com Add coverage for specific synchronization2
access flags
2023-05-15 cturner@igalia.com Add VPS handling for h265 tests
2023-05-15 ziga@lunarg.com Fix api version check in entry_points test
2023-05-15 matt.coster@imgtec.com
VK_FORMAT_FEATURE_TRANSFER_{SRC,DST}_BIT are implied on Vulkan 1.0
without VK_KHR_maintenance1
2023-05-15 ziga@lunarg.com Set missing dynamic states in
null_color_blend_att_ptr tests
2023-05-15 scerveau@igalia.com vulkan-video: update ESExtractor to
v0.3.3
2023-05-15 cturner@igalia.com Add extra checks for FENV_ACCESS support
on 32-bit ARM
2023-05-15 rgarcia@igalia.com Test large values when converting from
float to 64-bit ints
2023-05-15 ziga@lunarg.com Enable graphicsPipelineLibrary feature when
libraries are used
2023-05-15 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.6
into vk-gl-cts/main
2023-05-15 alexander.galazin@imgtec.com Notice of withdrawal of Vulkan
CTS 1.3.2.x
2023-05-08 rgarcia@igalia.com Test multi-value sample mask with dynamic
rasterization samples
2023-05-08 rgarcia@igalia.com Test GPL with null
VkPipelineRenderingCreateInfo contents
2023-05-08 rgarcia@igalia.com Test EDS3 null pipeline state pointers
2023-05-05 ziga@lunarg.com Add tests for pipeline robustness with cache
2023-05-05 debarshid@google.com Implement Sync Tests between CPU and GPU
2023-05-05 chrisglover@google.com Add tests for EXT_gl_colorspace_bt2020
2023-05-05 cturner@igalia.com Fix
VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04849
2023-05-05 cturner@igalia.com Fix
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07163 validation error
2023-05-05 cturner@igalia.com Fix memory corruption during validation
for decode.h264_interleaving
2023-05-05 marcin.zajac@mobica.com fetch_sources.py for cygwin and mingw
2023-05-05 gleese@broadcom.com Fix VK/VK-SC generated file inclusion
2023-05-05 gleese@broadcom.com Remove unused VKUTIL_LIBS
2023-05-05 rgarcia@igalia.com Test read-only depth/stencil attachment
with VRS
2023-05-05 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5
into vk-gl-cts/main
2023-05-04 rgarcia@igalia.com Test some EDS3 line rasterization
parameters with mesh shaders
2023-05-04 rgarcia@igalia.com Test dynamic blend equation with dual
source blending
2023-05-03 piotr.byszewski@mobica.com Update vulkan-docs to current
version
2023-05-03 cturner@igalia.com Update removeTags in fetch_sources.py for
glslang
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,yuxinhu@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
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: angleproject:8166
Bug: angleproject:8167
Bug: angleproject:8169
Change-Id: I0fb573b382e63bf4820a083759e57647f6159763
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544088
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
7aadc962
|
2023-05-05T19:28:17
|
|
Ban transform feedback and blend extensions with PLS
Transform feedback can lead to render pass breaks in the Vulkan backend.
EXT_blend_func_extended may restrict the number of draw buffers
depending on API state, which can invalidate a PLS implementation.
KHR_blend_equation_advanced does not allow multiple draw buffers, which
is required by some PLS implementations.
Bug: angleproject:7279
Change-Id: Id89f0e485ee65f55d802b121018f13b0028d8029
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4510716
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
5ab2fa96
|
2023-05-12T08:38:19
|
|
Vulkan: Move texture QFOTs to syncState()
... (and getAttachmentRenderTarget() which is syncState()-like
for deferred clear) so that QFOTs are not actually scheduled until
first use. SurfaceFlinger optimistically creates EGL images and
textures for AHBs in case it does need them in the future.
However, the images and textures may go unused. Prior to this
change, ANGLE would create pending QFOT barriers while importing
AHBs into EGL images and GL textures. However, SurfaceFlinger may
not be doing any "real work" (other than repeatedly creating and
destroying EGL images and GL textures) which would result in the
command buffers containing the QFOTs being flushed. This can
result in a large build up of unreleased memory (as the
VkDeviceMemory would still be kept alive by the reference from
the unflushed QFOT command buffer) and lead to the low memory
killer nuking processes.
Bug: b/282075554
Test: cts -m CtsOpenGLTestCases
-t android.opengl.cts.GLSurfaceViewTest
Test: adb shell dumpsys SurfaceFlinger
Test: angle_end2end_tests
--gtest_filter=ImageTestES3.AHBImportReleaseStress/ES3_Vulkan
Change-Id: I7776abb2c6f834e96aa3926c26e77c53352ee561
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4527437
Commit-Queue: Jason Macnak <natsu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
10ac4803
|
2023-05-16T11:49:01
|
|
sync_restricted_traces_to_cipd checks for extra files
Do not allow files outside of the expected ones (TraceFiles in json)
* Ran this check on existing traces: we have a few extra cpp files in
goddess_of_victory_nikke, lilys_garden
Ask for confirmation before uploading (--upload to bypass)
Other cleanup (threading instead of multiprocessing, much less noisy
logging etc)
Upload is no longer done in parallel. This might mean slower upload of
large batches (batch upgrade in experimental?) but would make failures
easier to understand.
Bug: angleproject:8137
Change-Id: I71530b886541e8b1afe9d436bf300006afb06bd7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4538368
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
6f959e07
|
2023-04-28T16:00:11
|
|
Vulkan: Add non-device memory option for VMA image
* Updated the required flags for allocateAndBindMemory() to no longer
include VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, though still preferred.
This allows VMA to allocate from another memory type if the device
is out of memory.
* Added a debug message to indicate when allocated memory for VMA image
does not have all the preferred property flags.
* Also added a warning in the case of memory allocation fallback.
* Added a perf counter to keep track of image allocation fallbacks from
the device memory.
* deviceMemoryImageAllocationFallbacks
* Added a test to make sure that VMA images can still be allocated from
other memory types even if device memory is unavailable.
* VulkanImageTest.AllocateVMAImageWhenDeviceOOM
Bug: b/280304441
Change-Id: Ic452c18ded25345cdb7e271442372b99aede045e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4493483
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
c94ee61c
|
2023-05-11T16:40:09
|
|
Tests: Update AHB test to skip if format/usage combo not supported
Bug: b/282075554
Test: angle_end2end_tests --gtest_filter=ImageTestES3.*/ES3_Vulkan
on Cuttlefish
Change-Id: Icd8a9ad71d5b59d5754f4c32f3c4dffb32bf845c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4527436
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
b526112d
|
2023-05-12T11:31:06
|
|
Tests: include system EGL configs for ES3.1 and ES3.2 tests
These are enabled with angle_test_enable_system_egl=true
Example:
[ OK ] ProgramPipelineTest32.CreateProgramWithTransformFeedbackVarying/ES3_2_EGL (280 ms)
Bug: b/278585075
Change-Id: Ic991b3bc6fa36a6856b28fcfc7a433ac183a2c4d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4526358
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
25def1a0
|
2023-05-11T17:52:09
|
|
Android test runner expects 'gtest' and marks test list
gtest is passed as the first argument when running as
out/Android/angle_trace_tests, previously skipped via argv[2:]
--list-tests usually includes "Tests list:" / "End tests list." markers
around the list - which is how GetTestsFromOutput finds them, but we
didn't include them in stdout. There is some other noise in stdout on
Android so instead of printing full stdout just add the markers back
Bug: b/276474703
Change-Id: I20ba59eb25e543b005974674b0f3688cd767b1aa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4519232
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
914d798d
|
2023-05-10T14:30:15
|
|
Dedup Gold properties code
Updates ANGLESkiaGoldProperties to use the newer method of providing the
repo's root directory instead of completely overriding how the HEAD SHA1
is obtained.
There should be no functional change as a result of this.
Bug: chromium:1443021
Change-Id: I7464dabf2c31008b119c8f6a8454c6a7f8f9a68f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4521886
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
8b9440b6
|
2023-05-01T15:31:01
|
|
Vulkan: add option to control pipeline cache data compression.
Bug: b/258207403
Change-Id: I487b1cadbacfa2f7ee889a8f58278307a126a391
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497248
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
|
|
3d455fe4
|
2023-05-03T15:35:47
|
|
Android: Galaxy S23 support
This CL:
* Adds detection of the device
* Adds end2end test support
* end2end test expectations for Vulkan backend
* Works around driver issue with vkCmdSetLogicOpEXT
Test: angle_end2end_tests, angle_trace_tests
Bug: b/277717225, b/281128706
Bug: angleproject:8157
Change-Id: If6caa5b2ba0b9d7f94e1be0841bcff2ea1c34d89
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4509693
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
64680f53
|
2023-05-05T15:58:21
|
|
Scripts: Fix non-root hash check
Use run-as to ensure the file can be read by test app.
Test: angle_trace_tests on prod device
Bug: b/276742336
Change-Id: I006f40396712064ebe6d68e04de17537a8143320
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4509708
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
|
|
74d1da6c
|
2023-05-08T11:07:28
|
|
Add instruction for trace tests w/multiple devices
* Added instruction on running trace tests when more than one device
is available through adb.
Bug: None
Change-Id: I4522311d4ad3517634f9c34b7af8c546bf4665e9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4509237
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
577b6c8d
|
2023-05-05T10:49:04
|
|
Tests: Add Street Fighter IV CE trace
Test: angle_trace_tests --gtest_filter=TraceTest.street_fighter_iv_ce
Bug: b/281007960
Change-Id: I81da4b005c50e915090f342d50362e4f8f0ac1f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508393
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
961788fd
|
2023-05-05T11:35:38
|
|
Capture/Replay: reorganize trace-related gni
Move trace-related code from gni/angle.gni to
src/tests/angle_traces.gni
Rename template angle_trace_library to angle_trace_libs as the idea is
for it to build multiple libs.
Name outside-of-apk lib group ${target_name}__unpacked_libs which is
more consistent with how targets are usually named in gn, and makes the
dependency explicitly tied to template instantiation.
Bug: b/276474703
Change-Id: I316f2a549063b8ebae177f4ffc0d4a8de1942384
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508387
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
903d9fdf
|
2023-01-19T15:37:45
|
|
Vulkan: Implement ExternalFence for use in SyncHelperNativeFence
`ExternalFence` allows concurrent usage in `CommandQueue` and
`SyncHelperNativeFence` classes eliminating need of additional
`vkQueueSubmit()` call.
Waiting in `CommandQueue` on `QueueSerial` or `ResourceUse` will ensure
corresponding state of the native FD (because `CommandQueue` will wait
on the same FD instead of some other fence).
After this change there will be only single `vkQueueSubmit()` call
from the `SyncHelperNativeFence::initializeWithFd()` method.
This CL and the follow-up is sufficient to fix the bugs below.
Bug: angleproject:8115
Bug: angleproject:8117
Test: angle_end2end_tests --gtest_filter=EGLSyncTest.AndroidNativeFence_ExternalFenceWaitVVLBug*
Change-Id: Ic562ecc71a95203454a1dc438589a13bcf3bff7f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392879
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7d6d18e4
|
2023-05-05T09:48:19
|
|
Improve adb root handling
If `id -u` returns 0, adbd is already running as root (convenient fast
path for local dev and seems we have that on bots too)
If `which su` returns something, we should be able to get root.
If "su" is there but we can't get adb root, raise.
Go back to up to 10 seconds wait.
On my local device adb root is routinely taking ~4 seconds.
adb root restarts adbd on the device so it's expected not to be fast.
Bug: b/276742336
Change-Id: If720b9176ba18ebd9734c0b8288eabc5970b5ef8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508392
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
3ad1d702
|
2023-05-04T15:57:43
|
|
angle_trace_tests_android_binaries: test -> group
We don't need it to be a test to begin with. But I looked into it
because test with use_raw_android_executable=True makes things
really complicated due to the way this is implemented upstream:
'''
this __dist target here
https://crsrc.org/c/testing/test.gni;drc=acb6ab509901650450fc387c0d9f09eb6f3f3248;l=265
which uses create_native_executable_dist
which copies files according to the list of libs:
https://crsrc.org/c/build/config/android/rules.gni;drc=a8c26a11f6cf763a5e81b2bced40584a678b9b8a;l=94
which is actually generated not at build time but by gn gen
(also called when editing gn args)
and so the inputs are not the libs themselves but
this file which only contains a list of file names
so when libs change there is no change to the inputs of this rule..
so it doesn't get invoked and the copy doesn't happen
'''
One caveat is we need to produce a list of .so libs as a data dependency
for them to be picked up by isolate
Bug: b/276474703
Change-Id: I375a5be8499f13311654244036e36c60d945c363
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507534
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
dd7eb1d8
|
2023-05-04T14:07:44
|
|
Scripts: Fix non-root support in android_helper.py
Test: angle_trace_tests on production device
Bug: b/276742336
Change-Id: I7c1f33adb37d8109540c70ac402e43462c046cec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4504920
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
e350330d
|
2023-05-02T09:57:42
|
|
Fix EGLContextCompatibilityTest registration
Before this CL these tests are not registered at all.
Avoid test name duplicates by skipping configs.
Bug: angleproject:8088
Change-Id: I0d9b8260bd2ed76bda7fb46e6a131c4d2624c55f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492920
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
1ad27152
|
2023-04-18T12:17:00
|
|
Switch angle_trace_tests scripts to android_helper
out/Android/angle_trace_tests {args}
replaces
(cd out/Android; python3 ../../src/tests/run_angle_android_test.py {args})
changes this generated file:
% grep angle_android_test_runner out/Android/bin/run_angle_trace_tests
args = ['@WrappedPath(../../src/tests/angle_android_test_runner.py)', 'gtest', '--output-directory', '@WrappedPath(.)', '--wrapper-script-args', '--runtime-deps-path', '@WrappedPath(gen.runtime/src/tests/angle_trace_tests__test_runner_script.runtime_deps)', '--suite', 'angle_trace_tests']
android_helper.py is already what we use for running traces on bots
(we don't invoke out/Android/angle_trace_tests when IsAndroid())
so this change affects only local runs
Keep run_angle_android_test.py to be able to run other suites,
but now it takes --suite instead of a positional arg (which is
consistent with how scripts are invoked on CI)
Bug: chromium:1441148
Change-Id: I5af10e8df7d9a651e0a9d52e47e3bce28d7a931b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4442006
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
d0ee0197
|
2023-05-03T13:41:36
|
|
WebGL: Limit total size of private data
... not just individual arrays.
Bug: chromium:1431761
Change-Id: I721e29aeceeaf12c3f6a67b668abffb8dfbc89b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4503753
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2fec8ae8
|
2023-05-02T15:53:29
|
|
Vulkan: Handle inactive render pass in draw-based clear
For simplicity, if a render pass is open for the current framebuffer but
is not active, a new one is started in UtilsVk::clearFramebuffer. A
future optimization could decide to reactive the render pass instead,
but needs to check for whether that's possible (with a condition similar
to what's found in ContextVk::handleDirtyGraphicsRenderPass)
Bug: chromium:1440764
Change-Id: I727d4ecefc2bc0a1a9e399b8851c4cc830d20879
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4499765
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
73f9cf00
|
2023-03-31T00:00:00
|
|
GL: Implement polygon mode extensions
* Implemented polygon mode extensions
on the OpenGL backend
* Supported capture and serialization
of the new commands and state
* Added PolygonModeTest end2end tests
Bug: angleproject:1791
Bug: angleproject:8132
Change-Id: I3bc08546a02f110dd739950129bee25ccc507bf6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492683
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1328f2f3
|
2023-04-17T16:43:12
|
|
Vulkan: Destroy the surface without holding the EGL lock
This change defers surface destruction to the end of the entry point
that causes it so that it is done without holding the EGL lock. This
works around a specific deadlock in Android. On this platform:
- For EGL applications, parts of surface creation and destruction are
handled by the platform, and parts of it are done by the native EGL
driver. Namely, on surface destruction, native_window_api_disconnect
is called outside the EGL driver.
- For Vulkan applications, vkDestroySurfaceKHR takes full responsibility
for destroying the surface, including calling
native_window_api_disconnect.
Unfortunately, native_window_api_disconnect may use EGL sync objects and
can lead to calling into the EGL driver. For ANGLE, this is
particularly problematic because it is simultaneously a Vulkan
application and the EGL driver, causing `vkDestroySurfaceKHR` to call
back into ANGLE and attempt to reacquire the EGL lock.
Since there are no users of the surface when calling
vkDestroySurfaceKHR, it is safe for ANGLE to destroy it without holding
the EGL lock.
Note that only eglDestroySurface and eglMakeCurrent may lead to the
destruction of a window surface.
Bug: b/275176234
Bug: angleproject:8127
Change-Id: I02dc52e53e150943457e3f503e7ef30469f96b05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428754
Reviewed-by: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a88635c4
|
2023-04-28T18:54:25
|
|
Android logs also go to stdout/err, line-buffered if possible
Currently logs like WARN() or INFO() only go to logcat, which doesn't
make them visible in console. This change makes them go to both logcat
and stdout/err.
Fix android_helper choking on missing json data output when test crashes
and test runner doesn't have a chance to produce that file. We still
have the stdout/err in this case, so print it. However, a crash
(such as SIGSEGV or __builtin_trap()) doesn't flush output so the
non-flushed part of the buffer doesn't get in there.
AngleNativeTest redirects stdout/err to a file which enables
fully-buffered (stdlib) mode. Change this to line-buffered when
stdout path is set to /data/ (/sdcard/ is slow) and use
/data/data/com.android.angle.test/tmp/
as the temp path in android_helper.
This makes e.g. FATAL() << "message"; show up in the logs in CI or local
runs. This currently only applies to trace and perf tests,
other tests will continue using fully-buffered
/stdout/ as chromium's test_runner uses /sdcard/Download/
for temp files.
Bug: b/276742336
Change-Id: Ia622c610f776f501223b0cca11d5ec1976eb9887
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4493463
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
84b2e9d1
|
2023-05-01T13:52:54
|
|
Capture/Replay: android_helper handles traces in/outside of apk
* list files in apk using `aapt list`
* determine lib_extension (.so vs .cr.so) based on a known lib name
* determine traces_outside_of_apk based on libangle_trace_interpreter
* update so libs handling to use these vars
* also fixes an issue where libangle_trace_interpreter.cr.so wasn't
copied to the device due to a missing check for .cr.so
Bug: b/276742336
Change-Id: I5ccc6490ed3398668feec56c816dd65a444234cb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4495326
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
f46f3908
|
2023-05-01T14:06:16
|
|
Capture/Replay: fix interpreter lib placed inside/outside APK
libangle_trace_interpreter is a shared library loaded the same way as
binary trace libraries, so they should all go together either inside or
outside the APK. Before this change this lib would end up inside the APK
when binary libs were configured to stay outside of the APK.
Bug: b/276742336
Change-Id: I690d63dcec94893692d6838bb816f9ec2477dfe1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4495327
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
c3ae9ac5
|
2023-03-30T19:58:18
|
|
Tests: Add Monster Hunter Stories trace
Test: angle_trace_tests --gtest_filter="*monster_hunter_stories*"
Bug: b/265827643
Bug: angleproject:7557
Change-Id: I7b53eff28fcd891456a755c82be3dc1de12eb79b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4385780
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
5c0b4251
|
2023-04-25T19:58:03
|
|
Reland "Tests: Add Gacha Life trace"
This reverts commit 55fbc2c502abc3d4265052eec865864f02cf8095
Relanding the trace now that we can support more traces on Android.
Original change's description:
> Tests: Add Gacha Life trace
>
> Test: angle_trace_tests --gtest_filter="*gacha_life*"
> Bug: b/267382443
> Change-Id: I6bbfb28015bf0317ccdba699e08ce6bce51b4ce3
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211589
> Reviewed-by: Roman Lavrov <romanl@google.com>
Test: run_angle_android_test.py angle_trace_tests --filter='*gacha_life*'
Bug: b/276474703
Change-Id: Ia7f3b65d19a779b8cb925f429437b6548c59f669
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4477659
Commit-Queue: Ian Elliott <ianelliott@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c7905f0a
|
2023-04-25T19:55:06
|
|
Scripts: Update setup for restricted_trace_perf
Bug: b/276474703
Change-Id: I99a6ef212f6584ecace786da2587a8d2ae34eaa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4477658
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
d37c97d1
|
2023-04-17T00:00:00
|
|
Metal: Implement OES_shader_multisample_interpolation
* Added support for sample qualifier
and shader interpolation functions
* Added MSL-specific AST transformations
* Adjusted minimum fragment interpolation offset state
query test so that accurate limits could be reported
* Drive-by: Y-flip gl_SamplePosition adjustment
* Renamed ANGLESampleMaskEnabled function constant to
ANGLEMultisampledRendering to correctly reflect its
usage
Bug: angleproject:8097
Bug: angleproject:8131
Change-Id: I25c9f36487e29f05bb9fe874e146d06378fef975
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4440827
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
35461e60
|
2023-04-12T20:02:08
|
|
Android: Build traces outside of APK
Our trace list has gotten too large for a single APK (2GB).
To continue supporting compiled traces, we can now place the
libraries in the test application's home directory, which
is discoverable and executable without root.
To build and run with all traces, use `angle_trace_perf_tests`
as your build target, then use the local Android helper script:
$ autoninja -C out/<config> angle_trace_perf_tests
$ (cd out/<config>; ../../src/tests/run_angle_android_test.py \
angle_trace_tests --filter='*among_us' \
--verbose --local-output --verbose-logging \
--fixed-test-time-with-warmup 10)
To continue using bundled libraries, specify your trace list in
GN args using `angle_restricted_traces` and use steps that
match other platforms:
$ autoninja -C out/<config> angle_trace_tests
$ out/Android/angle_trace_tests --gtest_filter='*among_us*' \
--verbose --local-output --verbose-logging \
--fixed-test-time-with-warmup 10
Bug: b/276474703
Change-Id: I3829cf7016e21894eee8890e2b0d527e8214f04e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4420279
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
e27759f9
|
2023-04-20T00:00:00
|
|
D3D11: Ignore sample mask and A2C for single-sampled rendering
Also fixed alpha-to-coverage for single-sampled
rendering and simplified sample coverage code
in the Vulkan backend.
Fixed: angleproject:8102
Change-Id: Ieea03dfdc13c6105ddf916dca6d0fea593eb3a62
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455508
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
5c9821fd
|
2023-04-21T00:00:00
|
|
GL: Fix readPixels for snorm color buffers
Bug: angleproject:8048
Change-Id: Ie4f6c5abb6d53c195f4bf460f179ae24fffd0102
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4464157
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
f1b8a29a
|
2023-04-21T14:37:23
|
|
D3D11: Fix instanced vertex streaming data copies.
Fix the other usage of ComputeVertexBindingElementCount in the D3D11
vertex streaming code. It is possible to try to copy too much source
data due to incorrect instanced count calculations.
Bug: chromium:1425606, chromium:1433180
Change-Id: Ie393b1c0b1291cf2b5087341c9fba8c98343d7bf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4459152
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b22124bd
|
2023-01-17T17:44:06
|
|
Implement new "Global Mutex" functionality.
This CL improves performance compared to the existing code as well as
allows using non-std mutex implementations. Also acts as a base for
future changes.
CL adds new build option:
angle_enable_global_mutex_recursion = is_android && angle_enable_vulkan
"mutex_recursion" work same way as `std::recursive_mutex` before. It
will help in situations when Vulkan API may return back to the ANGLE.
For example: RenderDoc layer EGL deadlock.
Automatic loading of "libVkLayer_GLES_RenderDoc.so" layer causes
deadlock in EGL.
Recursion stack:
#01 pc 000000000029ea80 /vendor/lib64/egl/libGLESv2_angle.so (egl::GlobalMutexHelper::lock(int)+596)
#02 pc 000000000029c59c /vendor/lib64/egl/libGLESv2_angle.so (EGL_GetError+32)
#04 pc 0000000000062368 /system/lib64/libEGL.so (eglQueryString+20)
#05 pc 0000000000508fec /data/local/debug/vulkan/libVkLayer_GLES_RenderDoc.so
#20 pc 0000000000016690 /system/lib64/libvulkan.so (vulkan::api::EnumerateInstanceLayerProperties(unsigned int*, VkLayerProperties*)+40)
#21 pc 00000000005aa030 /vendor/lib64/egl/libGLESv2_angle.so (rx::RendererVk::initialize(rx::DisplayVk*, egl::Display*, char const*, char const*)+292)
#26 pc 000000000029c7e8 /vendor/lib64/egl/libGLESv2_angle.so (EGL_Initialize+192)
Additionally, recursive mutex will partially solve Android
SurfaceTexture deadlock (angleproject:4354).
Some performance numbers for 1000'000 `eglGetError()` calls.
Mutex Time (ms.)
Android S906B
egl::GetGlobalMutex()(std::recursive_mutex) 41.4
(Default) GlobalMutex (std::recursive_mutex) 39.1
(Recursive) GlobalMutex (std::mutex) 34.9
(Debug) GlobalMutex (std::mutex) 34.7
(Default) GlobalMutex (std::mutex) 34.4
Windows
egl::GetGlobalMutex()(std::recursive_mutex) 20.5
(Default) GlobalMutex (std::recursive_mutex) 20.0
(Recursive) GlobalMutex (std::mutex) 21.9
(Debug) GlobalMutex (std::mutex) 20.5
(Default) GlobalMutex (std::mutex) 19.9
Note: Recursive GlobalMutex enabled only for Android Vulkan by default.
Original fix:
https://chromium-review.googlesource.com/c/angle/angle/+/2029218
Bug: angleproject:8101
Bug: angleproject:4354
Test: angle_unittests --gtest_filter=GlobalMutexTest.*
Change-Id: I9e9d9b5c598ad1177ffa147ea690bd955946a712
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401940
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2ce6d8df
|
2023-04-20T17:16:00
|
|
TextureVk calls onStateChange when releasing buffer views
TextureVk::setBuffer releases buffer views and they don't get
initialized unless a dirty bit is set. That works on the first draw call
because Texture::Texture() sets DIRTY_BIT_IMPLEMENTATION in constructor,
but when called twice mBufferViews remains unitialized causing
mBufferViews.getView() misbehavior.
Fix this by calling onStateChange when buffer views are released.
As mBufferViews is only initialized conditionally for texture buffers,
add a bool for tracking whether it is in the initialized state to avoid
marking texture as dirty unnecessarily.
Note that this isn't handled by signalDirtyStorage() inside
Texture::setBufferRange because (in this test case?) there are no
observers on Texture so onStateChange called from Texture is a no-op.
Texture however observes its TextureVk implementation so onStateChange
calls from TextureVk end up setting the dirty bit in
Texture::onSubjectStateChange.
Bug: b/278585075
Change-Id: I2b83160cdd89a086ed81e8412cd64d0aad930911
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4457147
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
03f0e51d
|
2023-04-14T19:51:54
|
|
Roll VK-GL-CTS from a3d054bf72ab to b1e5b9348e77 (21 revisions)
Define DE_FENV_ACCESS_ON based on
https://github.com/KhronosGroup/VK-GL-CTS/commit/9f306457b48b3f8258ca44462003ef39b80a7515
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/a3d054bf72ab..b1e5b9348e77
2023-04-14 gleese@broadcom.com Assert that the number of output buffers
is correct
2023-04-14 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkansc-cts-1.0.1
into vk-gl-cts/main
2023-04-14 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3
into vk-gl-cts/main
2023-04-14 piotr.byszewski@mobica.com Merge
vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main
2023-04-14 piotr.byszewski@mobica.com Test multiviewport with fragment
density map
2023-04-14 rgarcia@igalia.com Test EDS3 feature interactions
2023-04-14 rgarcia@igalia.com Fix build with GCC 13
2023-04-14 gleese@broadcom.com Modify the max_vertex tests to have room
for all attributes
2023-04-14 gleese@broadcom.com Share shader code in vertex_input tests
2023-04-14 marcin.zajac@mobica.com Add tests for manual derivatives with
subgroups
2023-04-14 gleese@broadcom.com Fix some indentation in descriptor
indexing tests
2023-04-14 gleese@broadcom.com Change descriptor_indexing tests to use
stdint types
2023-04-14 gleese@broadcom.com Trivial simplification to
descriptor_indexing tests
2023-04-14 gaopan24@hisilicon.com Fix upper Lod bound in image lod query
tests
2023-04-14 cturner@igalia.com Revert "Fix
VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07267 validation error."
2023-04-14 cturner@igalia.com Try to inform the compiler when
dynamically changing the rounding mode.
2023-04-14 marcin.zajac@mobica.com Vulkan video 1.3.244 patch
2023-04-14 ziga@lunarg.com Initialize VkSparseImageMemoryRequirements2
struct in memory tests
2023-04-14 rgarcia@igalia.com Add dynamic color blend variants without
dynamic logic op
2023-04-14 rgarcia@igalia.com Test vkCmdDrawIndirect*Count* with
multiview
2023-04-14 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5
into vk-gl-cts/main
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,ynovikov@google.com on the revert to
ensure that a human
is aware of the problem.
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry
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
Change-Id: I4e0756379eb4fcf408bc9d142ef9a14eb300897e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4427126
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
23ff85fe
|
2023-04-20T13:32:37
|
|
Suppress newly added PixelLocalStorageTest.TextureLevelsAndLayers
on iOS Metal
Bug: angleproject:7994
Change-Id: I9d3a1e2af99e3127d74b96c0740054e47fd4b661
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455107
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
|
|
ef20f191
|
2023-03-29T14:05:04
|
|
Make the PLS allow list more permissive
Allow ClipControlEXT, FlushMappedBufferRange, Gen*, PolygonOffset*,
ProvokingVertexANGLE, and KHR_debug commands.
Allow caps DEPTH_CLAMP_EXT, CLIP_DISTANCE[0..7]_EXT.
Ban indexed caps besides BLEND, SCISSOR_TEST, SCISSOR_TEST_EXCLUSIVE_NV.
Clarify that the index restrictions on indexed caps only apply to BLEND.
Bug: chromium:1421437
Change-Id: Ibdb0acaebfa992ad37c928481d5ecb10496f22e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4382502
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
fa9172a3
|
2023-03-27T09:49:33
|
|
Reland "Vulkan: Use midRenderPass clear if RP has started but inactive"
This is a reland of commit 98151770adfd990c533991da27615b4879494307
Original change's description:
> Vulkan: Use midRenderPass clear if RP has started but inactive
>
> This CL extends prior CL's optimization so that if clear is issued right
> after blitFramebuffer call (this could make sense if blit and clear are
> on different buffer), we can keep the started render pass and do the
> midRenderPass clear instead of endRenderPass and start another
> renderPass.
>
> Bug: b/273808966
> Change-Id: Ia2504e8e260867a6f797d42cd4c8a72f187280ef
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374145
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: b/273808966
Change-Id: I5c8c85c173f021a7753ef579f83d9ceb24147a7c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4442911
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6deca89e
|
2023-03-22T22:33:40
|
|
Add Spirv Instruction to explicitly cast mediump float to 16 bit
If the GLSL shader code expects the comparison between
two mediump float values returning true, but the SpirV
compiler treats one of them as 32-bit, and treats the
other one as 16-bit, the comparison would return false
instead. The SpirV compiler may not automatically cast
the mediump float values to 16 bits, because it may
utilize the RelaxedPrecision decoration to keep a mediump
float as 32-bit, so that the compiler can avoid the
type cast from 32-bit highp to 16-bit mediump.
This change adds an additional OpQuantizeToF16 SpirV
instruction to explicitly cast mediump float scalar
or mediump float vector to 16 bit, if they are assigned
with a highp float value. This ensures that if the
GLSL shader code ever compares two meiump float values,
the SpirV shader compiler is not accidentally comparing
a 16 bit with a 32 bit float value.
This fixe the deqp test failure on Pixel 6 and Pixel 7:
dEQP-GLES2.functional.shaders.algorithm.rgb_to_hsl_vertex.
Bug: b/274859104
Bug: b/274408172
Change-Id: Ifd996cea14c0f77f45ae90f38c8e53cf5035139f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4400404
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
9188aa0e
|
2023-04-18T10:05:29
|
|
Vulkan: Disallow reactivate of UtilsVk::blitResolve renderPass
We are still seeing
ClearTestES3.RepeatedStencilClearWithBlitInBetween/ES3_Vulkan flakiness
on win-test bot with intel GPU. The exact root cause is still unknown.
For now this CL will disallow reactivate of UtilsVk::blitResolve
renderPass by the subsequent user's draw calls.
Bug: b/273808966
Change-Id: Iebf37da3642d1fc3ee724b0743bfc0767ac48354
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4442446
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
443ac5b4
|
2023-04-17T00:00:00
|
|
GL: Enable OES_shader_multisample_interpolation
Drive-by:
* Fixed validity of the related state queries
* Added SampleMultisampleInterpolationTest
* Removed unused OES_sample_variables code
Bug: angleproject:8097
Bug: angleproject:8131
Change-Id: I816d2096759a96d8691acd0a8c5ecdedf880201b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4440826
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
fdbd6488
|
2023-04-12T14:02:44
|
|
metal: allow unequal size attachments.
OpenGLES3.0 allows FBO with attachments that have unequal size.
In Metal, an FBO is represented by a render pass pipeline, which
is created using MTLRenderPassDescriptor descriptor. The render
pass can have color attachments as well as depth and stencil
attachments. Those individual attachments must have a texture
attached, which works as a buffer. However, the documentation
does not specify any dimension restrictions for those textures.
Test: verify the FramebufferTest_ES3.AttachmentsWithUnequalDimensions
passes.
Test2: made a simple metal app that renders using an offscreen
render pass pipeline to a texture that has size of 32x16 with
a depth buffer attached (size of 16x32) and verified the
pixels on that. The content outside the common area had
undefined pixel data.
Bug: angleproject:7994, angleproject:6447
Change-Id: I257f8e3aad497772cfc7de08314818ee5f434b84
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4418266
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
|
|
1e166daf
|
2023-04-10T23:49:46
|
|
Finalize PLS support for non-2D texture types
Commit to supporting GL_TEXTURE_2D_ARRAY and GL_TEXTURE_3D, and add
tests. Suppress D3D11 and Metal for now, since shader image support for
non-2D types needs some work on those backends.
Drop support for cube maps, since those will cause complications on an
implementation based on texelFetch.
Bug: chromium:1421437
Bug: angleproject:8124
Bug: angleproject:8125
Change-Id: I403ae157b7d2609f2190a98c2576c92f73441412
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4415150
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
|
|
2f19bb74
|
2023-03-16T16:03:29
|
|
Reland "Vulkan: Reactivate already started render pass when possible"
This is a reland of commit ad9537af7f2bb5e22bc73f4e833fd3789adaa217
Original change's description:
> Vulkan: Reactivate already started render pass when possible
>
> In some usage case (such as lineage_mobile), we are seeing in the middle
> of render pass, app switch to another fbo just to issue a glClear()
> call, which the clear call itself gets deferred. Application then switch
> back to the original frame buffer. Before this CL, the render pass gets
> recreated due to frame buffer binding change, even though the clear gets
> deferred and new render pass and the previous render pass are
> essentially the same. This CL detects this situation and reactivate the
> current render pass instead of creating a new one. With this CL,
> lineage_m app trace reduces frame time from 3.86ms to 3.7ms, and only
> one render pass is used instead of two.
>
> This CL also allows the render pass started by BlitFramebuffer reused by
> subsequent draw calls. Asphalt_9 is hitting this use pattern and this CL
> reduces frame time by 0.1245 ms (from 5.6203 ms to 5.4958 on pixel 7
> pro)
>
> Bug: b/273808966
> Change-Id: I48c2671cbef3ff9d6cf59caae88c37c77828ee07
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4348713
> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Charlie Lao <cclao@google.com>
Bug: b/273808966
Change-Id: Ice9062122ae320b1a0108ff981bc65bd13b2ada0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4406888
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
7bc4b7e3
|
2023-03-27T00:00:00
|
|
Metal: Implement OES_sample_variables
New ESSL built-ins are mapped to their Metal
counterparts and tweaked to follow OpenGL ES
semantics when needed.
Fixed A2C interaction with sample coverage
by emulating the former on non-Apple GPUs.
Bug: angleproject:8097
Fixed: angleproject:5087
Change-Id: I5d28a941af5cbc14743a3930731529f11f55febd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404896
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
|
|
4e073356
|
2023-04-13T15:16:53
|
|
Trace Interpreter: gzip cpp and run gold tests.
New test step:
angle_restricted_trace_gold_interpreted_tests
similar to existing
angle_restricted_trace_gold_tests
but runs a subset of newest traces that have the right format.
Currently there are 8 of them and the filter is hard-coded in
test_suites.pyl. rise_of_empires can also be run interpreted but
happened to flake during testing so it's not included for now.
Trace cpp files are concatenated and gzipped
as a build step producing gen/tracegz_{trace}.gz
and these gz files are then distributed as part of the build
--trace-interpreter flag changes from boolean to string to support:
--trace-interpreter=gz:
* this uses the gz file above
* gold tests added in this CL use this option
--trace-interpreter=c:
* using uncompressed c/cpp file
* existing angle_trace_interpreter_tests runs a retrace
saving .c files and uses this option
Bug: b/276742336
Change-Id: I69544f25bda873af191978195d02ffbdd34363c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4424690
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
|