|
c1ba8e6f
|
2023-06-20T16:03:20
|
|
Vulkan: Flatten shader interface variable maps
This change removes duplicate entries added in the shader shader
interface variable maps. One level of arrayness (indexed by shader
type) is removed from these maps as now there is only a single entry
per linked resource/etc.
Bug: angleproject:7220
Change-Id: Ibf2d06a0e1f68e68797c2066f36e14cb9e667f77
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4628677
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4ed2d403
|
2023-06-22T11:49:41
|
|
metal: disable render to texture extension.
It's implemented incorrectly in the current backend (or not
implemented at all).
Once it's fixed, we can turn on that again.
Bug: angleproject:3107, angleproject:6395, chromium:1424910
Change-Id: I176327b027b25084525a242c81c1625efe43c89a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4634659
Commit-Queue: Maksim Sisov <msisov@igalia.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
75065c57
|
2023-06-22T09:49:59
|
|
Vulkan: Fix email in OWNERS
Bug: None
Change-Id: I552b0192e5d191a7d759c15b809486b7f1ee1f57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4636781
Commit-Queue: Charlie Lao <cclao@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
70ecc80f
|
2023-06-14T11:12:52
|
|
Metal: Store MSL in shared pointers to immutable strings
The translated metal shader source is quite large and we store copies
in both ProgramMtl and mtl::LibraryCache.
Instead, store the source in shared_ptrs to immutable strings. This has
a nice side effect of simplifying the cache keys for mtl::Library cache
and avoiding string copies.
This saves about 4% GPU process memory.
Since these strings are rarely accessed, the overhead of shared_ptr is
not a concern.
Bug: chromium:1329376
Change-Id: I507529ff1e25cc6aafead272fc9bb6ab0b8dbe88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4614361
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
8bc7fffb
|
2023-06-21T10:54:27
|
|
Include framebuffer completeness reason in draw errors
Framebuffers have a much more detailed "reason" string for framebuffer
completeness errors. Make sure that reason is printed when a draw call
fails due to incomplete framebuffer.
Rework how draw validation errors are stored to keep the extra GL error
enum.
Bug: chromium:1455725
Change-Id: I5984452c5aab4f8ccb73d43bd63bca1aae53e847
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4632578
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
ecf245ff
|
2023-06-14T16:24:17
|
|
Metal: Don't force all incomplete textures to initialize
ensureIncompleteTexturesCreated is called in every syncState and
initializes all types of incomplete textures, even when they are not
used.
Skip it entirely. ContextMtl::getIncompleteTexture already lazily
creates the incomplete textures, per type.
This saves about 1mb (~5% of ANGLE's allocations for Chrome) of
malloc'd memory per context.
Bug: chromium:1329376
Change-Id: I14ab7098ce2e486383d1d0d41039f0e526755878
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615190
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
|
|
e431b3e4
|
2023-06-20T16:42:16
|
|
Add pixels checks to bandingTest on Android +toggle GL_DITHER
Bug: b/284462263
Change-Id: I69122d1d53d03a2e75d498e77a669099a568ab3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4628974
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6e99d6bc
|
2023-06-22T09:14:11
|
|
Only build angle_capture_tests_trace when building traces
Some PGO build failed in Chromium. Standalone ANGLE testing is
currently sufficient.
Bug: chromium:1456291
Change-Id: I5a685020afdfe152348d282a28379c3b628d5964
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4636681
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
bbcf54bc
|
2023-06-16T16:02:08
|
|
Vulkan: Refactor uniform/block binding duplication code
Previously, resource binding assignment was done as such:
```
for each shader stage
assign bindings to textures
assign bindings to blocks
assign bindings to images
etc
```
To deduplicate bindings when the same resource was used in multiple
stages, a map was used, keyed by the resource's name, to detect when an
already visited resource is encountered in a future stage. This was
both inefficient and unnecessarily complicated.
With this change, resource binding assignment is done as such:
```
for each texture
assign one binding to all shader stages
for each block
assign one binding to all shader stages
for each image
assign one binding to all shader stages
etc
```
The aforementioned map is removed.
Because the resource bindings are now changed, the rest of the code
(which sets up the pipeline layout, updates descriptor sets, sets
dynamic buffer offsets, etc) are all updated to follow the above
pattern. As a result, nested loops are avoided and duplicate entries in
the variable map are never visited.
Bug: angleproject:7220
Change-Id: Iaff7b5f8b2bada8ac5078d21e5c790bf0d27aca7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4622011
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ac263582
|
2023-06-19T12:26:44
|
|
Vulkan: add workaround for VK_EXT_full_screen_exclusive on AMD
On outdated (but recent) AMD drivers, the Windows-only Vulkan extension
VK_EXT_full_screen_exclusive appeared to be implicitly enabled and set
to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT mode. Even though
ANGLE did not enable or interact with this extension at all, the driver
was incorrectly returning VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
error codes on various swapchain operations when the full screen window
focus was lost (i.e. alt-tab out and back in). Naturally, ANGLE was not
expecting these error codes and did not know how to handle them.
Depending on where the errors occurred, ANGLE might crash or retry
creating the swapchain repeatedly.
Treating the unexpected VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
error code as VK_ERROR_OUT_OF_DATE_KHR/VK_SUBOPTIMAL_KHR was not
sufficient, because the driver would repeat the error on every swapchain
operation, apparently expecting the error to be handled by
a vkAcquireFullScreenExclusiveModeEXT call (even though that would make
no sense, since the extension was not enabled).
The incorrect driver behavior was reported to AMD and was fixed in
recent driver releases. The earliest driver I've tested and know to be
working is AMD's Adrenaline driver version 23.5.2
(VkPhysicalDeviceProperties calls this driverVersion 2.0.262/0x800106).
The last known bad version was 0x8000e9.
The simplest workaround on these older AMD graphics drivers is to
explicitly enable the extension, but set it to
VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT mode. On newer drivers we do not
need to do anything with the extension and can ignore it.
Bug: angleproject:8215
Change-Id: I7c58d47a0350f4b0bc1a77f200c1e2f72fcde8d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4627279
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
c23029d2
|
2023-06-21T14:19:00
|
|
[apple] Fix build with newer libc++
Using `return mPtr` without a `*` works too, but it looks lie these
methods are unused, so just remove them.
Bug: chromium:1454568
Change-Id: Ie4441ac611787765e354480561e6a0e25aefa159
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4631841
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Nico Weber <thakis@chromium.org>
|
|
954b3339
|
2023-06-21T11:13:38
|
|
Add internal format to TexStorage validation errors
Print the hex value of the internal format when generating error
messages about invalid internal formats in glTexStorage.
Bug: chromium:1455725
Change-Id: Ia99c8891c5510590a3fcaf3699476942bf80b57c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4632579
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
b28ba57e
|
2023-06-20T16:32:42
|
|
Update OWNERS
Bug: None
Change-Id: I20ed7c410967cb207c50e32af58abacc6ddb816c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4628679
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
15156b1d
|
2023-06-19T11:58:20
|
|
Vulkan: disable graphics_pipeline_library on old NVIDIA drivers
On drivers before R530, there are some transient visual glitches in
rendering when using VK_EXT_graphics_pipeline_library. Basically you
might see correct renders for a few frames, very incorrect renders for
about 10-20 frames, and then it would render correctly from then on.
This problem went away either at R530 or slightly after. This change
sets the minimum version to R531, which is the first version I observed
behaving correctly.
Bug: angleproject:8218
Change-Id: I7af4f74c1469ecf2306dec0cab9062eff2ec5f2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4627277
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7adf6532
|
2023-06-20T16:31:34
|
|
Remove unused helper classes
Bug: angleproject:6954
Change-Id: I325f6a67b1f2f1dffdf051f83a8d4f29c4fe25dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4628678
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2e0b369d
|
2023-06-19T12:05:24
|
|
Vulkan: copy drawIndirectFirstInstance from physical device features
Not doing so results in VVL errors (you need the GPU-assisted validation
preset enabled to see this error):
[ VUID-VkDrawIndexedIndirectCommand-firstInstance-00554 ]
The drawIndirectFirstInstance feature is not enabled, but the
firstInstance member of the VkDrawIndexedIndirectCommand structure
at index 1 is not zero The Vulkan spec states: If the
drawIndirectFirstInstance feature is not enabled, firstInstance must
be 0
Bug: angleproject:8220
Change-Id: Ia43036584b85e4a7d9c3fcaf793be94b965f708f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4627278
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
041e2731
|
2023-06-19T19:27:09
|
|
optimize glShaderSource string concatenation
This optimizes for both memory usage and time. Before this change, we
had a redundant copy of the shader source fragments in memory:
- The user application
- The ostringstream buffer
- The final concatenated string
The second one can be avoided by not using ostringstream.
The second issue is that ostringstream will reallocate as we fill it,
and depending on the number of input strings (and their size), it may
reallocate several times. Since we aren't doing anything particularly
fancy with the ostringstream, we can just preallocate the appropriately
sized string and fill it with the input strings all at once.
If we don't mind taking an additional dependency on abseil-cpp, this
could also be implemented with absl::StrJoin, but it seems like a heavy
dependency for something relatively simple.
Tests run: GLSLTest.*ShaderLength*
Bug: angleproject:8219
Change-Id: Idba277e7860116f858e7a86f4b03420dd383a52f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4627282
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
152e0d16
|
2023-06-19T14:44:09
|
|
Vulkan: detect Apple GPU as being a tile-based renderer
This helps systems running MoltenVK on Apple Silicon.
Bug: angleproject:8221
Change-Id: I28ce9b3dc153fb420429641776767fb71734685a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4627276
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
508eb865
|
2023-06-19T11:54:06
|
|
Vulkan: avoid crash on AMD drivers with MSRTT emulation
If you have a multisampled color+depth framebuffer and discard depth
before the end of the render pass, ANGLE skips assigning
pDepthStencilResolveAttachment. Doing so is fine on most vendors, but on
AMD drivers, the application will crash in the user mode driver when
calling vkCreateRenderPass2KHR.
Simply not adding the depth/stencil resolve structure to the PNext chain
avoids the crash and allows the application to function normally.
Bug: angleproject:8217
Change-Id: I0dc14c03d2b999e280a4d363e0296fd10812540c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4627280
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
262784f4
|
2023-06-19T17:56:04
|
|
D3D11: unbreak instanced indirect multidraw with ushort indices
The baseInstance parameter was not being passed in the unsigned short
index case.
Bug: angleproject:8216
Change-Id: If660c6d4125bfd2aff8f4fd3a9171194635d21c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4627281
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5aa818fd
|
2023-06-20T15:08:03
|
|
Assert !is_official_build in Android builds.
Bug: angleproject:7381
Change-Id: I658cb0389fc5a12726ea873c3a2d5afb006b6953
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4628674
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
|
|
681ca074
|
2023-06-16T15:03:13
|
|
Vulkan: Deduplicate SpvAssignLocations call in program pipeline
Some logic already in SpvGetShaderSpirvCode was duplicated for program
pipelines. In particular, this necessitated exposing UniformBindingInfo
which is an internal detail of SpvAssignLocations.
In a follow up, UniformBindingInfo will be removed altogether.
Bug: angleproject:7220
Change-Id: I9fa60c716de6dfb0d3a72c4f4dd3822043bab308
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4622010
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7ef6452d
|
2023-06-14T16:02:46
|
|
Metal: Refactor hasValidRenderTarget checks
Separate the computation of hasValidRenderTarget into a function and
only call it if the cheaper check to allowRenderpassWithoutAttachment
returns false.
Bug: chromium:1329376
Change-Id: Id20a33913b7133a5aea82f53abb0a86664b4f2c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615188
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
a62cc521
|
2023-06-14T23:27:31
|
|
GL: fall back to WGL if EGL_ANGLE_surface_orientation unset
When an app attempts to use the GL backend on Windows, there is
currently an undocumented hard requirement for
EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE. This is caused by
EGL_ANGLE_surface_orientation not being fully implemented, so
instead let ANGLE fall back to the slow WGL pipeline.
See: I012168531d8c2e5b189671533cea9f57ec713538
BUG: angleproject:8201
Change-Id: I28c6a948a5fc0e3ebfff86c4cbf95c666f5c7cd4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4614646
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
174742fd
|
2023-06-18T13:07:00
|
|
Roll VK-GL-CTS from 7fcb3c6e0082 to f29bd2feeaff (19 revisions)
Suppress dEQP-EGL failures.
https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/7fcb3c6e0082..f29bd2feeaff
2023-06-18 lorenzo@khronosgroup.org Merge vk-gl-cts/github-main into
vk-gl-cts/main
2023-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.9
into vk-gl-cts/main
2023-06-16 piotr.byszewski@mobica.com Split pipeline.txt in vksc-default
2023-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.6
into vk-gl-cts/main
2023-06-16 alexander.galazin@imgtec.com Fix check_build_sanity.py error
2023-06-16 lorenzo@khronosgroup.org Add missing line in AndroidGen.mk
for vktFragmentShadingRateMiscTests.cpp
2023-06-16 rgarcia@igalia.com Test FSR in a pipeline without fragment
shader
2023-06-16 ziga@lunarg.com Add xfb test drawing outside of xfb begin
2023-06-16 piotr.byszewski@mobica.com Test RT interaction with flags
added by GPL
2023-06-16 rgarcia@igalia.com Test gl_SampleMaskIn with sample shading
2023-06-16 rgarcia@igalia.com Test enabling and disabling VRS statically
2023-06-16 rgarcia@igalia.com Test allocation and binding offsets with
index buffers
2023-06-16 pdaniell@nvidia.com Remove the "Error:" prefix with
NotSupported results
2023-06-16 jenatali@microsoft.com Fix skipping when synchronization2 is
unsupported on Windows
2023-06-16 gleese@broadcom.com Remove 64-bit test code for builtins
which don't support it
2023-06-16 jenatali@microsoft.com Don't include windows.h in the vk
namespace
2023-06-16 rgarcia@igalia.com Disallow direct linking of GLES libraries
by default
2023-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.6
into vk-gl-cts/main
2023-06-15 younggwan.kim@arm.com Merge dev/EXT_shader_tile_image into
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,syoussefi@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:8214
Change-Id: I84598fb784adf1e30abbeaac3c53dcd97108d58a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4624553
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
84379a52
|
2023-06-16T14:12:54
|
|
Vulkan: Mark the location of vertex output in the compiler
So the SPIR-V transformer doesn't have to discover it.
Bug: angleproject:7220
Change-Id: I13a4c7a205e664195a9631169a207c248497143a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4621789
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
803c3b10
|
2023-06-16T13:53:25
|
|
Vulkan: Mark the location of xfb emulation in the compiler
So the SPIR-V transformer doesn't have to discover it.
Bug: angleproject:7220
Change-Id: I5c74e5f3cbd8fe0c03ee2c445fddb7a0ef36fb91
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4621788
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
ad13d41f
|
2023-06-16T13:28:58
|
|
Vulkan: Mark the beginning of the shader in the compiler
So the SPIR-V transformer doesn't have to discover it.
Bug: angleproject:7220
Change-Id: I2a41656cc224d1fc02e656da15d9781705a6e785
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4621787
Reviewed-by: Roman Lavrov <romanl@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
b46344bb
|
2023-06-12T13:50:40
|
|
Metal: Cache render pipelines at the context level
Cache Metal render pipelines in a new mtl::PipelineCache which lives
at the context level. This allows us to clean up unused pipelines from
programs that are not actively used.
The cache limits were chosen based on running Chromium. Without a
limit, the total number of pipelines peaks at ~200. With frequent GCs,
the active working set usually sits at ~60 pipelines.
Bug: chromium:1329376
Change-Id: Ifa83b797c893684294e16dd638f6b3a35e1d043f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608486
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
fb0174fa
|
2023-06-16T12:08:51
|
|
Fix clearing of extended dirty bits in draw calls
When syncing all dirty bits (i.e. in draw calls), the extended dirty
bits were not cleared. This caused the extended dirty bits to be
resynced every time.
Credit Steven Noonan <steven@uplinklabs.net>
Bug: chromium:1410191
Change-Id: I7042462bbc4346880eb99128b3501cf130987505
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615239
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
b37df0c7
|
2023-06-16T12:05:03
|
|
Vulkan: Don't output SPIR-V debug info in release
Now that the SPIR-V transformer no longer relies on names, we can avoid
generating them in the compiler in the first place.
This both removes the need for stripping them out and makes the shaders
(which are cached) a bit smaller.
Bug: angleproject:7220
Change-Id: Ie636ac0ee62cf2730a409872041d22c066fc22ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615238
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
04f609d7
|
2023-06-09T16:03:28
|
|
Vulkan: Use user names directly in SPIR-V
... instead of prefixing them with _u. The transformer no longer relies
on debug info, which means SPIR-V names can be completely arbitrary.
There is no risk of collision with ANGLE internal names because it
doesn't matter for SPIR-V, and SPIR-V Cross is able to handle duplicate
names.
This change makes the output of SPIR-V Cross on generated shaders more
readable as it's not cluttered with _u before every name.
Bug: angleproject:7220
Change-Id: If46f7c82f908b0d65f8be49e297384ab659369e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615237
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
24f4007b
|
2023-06-08T00:41:55
|
|
Vulkan: Use SPIR-V ids instead of names in the transformer
This change removes the SPIR-V transformer's reliance on type and
variable names. As a result:
- String hashing is removed from the info map data structure and the
SPIR-V transformer
- The ID discovery class is entirely removed
- Internal variable names have become a detail of the compiler alone
(and are no longer exposed as part of the compiler interface)
- Some front-end name tracking is removed ("parentStructMappedName",
etc)
This change also properly cleans up xfb emulation types that were
previously left over.
This change allows the SPIR-V compiler to emit user strings as-is
instead of prefixing them with `u_` leading to more readable debug
shaders. Additionally, it will make it possible not to emit debug info
at all. Both of these changes will be done in follow ups.
Bug: angleproject:7220
Change-Id: Iaa127496209a27aaae2e0d14c41b22fffb0b72a2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4600610
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e394cb46
|
2023-06-10T23:12:35
|
|
Vulkan: Refactor framebuffer fetch shader emulation
This change fixes simultaneous usage of EXT_shader_framebuffer_fetch and
ARM_shader_framebuffer_fetch, which previously declared two identical
input attachment variables.
The code is additionally greatly simplified.
Bug: angleproject:8196
Bug: angleproject:8197
Bug: angleproject:8198
Change-Id: Iaaa2a5539a95727e67001a4da1d45092c9db4f2c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615187
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: mohan maiya <m.maiya@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
de28b89a
|
2023-06-15T12:31:26
|
|
Android: Add Pixel 7 entries to End2End expectations
Bug: b/285628492
Bug: angleproject:8212
Change-Id: I205ff24f53c03c0a0634b35b6a7e76b79f21d622
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4617583
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
58055032
|
2023-06-16T10:33:26
|
|
Remove _shardN suffix from tests when it's not necessary.
My understanding is that we only need this for --split-shard-samples.
Otherwise we still get _shardN suffix from the shard but the test only
ran on a single shard so there is no point in that.
_shardN added in https://crrev.com/c/3937044
--split-shard-samples disabled in https://crrev.com/c/4605335
Example of _shardN:
https://ci.chromium.org/ui/p/angle/builders/ci/linux-nvidia-gtx1660-perf/1704/overview
Bug: angleproject:7671
Change-Id: Iaec4eb81e6ebad424cfc2ebfcbc7eda312cd1bba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615538
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
|
|
0e31cb40
|
2023-06-12T13:46:23
|
|
Turn CreateMTLRenderPipelineDescriptor into a method
Refactor CreateMTLRenderPipelineDescriptor into a method on
RenderPipelineDesc so it's externally visible.
Bug: chromium:1329376
Change-Id: I22780b630ff9230ae2f3912c3bf4fd70a78d3ce5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608485
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
|
|
7f9e9fce
|
2023-06-12T15:02:58
|
|
Metal: Remove copy constructors in various util classes
By using a different array initializer in RenderUtils, the copies are
not neccessary.
Bug: chromium:1329376
Change-Id: Iec98a31741457f8d76a84f0340772167d7b9700a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4607151
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6e3808db
|
2023-06-15T09:13:18
|
|
Record duration of syncFromNativeContext()
Bug: chromium:1168587
Change-Id: I9e9770ab253df8ca4fd45979f2e5d67932c0a2ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4614517
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
|
|
edf58105
|
2023-06-14T22:24:25
|
|
Validate GL backend after dispatch table initialization
This commit adds a check to ensure that the GL backend's functions
have been properly initialized. This may happen with third party
build toolchains, like vcpkg, which reimplement parts of the
existing build system.
Bug: angleproject:8195
Change-Id: Iaca2200a563c5049d90acad57785088c94b4e580
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4614645
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
46ff02f8
|
2023-05-18T13:52:29
|
|
Capture/Replay: Initial setup for angle_capture_tests
Implements the first part (FrameCapture) of the proposal
go/frame-capture-and-interpreter-testing
Adds a basic test (CapturedTest) with a few frames. This test gets
captured by capture_tests.py into a temporary directory and the
resulting files are diff'ed with the files under expected/
A diff fails the test. When capture changes, the workflow would be to
run the command indicated by the error message in the test which will
overwrite the files with new ones so that they can be added to the CL.
Example test failure on capture change:
https://chromium-swarm.appspot.com/task?id=62b5f4034527c610
when testing https://crrev.com/c/4598046/3
Tests in CI: https://screenshot.googleplex.com/77o8vZVuj8AbFRj
Also adds a "angle_capture_tests_trace" lib with the trace just to test
that this capture also builds, the lib is not currently loaded by
anything.
Bug: b/286067106
Change-Id: I7d5f6eed088d84f9e3eb8a72b24b1d92515fff38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545408
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
3545ae0c
|
2023-06-09T16:11:47
|
|
Add isContextMutexStateConsistent() ASSERT
Added `gl::Context::isContextMutexStateConsistent()` method. This method
is primarily used to check if "SharedContextMutex" activation worked
successfully. It is automatically called in the updated
`ScopedContextMutexLock` before unlocking. This is to catch possible
errors using ASSERT during normal ANGLE operation in applications and
tests.
The `ScopedContextMutexLock` is now also used instead of the
`std::lock_guard<egl::ContextMutex>` in the `SCOPED_SHARE_CONTEXT_LOCK`.
No performance regression observed.
Important note: `lockAndActivateSharedContextMutex()` is NOT 100% safe
regardless of the `kActivationDelayMicro` value, so `ASSERT` may still
fail. However, failure does not necessary mean that there will be an
undefined behavior, it means that UB might happen.
Bug: angleproject:6957
Bug: chromium:1336126
Change-Id: Iee7357fede0d37fa315fe2cc7d27a4e30a304194
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4610227
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
|
|
bd5a7f24
|
2023-06-12T13:22:43
|
|
Metal: Set alphaToCoverageEnabled in checkIfPipelineChanged
alphaToCoverageEnabled was tweaked to false for non-multisampled
rendering cases in RenderPipelineCache::createRenderPipelineState
but this caused a copy and could be done much earlier during context
state syncing.
Bug: chromium:1329376
Change-Id: I37a461554e1e2b162313b4a952baa1526356db3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608484
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
88c6dfcc
|
2023-06-02T16:09:24
|
|
Mali: Make the placeholder FBO complete for timer queries
Change the bindFramebufferForTimerQueries workaround to ensure
the framebuffer is complete.
Bug: chromium:1356053,b/269068358
Change-Id: Ief3198fdc4800468670a3f4323a1ffd3ca083c6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4582606
Auto-Submit: Kramer Ge <fangzhoug@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
5a5f21f4
|
2023-06-14T14:05:41
|
|
Disable supportsExtendedDynamicState on ARM
There are multiple issues with dynamic states on
ARM. Previously we have disabled individual dynamic
state that had issues, but it turns out some dynamic
states need to be enabled/disabled together for tests
traces to work correctly.
Disabling the supportsExtendedDynamicState until
all the issues are addressed.
Bug: b/287318431
Bug: b/285196249
Bug: b/286224923
Change-Id: If2f039b8392898e1e42b5da6b1277e82818a1b1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615995
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
ecc287a8
|
2023-06-10T22:20:02
|
|
Clean up skipped deqp khr gles32 tests on Pixel 6
Remove deqp khr gles32 test suppression on Pixel 6
that are no longer failing.
Remove suppression of below tests
KHR-GLES32.core.texture_buffer.texture_buffer_texture_buffer_range
KHR-GLES32.core.compressed_format.api.texstorage_accepts_compressed_format
KHR-GLES32.core.compressed_format.api.invalid_inconsistent_data_size
KHR-GLES32.core.compressed_format.api.invalid_inconsistent_data_size_array
KHR-GLES32.core.compressed_format.api.invalid_offset_or_size
Remove suppression of below tests on Android Vulkan
KHR-GLES32.core.constant_expressions.*geometry
KHR-GLES32.core.shader_macros.fragment_precision_high_geometry
KHR-GLES32.core.texture_cube_map_array.stencil_attachments_*mutable_layered
KHR-GLES32.core.texture_cube_map_array.*tessellation*
KHR-GLES32.core.texture_cube_map_array.sampling
Restrict suppression of below tests on Pixel4 Vulkan
KHR-GLES32.core.geometry_shader.*
KHR-GLES32.core.texture_cube_map_array.*geometry*
KHR-GLES32.core.separable_programs_tf.geometry_active
KHR-GLES32.core.texture_cube_map_array.color_depth_attachments
KHR-GLES32.core.texture_cube_map_array.fbo_incompleteness
KHR-GLES32.core.tessellation_shader.*
KHR-GLES32.core.texture_cube_map_array.*tesselation*
KHR-GLES32.core.constant_expressions.*tess_control
KHR-GLES32.core.constant_expressions.*tess_eval
KHR-GLES32.core.separable_programs_tf.tessellation_active
KHR-GLES32.core.shader_macros.fragment_precision_high_tess_*
KHR-GLES32.core.texture_border_clamp.*
KHR-GLES32.core.gpu_shader5.*clamp*_border
KHR-GLES32.core.gpu_shader5.*clamp*_edge
Restrict suppression of below tests on Pixel6 Vulkan
and Windows Nvidia Vulkan:
KHR-GLES32.core.texture_border_clamp.Texture2DDC16Linear
KHR-GLES32.core.texture_border_clamp.Texture2DDC32FLinear
Add test suppression on Pixel 6 Vulkan
KHR-GLES32.core.tessellation_shader.vertex.vertex_ordering
KHR-GLES32.core.tessellation_shader.tessellation_shader_tessellation.gl_InvocationID_PatchVerticesIn_PrimitiveID
KHR-GLES32.core.tessellation_shader.tessellation_shader_quads_tessellation.degenerate_case
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule2
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule5
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule6
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule4
KHR-GLES32.core.tessellation_shader.tessellation_shader_point_mode.points_verification
KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_tessLevel
KHR-GLES32.core.tessellation_shader.vertex.vertex_spacing
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule7
KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_in
KHR-GLES32.core.tessellation_shader.tessellation_shader_triangles_tessellation.inner_tessellation_level_rounding
KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.data_pass_through
KHR-GLES32.core.tessellation_shader.tessellation_shader_tessellation.TCS_TES
KHR-GLES32.core.tessellation_shader.tessellation_shader_quads_tessellation.inner_tessellation_level_rounding
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule3
KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_MaxPatchVertices_Position_PointSize
KHR-GLES32.core.tessellation_shader.tessellation_shader_triangles_tessellation.identical_triangles
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule1
Bug: b/224537784
Bug: angleproject:5579
Bug: angleproject:5557
Bug: angleproject:5978
Bug: angleproject:3577
Bug: angleproject:3573
Bug: angleproject:6441
Change-Id: Ia734217c340fd927a93ea385120d0cf952cd428d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606544
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
9f158eb5
|
2023-06-10T22:14:16
|
|
Clean up skipped deqp khr gles31 tests on Pixel 6
Remove deqp khr gles31 test suppression on Pixel 6
that are no longer failing.
Remove the suppression of below tests:
KHR-GLES31.core.texture_buffer.texture_buffer_texture_buffer_range
Restrict the suppression of below tests on
swiftshader, windows nvidia vulkan, and pixel6 vulkan
KHR-GLES31.core.texture_border_clamp.Texture2DDC16Linear
KHR-GLES31.core.texture_border_clamp.Texture2DDC32FLinear
Remove the suppression of below tests
KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength*
Restrict the suppression of below tests on swiftshader
KHR-GLES31.core.arrays_of_arrays.ConstructorsAndUnsizedDeclConstructors1
KHR-GLES31.core.arrays_of_arrays.ConstructorsAndUnsizedDeclConstructorSizing1
Bug: angleproject:3573
Bug: angleproject:5978
Bug: angleproject:4107
Bug: angleproject:4300
Bug: angleproject:4108
Bug: angleproject:4188
Bug: angleproject:4190
Bug: angleproject:4240
Bug: angleproject:6295
Bug: b/224537784
Change-Id: I2c4d67ad3c50381ece4ed6241657b79402c91d3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606543
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
8df249d7
|
2023-06-10T22:09:12
|
|
Clean up skipped deqp khr gles3 tests on Pixel 6
Remove deqp khr gles3 test suppression on Pixel 6
that are no longer failing.
Restrict the suppression of below tests on Pixel4 Vulkan
KHR-GLES3.packed_depth_stencil.clear_buffer.depth32f_stencil8
Restrict the suppression of below tests on
NVIDIA Vulkan and Android Vulkan
KHR-GLES3.packed_pixels.varied_rectangle.*
Restrict the suppression of below tests on
NVIDIA Vulkan and Android Vulkan
KHR-GLES3.packed_pixels.pbo_rectangle.r8_snorm
KHR-GLES3.packed_pixels.pbo_rectangle.rg8_snorm
KHR-GLES3.packed_pixels.pbo_rectangle.rgba8_snorm
KHR-GLES3.packed_pixels.rectangle.r8_snorm
KHR-GLES3.packed_pixels.rectangle.rg8_snorm
KHR-GLES3.packed_pixels.rectangle.rgba8_snorm
Bug: angleproject:3683
Bug: angleproject:6678
Bug: angleproject:8048
Bug: b/224537784
Change-Id: Id24591e3bc21fa263fa64d3bd812d82209b8c5fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606542
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
57cccfd4
|
2023-06-10T22:05:56
|
|
Clean up skipped deqp gles31 tests on Pixel 6
Remove the deqp gles31 test suppression on Pixel 6
that are no longer failing.
Below tests no longer fails on win-test bot, remove them
from the expectation file:
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.48
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.36
Restrict the suppression of below tests on NVIDIA Vulkan
dEQP-GLES31.functional.image_load_store.3d.*single_layer
Restrict the suppression of below tests on Pixel4 Vulkan
dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rgb10_a2*
dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rgb9_e5*
Remove the suppression of below tests on Android Vulkan
dEQP-GLES31.functional.stencil_texturing.misc.base_level
Remove the suppression of below tests on Pixel6
dEQP-GLES31.functional.shaders.linkage.es31.tessellation.varying.rules.internal_different_precision
Bug: b/224537784
Bug: angleproject:3445
Bug: angleproject:6021
Bug: angleproject:4080
Bug: angleproject:5277
Bug: angleproject:7488
Change-Id: I9baff33ade443d2ad28d1bc7a1333e0c672942c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606541
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
5ff9d931
|
2023-06-10T22:00:41
|
|
Clean up skipped deqp gles3 tests on Pixel 6
Remove deqp gles3 test suppression on Pixel 6
that are no longer failing.
Undefined behaviors in below test should have been
addressed by the upstream change in VK-GL-CTS:
https://github.com/KhronosGroup/VK-GL-CTS/commit/5d286e0daeac8afaafc46b16d28991fab971240b
Remove the suppression of them:
dEQP-GLES3.functional.shaders.operator.unary_operator.minus.lowp_uvec4_vertex
dEQP-GLES3.functional.shaders.operator.unary_operator.minus.mediump_uvec4_vertex
Restrict the suppression of below tests on
NVIDIA and MAC
dEQP-GLES3.functional.fbo.completeness.renderable.*.r8_snorm
dEQP-GLES3.functional.fbo.completeness.renderable.*.rg8_snorm
dEQP-GLES3.functional.fbo.completeness.renderable.*.rgba8_snorm
Bug: b/224537784
Bug: angleproject:1101
Bug: angleproject:6214
Bug: angleproject:8048
Change-Id: Ic227be3e08b85f9f812171faafbbb1d421e9c30a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606540
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d73ce6e3
|
2023-06-10T21:57:43
|
|
Clean up skipped deqp gles2 tests on Pixel 6
Update comments to explain why the test
dEQP-GLES2.functional.flush_finish.* need
to be skipped.
Bug: b/224537784
Bug: angleproject:1034
Change-Id: I09dbf3134006a76129e6e4e483ac43616c550418
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606539
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
|
|
97e3851d
|
2023-06-10T21:52:28
|
|
Clean up skipped deqp egl tests on Pixel 6
Remove the deqp test suppression on Pixel 6
that are no longer failing.
Restrict suppression of below tests on Android Vulkan
and Pixel 4 GLES
dEQP-EGL.functional.native_color_mapping.native_window.*
dEQP-EGL.functional.native_coord_mapping.native_window.*
Restrict suppression of below tests on Pixel 4 Vulkan
dEQP-EGL.functional.image.api.create_image_gles2_android_native_rgb8
dEQP-EGL.functional.image.create.gles2_android_native_rgb8_read_pixels
dEQP-EGL.functional.image.create.gles2_android_native_rgb8_texture
dEQP-EGL.functional.image.create.gles3_android_native_array_rgb565_texture_array
dEQP-EGL.functional.image.create.gles3_android_native_array_rgb8_texture_array
dEQP-EGL.functional.image.create.gles3_android_native_array_rgba8_texture_array
dEQP-EGL.functional.image.modify.android_native_rgb8_renderbuffer_clear_color
dEQP-EGL.functional.image.modify.android_native_rgb8_tex_subimage_rgb8
dEQP-EGL.functional.image.render_multiple_contexts.gles2_android_native_rgb8_read_pixels
dEQP-EGL.functional.image.render_multiple_contexts.gles2_android_native_rgb8_texture
dEQP-EGL.functional.image.create.gles3_android_native_array_*_render_sample_texture_array
Restrict suppression of below tests on Swiftshader
and Nvidia Vulkan
dEQP-EGL.functional.create_context_ext.gl_30.*
dEQP-EGL.functional.create_context_ext.robust_gl_30.*
Bug: b/224537784
Bug: angleproject:6533
Bug: angleproject:6277
Bug: angleproject:7506
Bug: angleproject:7533
Change-Id: I769bb1ef15c187ae0de62cc901f907cb095dc73a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4602771
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
36c3e0f5
|
2023-01-17T17:42:59
|
|
Implement "Shared Context Mutex" functionality.
Existing implementation uses single `GlobalMutex` for
- EGL calls
- GL calls for Contexts with concurrent access.
This CL introduces abstract `egl::ContextMutex` with two
implementations:
- SingleContextMutex;
- SharedContextMutex<Mutex>;
Note:
`std::mutex` is used in this commit. It is very easy to change mutex
type either at compile-time or at run-time (single type per Display).
When Context:
- is not Shared;
- does not use `EGLImage`s;
- does not use EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE
- does not use EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE
then it will be using `SingleContextMutex` with minimal overhead.
Before such Context is used as `shareContext` or uses `EGLImage`
its mutex replaced by `SharedContextMutex<Mutex>`.
The `GlobalMutex` is only used for EGL calls, while `egl::ContextMutex`
implementations for GL calls. Because some EGL calls use Context,
explicit `egl::ContextMutex` lock is required. This is implemented by
generating "egl_context_mutex_autogen.h" header, and insertion of
`ANGLE_EGL_SCOPED_CONTEXT_LOCK()` macro before `ANGLE_EGL_VALIDATE()`
in each EGL entry point. Implementation in "egl_context_lock_impl.h"
returns lock for required APIs. Special cases of `egl::ContextMutex`
lock handled separately. `std::unique_lock<>` is not used for
performance reasons.
`egl::ContextMutex` explicitly locked when capturing EGL calls.
Fixes EGLImage problem:
https://chromium.googlesource.com/angle/angle/+/e18240d136d15e5cdfa4fa4a6355ca21c8d807b6
Mark contexts as shared when importing EGL images.
Details:
- EGLImage inherits Context's mutex when created.
Mutex is used when the EGLImage accessed or destroyed.
- When EGLImage is used in Context with other `egl::ContextMutex`,
two mutexes are merged into one.
- After the mutex merge, Context Groups will remain separate,
but will not be able to run in parallel.
Fixes race when checking `context->isShared()` in the
`SCOPED_SHARE_CONTEXT_LOCK()` macro. One Context may start executing GL
call while not "Shared", but become "Shared" inside the call. New
(second) "Shared" Context may immediately start using GL and potentially
corrupt some "Shared" state.
Possible performance benefit: allows parallel execution in some cases,
when single `GlobalMutex` would block.
Important note:
Process of replacing the `SingleContextMutex` by
`SharedContextMutex<Mutex>` is not 100% safe. This mean that
original Context may still be using `SingleContextMutex` after
activating `SharedContextMutex<Mutex>`. However, this was always
the case before introduction of this CL. Old `Context::mShared`
member update was not synchronized in any way at all. In other
words, this solution does not 100% fix the original problem.
For 100% safe solution `SingleContextMutex` should not be used
(always pass `SharedContextMutex<Mutex>` to the `gl::Context`
constructor). See `lockAndActivateSharedContextMutex()` for more
details.
CL adds new build option:
angle_enable_shared_context_mutex = true
Behavior with other build options:
- When:
`angle_enable_shared_context_mutex` is disabled or
`angle_enable_share_context_lock` is disabled or
`angle_force_context_check_every_call` is enabled,
Contexts will always have `SingleContextMutex`, however it will be
only used in special cases. `SCOPED_SHARE_CONTEXT_LOCK()` will use
`GlobalMutex` when applicable.
- Otherwise, `SCOPED_SHARE_CONTEXT_LOCK()` will use `egl::ContextMutex`.
Some GFXBench "1080p Driver Overhead 2 Offscreen" performance numbers.
Tested on S906B (Samsung Galaxy S22+) on old ANGLE base:
https://chromium.googlesource.com/angle/angle/+/807c94ea85e046c6f279d081d99f0fb1bcf1191a
Capture/Replay: Adjust tests do adhere to capture limits
Each test result is an average frame number from 6 runs.
SingleContextMutex 6579 ( +0.13%)
(old) GetContextLock() (mShared is false) 6570
Forced `mShared = true` or NOT using `SingleContextMutex`.
SharedContextMutex<std::mutex> FORCE 5061 (-22.97%)
(old) GetContextLock() FORCE 4766 (-27.46%)
Bug: angleproject:6957
Bug: chromium:1336126
Change-Id: Idcd919f9d4bf482b9ae489bd8b4415ec96048e32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374545
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
82151df0
|
2023-06-13T15:55:04
|
|
Android: Pixel 7 and Oppo Flip N2 device support
Add device detection for test expectation files.
Bug: b/285628492
Bug: angleproject:8205
Change-Id: Ia4ed8f7adc4f65ebb36c3248edadb3900b4caf58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615663
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
af1768a4
|
2023-06-13T15:11:17
|
|
Android: Add Galaxy A34, A54 and Oppo Find X6
Adds device detection for use in expectation files
Bug: b/285047631
Bug: b/285047394
Bug: b/285630872
Change-Id: I30361d7bc1a0a08441c8b5afe64d4b5f22ae4ddb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4611333
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
|
|
3a3a3c65
|
2023-05-31T23:06:57
|
|
Remove override test31Context.cpp
Remove the override test31Context so that
1) we can run deqp test suites on Pixel devices
with the same configuration as Android CTS test
runner.
2) those deqp tests that require a GLES 3.2
context will not be skipped and can execute on
devices that supports GLES 3.2.
Since the deqp test runner overrides the feature
exposeNonConformantExtensionsAndVersions with "true" value,
a context is created regardless of whether the device supports
GLES 3.2. However, not all of the devices are GLES 3.2
conformant, we will suppress those tests that
are failing on non-conformant devices.
Bug: b/224537784
Bug: angleproject:3687
Bug: angleproject:3688
Bug: angleproject:6678
Change-Id: I2a549537bdbb2c0356fcccaa96291229c699ed0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559445
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
ce7b9602
|
2023-06-13T22:44:23
|
|
Avoid clearing global settings when register receiver.
Global settings can be set by adb command and hence clearing the all
global settings values are not ideal. Previously ANGLE apk triggers a
clear when device boot is completed because we register the receiver and
immediately trigger the callback. However, that causes race condition as
our testing infra will set up the ANGLE per-application override to run
tests on top of ANGLE apk. This patch removes that trigger.
Bug: b/285594264
Test: Verify per-application override is no longer cleared
Change-Id: Ic10703b72593cee7f067570a523f668553047ae2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4611447
Reviewed-by: Solti Ho <solti@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Peiyong Lin <lpy@google.com>
|
|
14339812
|
2023-06-13T10:00:39
|
|
Merge Galaxy A23 and S23 e2d expectations where can
Many of the Samsung Galaxy A23 and S23 (all Qualcomm GPU) expectations
were common, and so they are merged into a common GALAXYQUALCOMM ID.
Bug: b/285045753
Bug: angleproject:8185
Change-Id: I5eb44f5de969763df290a938935a3a76ea3aab98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4610479
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8882feeb
|
2023-06-13T09:24:23
|
|
common: linux: add support for DRM_FORMAT_NV12
In DrmFourCCFormatToVkFormats convert DRM_FORMAT_NV12 to
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM.
DmaBufImageSiblingVkLinux can already consume it.
BUG: b/277798516
Change-Id: I3173763101cf926fb2277651918631ec4de76e96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4604507
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
3a42d024
|
2023-06-13T13:37:35
|
|
Only import xvfb on Linux.
Allows to run certain scripts with python3 (instead of vpython3)
on Windows.
Same as testing/scripts/common.py:
https://crsrc.org/c/testing/scripts/common.py;drc=dfebdf76453bb843c0910d8a3e74468f6ab4a474;l=25
Bug: b/286067106
Change-Id: I57f5478082c2147bb5e9cf98baae762b8b844cec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4610084
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
|
|
86e21fa2
|
2023-06-12T13:36:21
|
|
Vulkan: Refactor angle::Format depth/stencil checks
Bug: b/246008627
Change-Id: If0a2992c5bd66adf27c6866aea04e54ba465a522
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608489
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
ef582ba3
|
2023-06-13T00:22:34
|
|
Vulkan: Suppress vertex attribute divisor VUID
... to unblock the roller. Need to investigate if the failure is real.
Bug: angleproject:8203
Change-Id: I958de60188a67e519d7d3b27c52b9ea260d36d80
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4610083
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
|
|
18010f58
|
2023-06-12T16:56:11
|
|
Metal: Limit the debug spew for blocked cache reads/writes
When running tests in debug builds, most of the output is logging about
blocked reads and writes to the metal system cache. Limit it to 5
messages per type.
Bug: None
Change-Id: Id10e901d2d96164a86d8fdc7dafec14f81b700fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4607152
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
7e075469
|
2023-06-12T18:34:05
|
|
A23: Improve end2end SKIP lines and add FAIL lines
Bug: b/285045753
Bug: angleproject:8185
Change-Id: I863878e06495c0431c07113d9de702b0bb7dd8ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606370
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
07eb4100
|
2023-06-09T21:31:01
|
|
[GlobalMutex] Do not assume the thread conflict happens in tests
There isn't a guarantee that threads would always conflict with each
other, so the assertion here would fail randomly.
Overall:
https://ci.chromium.org/ui/test/chromium/ninja%3A%2F%2Fthird_party%2Fangle%2Fsrc%2Ftests%3Aangle_unittests%2FGlobalMutexTest.ScopedOptionalGlobalMutexLockDisabled?q=+V%3Atest_suite%3Dangle_unittests+
Examples:
https://chromium-swarm.appspot.com/task?id=623bb4e76b382911
https://chromium-swarm.appspot.com/task?id=62ba96ea430b8811
Fixed: angleproject:8194
Change-Id: Iaf2e5371a162d21f565e72f96d487d12c69f88c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606236
Auto-Submit: Zijie He <zijiehe@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@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>
|
|
4384e49c
|
2023-06-12T08:20:03
|
|
Vulkan: Disable some dynamic states on ARM
Bug: b/286224923
Bug: b/285196249
Bug: b/285124778
Change-Id: Ia19a278581d6586a2e1efcc46987925dcc9ccd3e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608501
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@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>
|
|
10380f4b
|
2023-06-06T11:52:08
|
|
Vulkan: Output SPIR-V ids from compiler
In this change, the shader interface variables are given SPIR-V ids by
the compiler before SPIR-V generation. Those ids are made available
through the ShaderVariable interface.
The transformer does not yet rely on this information. A follow up
change will rework the backend's name->info map and the transformer to
directly use ids instead of names.
Bug: angleproject:7220
Change-Id: Ic0a62681d4bcf3ed171c39c3ecd83e438ea068c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4600609
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
|
|
acdf8722
|
2023-06-07T11:26:37
|
|
Vulkan: Remove reliance on names for gl_PerVertex-trimmer
Instead of passing in gl_Position etc built-in names and then find their
index by looking at OpMemberName instructions, this change has the
front-end create a bitset of active gl_PerVertex members. The SPIR-V
transformer then directly uses this information to trim gl_PerVertex.
Bug: angleproject:7220
Change-Id: I5c3d56784801abb310d09d98d9c82c9e6e019de8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4600608
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a01a566c
|
2023-06-09T00:31:06
|
|
extension xmls: fix incorrect use of <ptype> tags
I was having trouble using some GL/EGL loader generators because of some
errors in the XML definitions for ANGLE.
The first major problem is the content of the <ptype> tags. Let's refer
to the Khronos registry XML schema (which is annoyingly a PDF rather
than an xsd that we can test against, though I don't know if an xsd
would catch this anyway):
https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/readme.pdf
In section 12.4.2, "Contents of <param> tags" it states:
The <ptype> tag is optional, and contains text which is a valid type
name found in <type> tag, and indicates that this type must be
previously defined for the definition of the command to succeed.
Builtin C types, and any derived types which are expected to be
found in other header files, should not be wrapped in <ptype> tags
Note that the above is repeated for the contents of <proto> tags as
well.
The extension XML files currently have a bunch of <ptype> tags which
don't meet the expectations described above. The correct transformation
for them would be, for example:
<ptype>GLfloat *</ptype> -> <ptype>GLfloat</ptype> *
<ptype>void *</ptype> -> void *
<ptype>const char *</ptype> -> const char *
<ptype>EGLAttrib *</ptype> -> <ptype>EGLAttrib</ptype> *
The next issue is that some tags have some typos, such as "<pytpe>"
instead of "<ptype>". (Now *that* is something an .xsd would catch...)
The last issue is the use of the typename "GLvoid" which is not as
serious a problem. It is still defined in Khronos' gl.xml <types> block,
but Khronos no longer uses it in their XML registries. The comment for
the "GLvoid" type in their <types> block states:
<type comment="Not an actual GL type, though used in headers in the past">typedef void <name>GLvoid</name>;</type>
So we might as well replace those with just plain "void".
Anyway, long story short: to apply these transformations, I used Perl
regular expressions, and applied these expressions in order:
- Fix the tag misspellings:
s#<(/?)pytpe>#<\1ptype>#g
- Move the const qualifiers (if present) and pointer asterisk(s) (if
any) outside the <ptype> tag itself:
s#<ptype>(const )?([A-Za-z0-9]+)[ ]?(\*\*?)</ptype> #\1<ptype>\2</ptype> \3#g
- Replace "GLvoid", "char", and "void" inside ptype tags to normal
C types outside tags:
s#<ptype>(GLvoid|void|char)</ptype>#\1#g
Bug: angleproject:8190
Change-Id: Ib0bea79fecb7e714910b6e92124bb9f52994d0fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603709
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
e005fbc0
|
2023-06-08T23:27:27
|
|
Vulkan: make GetFormatModifierProperties non-fatal for fallback check
DmaBufImageSiblingVkLinux::initWithFormat is used to fallback like:
- mutable format + srgb
- mutable format + unorm
- non-mutable srgb
- non-mutable unorm
However, it never fallbacks since GetFormatModifierProperties bails.So
this change has made it non-fatal to allow fallback behavior.
Meanwhile, this change updates the fallback order to use unorm as actual
format first to favor most common scenarios.
Bug: b/277798516
Change-Id: I60283590d85b27d55010cb2f5a2cc13d4df1ac9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603208
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Romaric Jodin <rjodin@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>
|
|
d8339e78
|
2023-05-25T08:40:48
|
|
FrameCapture: Support EGLSync in MEC
This CL starts treating EGLSync as a tracked resource, such
that we can detect when they need to be created in Setup, or
regenerated in Reset.
Test: MEC of infinity_ops trace
Test: Replay new kentucky_route_zero trace without error
Bug: angleproject:8176
Change-Id: I130212f6edb78d9df29dd6e572843df25493ae09
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4566949
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
76b0e7f3
|
2023-06-01T11:25:54
|
|
Vulkan: Use reserved SPIR-V ids for internal variables
With this change, the SPIR-V transformer does not need to discover these
ids through name matching. Ultimately, user variables would also be
identified by their SPIR-V ids (instead of name), removing the Vulkan
backend's reliance on strings.
Bug: angleproject:7220
Change-Id: I241c3247b89a28f9eed28f23c06b7c8b7fbbeaa0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4583133
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
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>
|
|
4500079d
|
2023-05-30T17:01:10
|
|
Refactor D3D device creation to make adapter selection explicit
To prepare for future changes which require that angle features
be parsed before device creation, we must rearrange device
creation such that driver version can be retrieved from the
adapter BEFORE the device gets created.
Bug: angleproject:8180
Change-Id: I08855b9df318d0a6234231f1e52d3c17cfaa8a30
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4575653
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.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>
|
|
721c15ef
|
2023-05-30T17:20:09
|
|
Metal: Remove OS info from renderer string for WebGL contexts.
This is exposing too much detailed information to the web. Replace it
with the string "Unspecified Version".
Bug: chromium:1354575
Change-Id: I69b8c6f7cb4eae01f806e91496664276c864309e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4574285
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Auto-Submit: Kenneth Russell <kbr@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>
|
|
e7a9275b
|
2023-06-02T18:09:40
|
|
Make run_code_generation faster using python3 for auto_script
Only changes the way we get auto_script inputs/outputs.
Before this CL, some of the scripts (depending on the shebang)
are run via vpython3 - which can take a few seconds. But the
inputs/outputs code generally doesn't require any unusual imports, so we
can just add little hacks to suppress those imports where needed when
an argument is given to the script.
Bug: angleproject:8184
Change-Id: Ib09a35b839318253fe7e913e24a756d2cb46dad1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4585820
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
4ff41604
|
2023-05-31T11:12:33
|
|
Vulkan: Declare common SPIR-V ids in the compiler
The SPIR-V transformer no longer needs to discover these ids.
Bug: angleproject:7220
Change-Id: I7082e831308eaac97ace3c128f398ff5f5497739
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4573825
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
5f833ff2
|
2023-05-31T00:06:24
|
|
Vulkan: Pass non-semantic info from translator to transformer
The SPV_KHR_non_semantic_info extension is set up in this change to
allow the translator to communicate an overview of the SPIR-V to the
SPIR-V transformer as well as mark locations of interest. This would
help the SPIR-V transformer avoid having to discover basic ids and such
locations.
In this change, a few basic types are predefined and the location where
new types and variables need to be defined are marked.
Bug: angleproject:7220
Change-Id: I237b9a79efa9c192b3b11f1d97bc9b6a5cc2f8fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4573823
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
6433724c
|
2023-06-02T23:51:30
|
|
Revert "Enable usePrimitiveRestartEnableDynamicState on ARM driver 43"
This reverts commit 0ea8e55a6f0667c2bb189d95987833231cdb22b2.
Reason for revert: http://b/285543622
Original change's description:
> Enable usePrimitiveRestartEnableDynamicState on ARM driver 43
>
> The dynamic state bug is fixed in ARM 43.
> Venus has backported the driver fix, therefore we
> also enable primitiveRestartEnable dynamic state
> on venus.
>
> Bug: b/275210062
> Bug: b/282621541
> Change-Id: I5debd5146386f7e245610fb71c84e4a48b04e85b
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4581051
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Bug: b/275210062
Bug: b/282621541
Change-Id: I529669f82fdb6ceb53e6740c9737cd061cbaf450
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4585317
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
0ea8e55a
|
2023-06-01T10:25:44
|
|
Enable usePrimitiveRestartEnableDynamicState on ARM driver 43
The dynamic state bug is fixed in ARM 43.
Venus has backported the driver fix, therefore we
also enable primitiveRestartEnable dynamic state
on venus.
Bug: b/275210062
Bug: b/282621541
Change-Id: I5debd5146386f7e245610fb71c84e4a48b04e85b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4581051
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
|
|
c80fc88a
|
2023-05-18T17:38:25
|
|
Vulkan: Add version to pipeline cache header
* Added version as a field in the pipeline cache header. It is set by
the value of kPipelineCacheVersion.
* kPipelineCacheVersion must be incremented in case of any changes
to the cache header or data structure.
* This makes it easier to detect whether a change in the data is
coming from the header/data change or from data corruption. If
the version in the cache line matches kPipelineCacheVersion, some
values in the header must meet certain conditions. Otherwise, it
will result in a crash due to data corruption.
Bug: b/246683126
Change-Id: Iaf1a2e1111cf47602dba947516ad8998d96dc943
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4546263
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ba857c47
|
2023-06-01T11:33:22
|
|
Vulkan: Move some bufferRead logic into CommandBufferHelperCommon
Some of the logic of bufferRead is common, to avoid code duplication,
it has been refactored into bufferReadImpl and moved into
CommandBufferHelperCommon.
Bug: b/282194402
Change-Id: I98cd0788db7fe9f14bd3155b28dc208f9f4a138a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4581061
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|