|
38fada35
|
2022-01-27T18:16:18
|
|
Vulkan: Add support for OES_primitive_bounding_box
Add OES version of the primitive bound box extension
Bug: angleproject:3576
Test: dEQP-GLES31.functional.primitive_bounding_box.*
Change-Id: Ie44d952992a68dfffd5c124dda8dd11069f0c1e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3425086
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
|
|
d6fb76a6
|
2022-01-31T16:14:17
|
|
[fuchsia] Don't try to use calling executable path to load .so's
Bug: angleproject:6964
Change-Id: I856bdbcb83826c6af88ffa79c2a97b97ca827c85
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3427639
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
2d3ce72d
|
2022-01-20T10:13:06
|
|
Refactor shared library load to avoid allocations.
Fixes a leak of an angle::Library detected in the EGL loader.
Bug: angleproject:6937
Change-Id: I623aa6172b98a35465e1d2641b92f67bdc5d24e7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3403060
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b3ed4780
|
2021-12-21T17:20:19
|
|
Change Windows display initialization from ANSI to wide version
Bug: angleproject:6846
Change-Id: I2aee8f4b5b7546fc707705e435251fa9861e27d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352866
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
|
|
926b43e7
|
2022-01-06T13:31:54
|
|
Reland: Frontend: separate lock in swap prep
Swapchain-based backends like Vulkan might block a lot in
vkAcquireNextImageKHR, which is bad for overall fast progress if we also
hold the global EGL lock there.
This CL starts to split the global EGL lock. We release the EGL lock
when performing vkAcquireNextImageKHR, and only maintain a lock for
surfaces.
This is done via a new custom entry point, EGL_PrepareSwapBuffers, so
that we can control how the global lock is used throughout the entire
call.
Bug: angleproject:6851
Change-Id: I095cd8b3bdbb13c842cab0a46148e2122582cdfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373426
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
|
|
9d11a341
|
2021-12-16T13:47:04
|
|
Vulkan: Fix Vulkan SCB vs multiple subpasses
vkCmdNextSubpass must be called on the primary command buffer, so the
render pass command buffers need to be split on subpass boundaries.
This is only done when using Vulkan secondary command buffers.
Bug: angleproject:6811
Change-Id: I087fff305c757c78e87bfde4410e7de6bd1a6ba6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3344774
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
02f6226b
|
2022-01-06T09:07:29
|
|
Avoid using GetCWD() on MacOS when possible
GetCWD is unreliable on MacOS and often fails or returns an
undesirable directory. This CL makes the number of GetCWD()
calls go from 2 to 0 when running content_shell locally on
MacOS, which makes it start successfully with SwANGLE
enabled. The 2 changes are:
1) Don't attempt to change the current working directory on
MacOS for Validation Layers. This doesn't work as intended
anyway and, on a GetCWD failure, ends up changing the ICD
from SwiftShader to Default when using SwANGLE, which can
make test runs fail.
2) Don't always call GetCWD() when calling
GetModuleDirectory(). It is only required when the module
path is not a full path, at which point some error info
was added to help understand what's happening if we get
into this case.
Bug: chromium:1246171
Change-Id: Ib96142661dee3e06980eac4ffc3743aae8b97950
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3370036
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
fd014271
|
2021-12-16T20:44:42
|
|
Vulkan: Match chromaFilter to min/mag for YUV AHBs
From the VVL:
VUID-VkSamplerCreateInfo-minFilter VkCreateSampler:
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
specifies that the format can have different chroma, min, and mag
filters. However,
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
is not supported for VkSamplerYcbcrConversionCreateInfo.format =
VK_FORMAT_UNDEFINED so chromaFilter needs to be equal to
minFilter/magFilter.
We don't know what the min/mag filters are when the AHB is imported, so
we need to update the YcbcrConversionDesc with the current min/mag
filter value before creating the VkSamplerYcbcrConversion when the
ImageView is created. Additionally, if the min/mag filters are updated
later, TextureVk::syncState() needs to recreate the ImageViews to ensure
the chromaFilter matches the new min/magFilters.
Test: atest android.media.cts.DecodeAccuracyTest#testGLViewDecodeAccuracy[0]
Test: ImageTestES3.SourceYUVAHBTargetExternalYUVSampleLinearFiltering
Bug: b/210526871
Change-Id: I95dbd9738f6e3fd0870e484518eee105e995f93a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3346394
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
f13f440e
|
2021-12-15T15:11:05
|
|
Reland: Metal: Fix Webkit warnings in ANGLE build
Fix nullable warnings, unused functions
Add in additional function specification to FormatStringIntoVector
to correctly fix warning
Bug: angleproject:6781
Change-Id: I26af2d698f14d353832802aa7b5ce34c5a1f4b95
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3366796
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
|
|
2ebd583e
|
2021-12-22T11:24:43
|
|
Android: Remove setenv from common path
In Android production stress testing, the setenv call was causing a
race condition. To fix, only use setenv in the paths that need it
as a performance optimization. Specifically, FrameCapture makes
use of it every frame.
Bug: angleproject:6822
Change-Id: I452f1ef8607ca9baf15d69246932c47454a3ce46
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3353893
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
1da7e3af
|
2021-12-21T15:55:38
|
|
Revert "Metal: Fix Webkit warnings in ANGLE build"
This reverts commit 6706799186683dd3733c4610de09d84721aa08c8.
Reason for revert: Includes pragma that disables a warning.
Original change's description:
> Metal: Fix Webkit warnings in ANGLE build
>
> Fix nullable warnings, unused functions
>
> Bug: angleproject:6781
> Change-Id: I063331e60d31a55b3cc9df0b41ace014d7d13659
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343174
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Bug: angleproject:6781
Change-Id: Id5fce2afd0381030a974871b99e8adf075677bd1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352086
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
171bc07e
|
2021-12-20T13:10:33
|
|
Don't silently drop out-of-range bits in BitSetT
Notes:
- std::bitset's constructor accepts out-of-range bits (and drops them)
- std::bitset with initializer list doesn't exist and is a BitSetT
feature
- |=, &= and ^= with non-bitset is a BitSetT feature
- std::bitset's set(pos), reset(pos) and flip(pos) throw an exception if
pos is out of the range of the bitset.
This change adds an ASSERT in the functions that std::bitset would throw
an exception, as well as functions that are only in BitSetT.
Bug: angleproject:6840
Change-Id: Iab5bac40b05d4f7f29e0242ea0baa093721e3339
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3349980
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
eca427b2
|
2021-12-20T10:55:41
|
|
Vulkan: Add mutex to protect mVirtualBlock
mVirtualBlock could be accessed from multiple thread when
asyncCommandQueue is enabled, where the free call could come from the
submission thread. This CL adds a mVirtualBlockMutex in BufferBlock and
always take the lock when mVirtualBlock is been accessed.
This CL also adds ConditionalMutex class for the general usage that a
mutex is only used based on a boolean.
Bug: angleproject:6840
Change-Id: Ib647b4ff12ebfc08f2a70192d39f16e15a1fc5f5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3350798
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
|
|
4a03668d
|
2021-12-20T20:58:17
|
|
Address comment in CL 3347143
Bug: chromium:1278515
Change-Id: I7d82d39ad94c6357b0df292fc716749cf610290f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3349938
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
c07df6fe
|
2021-12-17T20:11:52
|
|
Disable vulkan device select layer for msan build
The vulkan device select layer is not built with chrome, so this
layer is not built with msan. So loading this layer will cause
MemorySanitizer errors. Those errors are false positive. So
disable it for msan build.
Bug: chromium:1259170
Change-Id: I513d6dd3d4fbc16c62aaa3aa1e7cf299e3e4144a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3347143
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
c7446ac4
|
2021-12-16T16:00:08
|
|
Add support for GL_MESA_framebuffer_flip_y 1/*
LaCrOS, which is same as ChromeOS, relies on this
extension and uses that with WebGL content.
However, when LaCrOS uses ANGLE, the extension is
not exposed and the WebGL content is y-inverted as
direct scanout is always used.
There are two bugs - 1) ANGLE should expose the
extension so that direct scanout is possible
(this CL fixes the issue. 2) LaCrOS shouldn't rely
on the extension if it's not available (a bug to
be fixed in Chromium).
This particular CL consists of autogen files with
framebufferParameteriMESA &&
getFramebufferParameterivMESA in Context
marked as UNIMPLEMENTED. And also unimplemented
validation.
Bug: chromium:1231934
Change-Id: Id617846b0412f579df5b4ace6cb33c1ec6d403df
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343492
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
|
|
e7413adf
|
2021-12-15T18:35:29
|
|
system_utils_posix: Check for SEGV_MAPERR si_code.
Android 12 emits a SEGV_MAPERR for mprotect page faults on the handler.
Treat these callbacks as in range.
This fixes the memory protection implementation on Android 12.
Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*"
Bug: angleproject:5857
Change-Id: I346b04230e1389de9f0a80b7f704dd65acfa9d82
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340950
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
67067991
|
2021-12-15T15:11:05
|
|
Metal: Fix Webkit warnings in ANGLE build
Fix nullable warnings, unused functions
Bug: angleproject:6781
Change-Id: I063331e60d31a55b3cc9df0b41ace014d7d13659
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3343174
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
cac81f07
|
2021-12-14T22:56:15
|
|
Return full error info when opening a library with dlopen
This CL adds a parameter to OpenSharedLibrary and
OpenSharedLibraryWithExtension which is used to
return the full path of the library which was opened.
If dlopen failed, the string also contains the result
of dlerror which explains what the error was.
Bug: chromium:1246171
Change-Id: I374c7e2dfa18853c8137b4cbea06af8db3fdb501
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340020
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
32f572b7
|
2021-12-03T17:58:51
|
|
Support creating EGLImage from VkImage
Bug: chromium:1264439
Change-Id: I520182143e748f25b44d0725f3f171b7b33a85d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3311131
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
7fc6c07c
|
2021-09-29T14:02:29
|
|
Capture/Replay: Update process for trace upgrading.
Includes changes to the retracing script.
Also includes documentation on how the process works.
Bug: angleproject:5133
Change-Id: I1acfe338f3fe0282a0461c314274c761ed04bd2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193418
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
42bd4fc2
|
2021-12-10T14:58:17
|
|
Metal: add ANGLE_metal_create_context_ownership_identity.
This Metal-specific EGL extension allows a given context
and the GPU resources it allocates to be associated with
a particular task ID on the system, for system-level
bookkeeping purposes.
Bug: angleproject:6795
Change-Id: I19ee0993564169b01c4a450e63dcfacd339b98b5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3335172
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
|
|
56aee5d6
|
2021-12-10T12:32:58
|
|
Reland "system_utils: Add memory protection functionality."
This is a reland of b1c703e5f5e44514e8db958a5fb39ff16e514fd8
that was reverted in 663831aa676c59829cc3d822340812f016bf77f6.
Skip PageFaultHandlerProtect and PageFaultHandlerDefaultHandler on macOS
and Fuchsia.
Original change's description:
> Reland "system_utils: Add memory protection functionality."
>
> This is a reland of ab75a90ff4ecb9d99b5c72bde92222b07c285401
> that was reverted in b007e667a8f94b47788a5ba0b2e61c9ac2d1285f.
>
> Implement PageFaultHandler and memory protection functions.
> Uses mprotect and sigaction on POSIX and equivalent Win API functions on
> win32.
>
> Add tests to system_utils_unittests.
>
> Add stubs for winuwp.
>
> Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler
> test to make it succeed on release builds, as the code was optimized
> out. Furthermore the test did not correctly remove protection from the
> whole area it protected, which caused a hang after deinitialization on
> some build configurations, since the custom page fault handler was also
> still in place. The test now correclty removes protection from the whole
> area and sets back the original page fault handler.
>
> Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*"
> Bug: angleproject:5857
> Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*"
Bug: angleproject:5857
Change-Id: Ifaa966a7c569aa9ff0112897a02fa8f873cd52dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3329610
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
f7d92a32
|
2021-12-10T10:23:32
|
|
Add debug info when loading EGL entry points fails
Mac11 bots are often failing with the:
"Error loading EGL entry points"
error for an unknown reason.
This CL adds the library path to the error message
to see if it's trying to open the correct file.
Bug: chromium:1277690
Change-Id: Ieb73a3097702933a89794d92c19ee44a6301c169
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3330576
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
|
|
663831aa
|
2021-12-09T18:08:28
|
|
Revert "Reland "system_utils: Add memory protection functionality.""
This reverts commit b1c703e5f5e44514e8db958a5fb39ff16e514fd8.
Reason for revert: Fails on fuchsia bots:
https://ci.chromium.org/ui/p/chromium/builders/try/fuchsia_arm64/1020498/overview
mprotect failed: Not supported
Original change's description:
> Reland "system_utils: Add memory protection functionality."
>
> This is a reland of ab75a90ff4ecb9d99b5c72bde92222b07c285401
> that was reverted in b007e667a8f94b47788a5ba0b2e61c9ac2d1285f.
>
> Implement PageFaultHandler and memory protection functions.
> Uses mprotect and sigaction on POSIX and equivalent Win API functions on
> win32.
>
> Add tests to system_utils_unittests.
>
> Add stubs for winuwp.
>
> Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler
> test to make it succeed on release builds, as the code was optimized
> out. Furthermore the test did not correctly remove protection from the
> whole area it protected, which caused a hang after deinitialization on
> some build configurations, since the custom page fault handler was also
> still in place. The test now correclty removes protection from the whole
> area and sets back the original page fault handler.
>
> Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*"
> Bug: angleproject:5857
> Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Bug: angleproject:5857
Change-Id: Iaab4067a7ec9240bb6c64b810ac6d3ea7bd86fe1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3327743
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b1c703e5
|
2021-12-08T14:53:46
|
|
Reland "system_utils: Add memory protection functionality."
This is a reland of ab75a90ff4ecb9d99b5c72bde92222b07c285401
that was reverted in b007e667a8f94b47788a5ba0b2e61c9ac2d1285f.
Implement PageFaultHandler and memory protection functions.
Uses mprotect and sigaction on POSIX and equivalent Win API functions on
win32.
Add tests to system_utils_unittests.
Add stubs for winuwp.
Replace ASSERT with ASSERT_TRUE in the PageFaultHandlerDefaultHandler
test to make it succeed on release builds, as the code was optimized
out. Furthermore the test did not correctly remove protection from the
whole area it protected, which caused a hang after deinitialization on
some build configurations, since the custom page fault handler was also
still in place. The test now correclty removes protection from the whole
area and sets back the original page fault handler.
Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*"
Bug: angleproject:5857
Change-Id: Ibb0acfefd9a09c3360c04c812a2a8346b951e1da
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322992
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
b007e667
|
2021-12-08T01:00:54
|
|
Revert "system_utils: Add memory protection functionality."
This reverts commit ab75a90ff4ecb9d99b5c72bde92222b07c285401.
Reason for revert: Causes angle_unittests to hang on many Linux FYI bots and likely Android. First known failures on Linux:
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(AMD%20RX%205500%20XT)/7318/overview
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(Intel%20HD%20630)/30297/overview
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Experimental%20Release%20(Intel%20HD%20630)/43446/overview
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(Intel%20UHD%20630)/4720/overview
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Release%20(NVIDIA)/29040/overview
https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20FYI%20Experimental%20Release%20(NVIDIA)/45374/overview
And Android:
https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(Nexus%209)/35989/overview
https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(NVIDIA%20Shield%20TV)/33490/overview
Original change's description:
> system_utils: Add memory protection functionality.
>
> Implement PageFaultHandler and memory protection functions.
> Uses mprotect and sigaction on POSIX and equivalent Win API functions on
> win32.
>
> Add tests to system_utils_unittests.
>
> Add stubs for winuwp.
>
> Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*"
> Bug: angleproject:5857
> Change-Id: Ia6d2e87c409e6139ccaebc8c7186cd4cd844fd28
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236998
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Bug: angleproject:5857
Change-Id: I7df73a3ee3f5fa87f002045dfa87d8ca2747f60f
No-Tree-Checks: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3322104
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
|
|
ab75a90f
|
2021-10-21T20:20:07
|
|
system_utils: Add memory protection functionality.
Implement PageFaultHandler and memory protection functions.
Uses mprotect and sigaction on POSIX and equivalent Win API functions on
win32.
Add tests to system_utils_unittests.
Add stubs for winuwp.
Test: angle_unittests --gtest_filter="SystemUtils.PageFaultHandler*"
Bug: angleproject:5857
Change-Id: Ia6d2e87c409e6139ccaebc8c7186cd4cd844fd28
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236998
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
|
24241724
|
2021-11-22T13:26:53
|
|
Reland: Vulkan: Use vkResetQueryPoolEXT when available
This is a reland of 97aa5187ed164f1e9a22b64c966f2a747f651bfb
Original change's description:
> ANGLE currently uses vkCmdResetQueryPool to reset a query pool. As
> reported by Arm, this can cause GPU bubbles. It is better to use
> vkResetQueryPoolEXT() when available (either by Vulkan 1.2 or by the
> VK_EXT_host_query_reset extension).
>
> Bug: angleproject:6692
> Change-Id: I650d7d0f55bdf6587b75be43cc7bed2dc3eb935a
> Reviewed-on:
> https://chromium-review.googlesource.com/c/angle/angle/+/3294061
> Commit-Queue: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:6692
Change-Id: Idff87977bd39ccd1d05684e48929f4cd3fa733c7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313382
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
c88a73c8
|
2021-12-02T12:49:00
|
|
Fix flakiness in CpuTimeSleepy
Looks like we can't really rely on the direct wall comparison---probably
different resolutions are tripping us up here.
Bug: chromium:1272977
Change-Id: Ie3691c59eb5b3765b79f1861200436d9c5acd609
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3313481
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ef65edf2
|
2021-11-22T14:23:35
|
|
Add extension: ANGLE_rgbx_internal_format
Add the extension ANGLE_rgbx_internal_format, which exposes the ANGLE
internal format GL_RGBX8_ANGLE. The format GL_RGBX8_ANGLE enables
emulating RGB8 formats with RGBA8 within ANGLE.
This also renames the format GL_RGBX8_ANGLEX to GL_RGBX8_ANGLE, since
it's being exposed.
Bug: angleproject:6690
Test: Texture2DTestES3.TextureRGBXImplicitAlpha1
Change-Id: I5548a3578a14e2f2a4006bbf59983b01f694b7f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3296625
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
a5e391d7
|
2021-11-19T17:35:06
|
|
Add GL_ANGLE_vulkan_image extension
glAcquireTextures & glReleaseTextures are added for sharing
texture ownership with an external API.
Bug: chromium:1264439
Change-Id: If46d8d230b4f611768b5ff1187674509e42f01e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3293921
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
00d0b79f
|
2021-11-26T14:38:20
|
|
Bug fix in BitSetArray iterator
Account for gaps spanning multiple BaseBitSet while iterating.
Bug: angleproject:3877
Tests: BitSetArrayTest*IterationWithGaps*
Change-Id: I64a0393bf117678b0a7855904a6ac328a13bb40c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3304108
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
14f55a7f
|
2021-11-02T10:16:58
|
|
infra: Enable TSAN and UBSAN tests.
These tests are not yet enabled on the CQ.
Bug: angleproject:5795
Change-Id: I3fc58ab800ebbc0840da8221b03b4ab145d28028
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258003
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
e00ad443
|
2021-11-15T20:16:16
|
|
Add EGL_ANGLE_vulkan_image extension
This extension is for exporting VkImage from EGLImage.
The VkImage must be used with the same VkDevice used by ANGLE
Vulkan backend.
Bug: chromium:1264439
Change-Id: I222d900465cf2716d94fc64f06e240390ec518ac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3285025
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
2fa1adf0
|
2021-11-24T18:29:13
|
|
Revert "Vulkan: Use vkResetQueryPoolEXT when available"
This reverts commit 97aa5187ed164f1e9a22b64c966f2a747f651bfb.
Reason for revert: This apparently caused crbug.com/1273344
Original change's description:
> Vulkan: Use vkResetQueryPoolEXT when available
>
> ANGLE currently uses vkCmdResetQueryPool to reset a query pool. As
> reported by Arm, this can cause GPU bubbles. It is better to use
> vkResetQueryPoolEXT() when available (either by Vulkan 1.2 or by the
> VK_EXT_host_query_reset extension).
>
> Bug: angleproject:6692
> Change-Id: I650d7d0f55bdf6587b75be43cc7bed2dc3eb935a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294061
> Commit-Queue: Ian Elliott <ianelliott@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Charlie Lao <cclao@google.com>
Bug: angleproject:6692
Change-Id: I70d5eeb0b98f016fd262935194f8f4abee2a72b9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3300309
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Lingfeng Yang <lfy@google.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
6c172e4b
|
2021-11-20T16:27:14
|
|
Add support for memory cleanup on process exit
This patch adds a callback to cleanup memory on process exit.
Bug: angleproject:6723
Test: Android CTS WrapperTest.testThreadCleanup
Change-Id: Ia517d4c6ae280ddc1f17a3b6f77d437aaaad0678
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294581
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
|
|
8b60855b
|
2021-09-15T15:16:10
|
|
EGL: implement EGL_KHR_mutable_render_buffer
Pass render buffer mode change to WindowSurfaceVk.
On mode change trigger OUT_OF_DATE. Then in CreateSwapchain,
if new mode, set the Presentation mode and the Image count.
OffscreenSurfaceVk ignores mode change.
Add MUTABLE_RENDER_BUFFER_BIT to GenerateDefaultConfig.
Test: dEQP-EGL.functional.mutable_render_buffer.*
Bug: angleproject:3966
Change-Id: I7b59708514bcda10f8d45ce5f9528aa840fcccfa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3171822
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
97aa5187
|
2021-11-22T13:26:53
|
|
Vulkan: Use vkResetQueryPoolEXT when available
ANGLE currently uses vkCmdResetQueryPool to reset a query pool. As
reported by Arm, this can cause GPU bubbles. It is better to use
vkResetQueryPoolEXT() when available (either by Vulkan 1.2 or by the
VK_EXT_host_query_reset extension).
Bug: angleproject:6692
Change-Id: I650d7d0f55bdf6587b75be43cc7bed2dc3eb935a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3294061
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
ce6f9c8f
|
2021-11-19T14:52:48
|
|
Update checked numerics library.
This library hadn't been updated in quite some time and had bugs
which affected UBSAN in some operators.
Bug: angleproject:5795
Change-Id: I40f658655034ce03df29cf4c71acb3f6fe96bef0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3289941
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6e2e36cc
|
2021-11-19T00:57:29
|
|
[Fuchsia] Fix SwiftShader ICD discovery
ANGLE needs to set VK_ICD_FILENAMES for the Vulkan loader to discover
SwiftShader's ICD. Enable this logic on Fuchsia.
Also updated ConcatenatePath() to handle absolute paths correctly.
Bug: chromium:1225002
Change-Id: Ib69be0d7dcaef09f1da9d411023e90a3b7b4fca2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3292347
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1cc5d096
|
2021-10-21T19:58:58
|
|
mathutil: Add roundDownPow2.
Bug: angleproject:5857
Change-Id: I6c7ae92a41957e9e6b40b6449f763a49493488d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236996
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a00ce2ca
|
2021-11-19T10:23:53
|
|
Vulkan: Fix CFI ignore config.
This was being applied to "vulkan" when it should be higher in
the chain of depedencies. This CL moves it to "vulkan_icd".
Bug: angleproject:6496
Bug: chromium:1271193
Change-Id: I064caac6afe237d7008389f444d6ef9f37cff286
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3289937
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
e9f9fa17
|
2021-11-09T18:13:15
|
|
Add cpu time measurement to perf tests
Bug: angleproject:6667
Change-Id: I16570a7b51d363dd1c0f35789b985520cb76d488
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270601
Commit-Queue: Lingfeng Yang <lfy@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
d27552f2
|
2021-11-11T11:43:30
|
|
Re-land: "Vulkan: Allow SystemInfo to pick ICD."
Re-land fixes build on iOS and Android with ANGLE/Vulkan.
This will be used in conjunction with SwiftShader.
Bug: angleproject:6496
Change-Id: Id38403da1e377bba293dc8368d1c1aac29bf56a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3282426
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
ae3f67ab
|
2021-11-11T20:32:32
|
|
Implement GL_EXT_multi_draw_indirect
* Auto-generated the code to lay the foundation for
the following functions:
* multiDrawArraysIndirect()
* multiDrawElementsIndirect()
Bug: angleproject:6439
Change-Id: I7ab5111692376229515e0d6d9e6148909ce9a8a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276042
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
a9f2e87e
|
2021-11-12T15:02:50
|
|
Revert "Vulkan: Allow SystemInfo to pick ICD."
This reverts commit b5adbe272e4829d77105e49607bf8ddafd385f17.
Reason for revert: Fails GN check on Android/iOS in Chrome:
https://chromium-review.googlesource.com/c/chromium/src/+/3276779/
Original change's description:
> Vulkan: Allow SystemInfo to pick ICD.
>
> This will be used in conjunction with SwiftShader.
>
> Bug: angleproject:6496
> Change-Id: I894aa4cf3b9473738b549de9941eb82e09234121
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276515
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
TBR=syoussefi@chromium.org,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com
Change-Id: I198802d6bc93993d3544ed4627e131cb7b93f381
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:6496
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276045
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
b5adbe27
|
2021-11-11T11:43:30
|
|
Vulkan: Allow SystemInfo to pick ICD.
This will be used in conjunction with SwiftShader.
Bug: angleproject:6496
Change-Id: I894aa4cf3b9473738b549de9941eb82e09234121
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276515
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
2a9e6e48
|
2021-11-01T15:56:54
|
|
infra: Add tests to ASAN configs.
These add basic ANGLE tests with SwiftShader + ASAN.
Bug: angleproject:5795
Change-Id: I92a51a44214ff0f442d4a1b2a0bc6ac2b8d3f4eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254431
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
d3e67716
|
2021-09-21T15:03:15
|
|
EGL: EGL_KHR_lock_surface3
Add new extension KHR__lock_surface3
Add new interfaces for locking and unlocking a surface.
Test: angle_end2end_test --gtest_filter=EGLLockSurface3Test
Bug: angleproject:6062
Change-Id: Ic40708db4db552107025635540a0c62f956d741e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161447
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
0b56267f
|
2021-11-02T12:25:40
|
|
Implement ANGLE_FALLTHROUGH macro.
Use it instead of ABSL_FALLTHROUGH_INTENDED.
(ANGLE shouldn't use absl unless angle_enable_absl is true.
This is breaking the roll of ANGLE into Dawn.)
Bug: angleproject:6647
Change-Id: I47f9a00841c4605fca52b17eeb68c0b1da5004c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258008
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
6ce67886
|
2021-10-28T13:45:18
|
|
Drop -Wweak-template-vtables
Clang is dropping suport for this flag, see bug.
Bug: chromium:1264351
Change-Id: I09b3d42889eecb8e786c52c205f28507fc797c5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250885
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
36eac05f
|
2021-10-25T15:45:36
|
|
VANGLE: change the default vulkan device choose logic
To match the vulkan device choose logic in chrome, ANGLE will choose
the default device based on the order of (discret GPU > integrated GPU
> other GPU)
TODO: for long term, ANGLE should provide a way to let chrome specify
the physical device.
Bug: chromium:1260869
Change-Id: Id023138485eb65fcc1d2758103d59a4e6cb2a51d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3242963
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
|
|
be947198
|
2021-10-20T17:33:34
|
|
avoid reading past end of stack array in GetEnvironmentVar
I ran into a case where GetEnvironmentVariableA returned a nonzero
value, but std::string() read past the end of the oldValue array when it
tried to strlen() it.
It seems it tried to read an environment variable that was already huge,
because MSDN says:
If lpBuffer is not large enough to hold the data, the return value
is the buffer size, in characters, required to hold the string and
its terminating null character and the contents of lpBuffer are
undefined.
So if the buffer isn't large enough, it doesn't just truncate the value
(like GetModuleFilenameA would). It instead returns the size we would
need to allocate to store the value. It also vaguely states that the
contents of the buffer are undefined in this scenario, which means that
the std::array used here could still be filled with uninitialized data
without a null character in there.
A better solution here is to use a FastVector, so we can resize it to
fit whatever variable we're reading (MSDN states the maximum environment
variable size is 32,767 characters, including the null terminator -- not
MAX_PATH as this code seems to have assumed).
Bug: angleproject:6600
Change-Id: I1582867578c5b879e71d58ab494a5134848b180f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235902
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
9e8c929e
|
2021-10-20T17:19:02
|
|
FastVector: fix stack read overrun in ensure_capacity
mSize should not be set until *after* calling ensure_capacity, otherwise
we will read past the end of our statically allocated buffer when
initializing the new array.
This was caught by AddressSanitizer during one of the Vulkan BasicDraw
tests, when compiling a shader to SPIR-V.
Bug: angleproject:6600
Change-Id: I9ddb326d03ce5cda23973110e63d30b8829da2f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3235901
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d8c18ac6
|
2021-10-08T13:00:19
|
|
Re-land: "Isolate commit_id.h from other code."
Re-land limits the angle_version deps to Windows to fix an iOS
visibility rule violation in GN.
Instead of recompiling multiple source files, we can seal off the
files that include commit_id to prevent recompilations when the
commit changes and source files don't change.
Bug: angleproject:2551
Change-Id: I033f00ec7afe4bfd01e29e0eea8848eea27747a0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3233899
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
7defdb60
|
2021-10-19T14:07:07
|
|
Revert "Isolate commit_id.h from other code."
This reverts commit 6d7ebf656d06f1152967aa5f4457d3787a24732c.
Reason for revert: Suspected reason for failing ANGLE roll into Chromium
Original change's description:
> Isolate commit_id.h from other code.
>
> Instead of recompiling multiple source files, we can seal off the
> files that include commit_id to prevent recompilations when the
> commit changes and source files don't change.
>
> Bug: angleproject:2551
> Change-Id: I98800c5a8e04ec7d4c3e57ea0eb3b636d3b224bb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212895
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Bug: angleproject:2551
Bug: angleproject:6588
Change-Id: I19f41141f57d0683efb9a4ec043e078a9f7dc925
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226056
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
6d7ebf65
|
2021-10-08T13:00:19
|
|
Isolate commit_id.h from other code.
Instead of recompiling multiple source files, we can seal off the
files that include commit_id to prevent recompilations when the
commit changes and source files don't change.
Bug: angleproject:2551
Change-Id: I98800c5a8e04ec7d4c3e57ea0eb3b636d3b224bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212895
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
7aba3bc5
|
2021-10-14T23:14:37
|
|
Vulkan: Use a CircularBuffer helper class in SurfaceVk
There are two instances of circular buffer in SurfaceVk. A common
helper class is introduced by this change to consolidate the
implementation.
This is in preparation for a follow up change that introduces yet
another circular buffer in this class.
Bug: angleproject:6401
Change-Id: Id01b585567310a2528888114239a5c80ff93f1ee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3225084
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
f3d5dac3
|
2021-08-23T17:25:15
|
|
Vulkan: SPIR-V Gen: Drop dependency to glslang
The SPIR-V gen path is now made default. Compilation through glslang is
still supported for debugging, and is enabled on the GLSL* end2end tests
for smoke testing. On release builds, glslang is not supported.
To test with glslang, add the following gn arg (only necessary if dcheck
is disabled):
angle_enable_spirv_gen_through_glslang = true
Then enable the generateSPIRVThroughGlslang feature. This can be done
by setting an environment variable:
ANGLE_FEATURE_OVERRIDES_ENABLED=generateSPIRVThroughGlslang ./angle_deqp_gles2_tests
Binary size saving:
- 1.3MB on Linux (SPIR-V gen itself: 240KB)
- 730KB on Android (SPIR-V gen itself: 140KB)
Perf tests:
- LinkProgramBenchmark.Run/vulkan_compile_single_thread
* Through glslang:
truncated mean: 1287033.36
* Direct SPIR-V Gen:
truncated mean: 244495.91 (~80% reduction)
- LinkProgramBenchmark.Run/vulkan_compile_multi_thread
* Through glslang:
truncated mean: 4565894.83
* Direct SPIR-V Gen:
truncated mean: 1158164.10 (~75% reduction)
Bug: angleproject:4889
Bug: angleproject:6210
Change-Id: I486342702977c8114e90073b97183aba115a8b2d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115140
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
100ebfd7
|
2021-10-13T12:07:21
|
|
Revert "Re-enable PoolAllocatorAlignmentTest.Alignment"
This reverts commit 7eada73ac4964df5ffd539efb7a0569a97e4fd3d.
Reason for revert: Breaking Lollipop tester likely b/c of 32-bit issues.
Bug: chromium:1259544
Original change's description:
> Re-enable PoolAllocatorAlignmentTest.Alignment
>
> The PoolAllocatorAlignmentTest.Alignment/64 variant of the test fails on
> windows/debug, so this change re-enables this test everywhere except for
> that variant (and speculatively /128) on windows.
>
> Bug: angleproject:6536
> Change-Id: Ibc4fcbe04e7579f3ad7eb68f4f460078ee27ac88
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212329
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Bug: angleproject:6536
Change-Id: I74ebf1c78c8b15c14c9d1496948adafd13e0d2ba
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3220971
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
558eda6e
|
2021-10-12T15:34:45
|
|
Vulkan: Remove provoking-vertex structs from "custom" list
This extension has been released.
Bug: angleproject:4063
Change-Id: I007c20a895819aa11382837a3ad654839e127365
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3217938
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
7eada73a
|
2021-10-07T11:09:50
|
|
Re-enable PoolAllocatorAlignmentTest.Alignment
The PoolAllocatorAlignmentTest.Alignment/64 variant of the test fails on
windows/debug, so this change re-enables this test everywhere except for
that variant (and speculatively /128) on windows.
Bug: angleproject:6536
Change-Id: Ibc4fcbe04e7579f3ad7eb68f4f460078ee27ac88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212329
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
fde87f5d
|
2021-10-06T15:10:09
|
|
Fix negative fixed-point->float conversions
The fixed-to-float conversion routine in mathutils only operated
correctly on positive numbers. This caused failures in some GLES1
apps when negative fixed-point values were converted, as for
glTranslatex().
Bug: b/199919700
Test: Manual -- Zillow app should show data on map
Change-Id: I2ac4794478d3ad4c50057527134c9c17c8680338
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209826
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mark Lobodzinski <mark@lunarg.com>
Commit-Queue: Ian Elliott <ianelliott@google.com>
|
|
fbf8d1ea
|
2021-10-07T13:53:05
|
|
Remove windows.h from common/platform.h
Windows.h is expensive and causes lots of namespace pollution with the
macros that it defines. This change removes windows.h from platform.h
and debug.h and adds the necessary typedes and new include of windows.h
to let Chromium build.
This reduces the number of Angle translation units that include
windows.h by about a third, from 624 to 440. Significant further
reductions will be difficult because of translation units that genuinely
need windows.h.
Earlier versions of this change made it clear that the DeleteFile and
GetCurrentTime macros were renaming Angle functions. These angle
functions were renamed which makes this change much simpler.
Bug: angleproject:6283
Change-Id: Icddc8f98b19485e563b2cf616bba2ad4ea49228e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212639
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
666fcf38
|
2021-10-08T12:19:15
|
|
Rename functions that overlap with Windows APIs.
Bug: angleproject:6283
Change-Id: Ifcd9ea9e3bf729fd2066178eb9429050b2f10518
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212894
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
8770cefc
|
2021-10-04T13:47:23
|
|
Capture/Replay: Store enums to JSON as hex
We're storing some enums in the per-trace JSON as decimal.
This makes them difficult to read, i.e.:
"DisplayDeviceType": 12810,
"DisplayPlatformType": 13392,
"DrawSurfaceColorSpace": 12425,
If we instead convert them to hex, they are much easier to
read and grep the source for.
"DisplayDeviceType": "0x320A",
"DisplayPlatformType": "0x3450",
"DrawSurfaceColorSpace": "0x3089",
Since JSON doesn't actually support hexadecimal values, this CL
stores them as strings.
Ideally we could take this a step farther and store the enum
directly in JSON, but we have no facilities for converting
a string back to an enum.
Bug: angleproject:5133
Bug: angleproject:6515
Change-Id: I7b5d4dc8958d43c611da1fe98887e089f3d855b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3204135
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
|
|
161668b6
|
2021-10-06T21:12:39
|
|
Refix ANGLE_DISABLE_POOL_ALLOC build
mAlignmentMask was removed in the normal path, but wasn't entirely from
this path. This change cleans that up.
Bug: angleproject:3167
Change-Id: I34474c114cd50cf94c5bc3c22ad4548414e9baac
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210627
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
|
|
d14d0c39
|
2021-10-06T20:41:12
|
|
Redisable PoolAllocatorAlignmentTest.Alignment in Debug
Was enabled by crrev.com/c/3206255, but fails.
Bug: angleproject:3167, chromium:1257395
Change-Id: Ibe34128c4479c7c2706270e04ef39b5ec29eb1a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210013
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
9a776e89
|
2021-10-06T18:08:18
|
|
Fix ANGLE_DISABLE_POOL_ALLOC build
Broken by crrev.com/c/3206255
Fails rolling into Chromium in crrev.com/c/3208847 on
linux-libfuzzer-asan-rel and win-libfuzzer-asan-rel.
Bug: angleproject:3167
Change-Id: If5d085492dfa87120c7c24a7102161d625d68e4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3209966
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
|
|
d920e4d1
|
2021-10-05T22:36:06
|
|
Assert that float32->float10/11 doesn't shift by more than 32
some_uint32_value >> 32 has undefined behavior. The code that converts
float32 to float10 and float11 should not be shifting by values larger
than 32, and this change asserts that.
Bug: angleproject:4962
Change-Id: I9f2a914bad7084157cc35a8fb7f0be6f448a854b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3207528
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
|
|
8906f242
|
2021-10-05T15:20:33
|
|
Change default alignment of pool allocator to pointer-aligned
The translator uses the pool allocator with its default alignment. The
alignment was previously 16, which is unnecessary. That is changed to
sizeof(void *) such that allocations are pointer aligned.
Running TracePerfTest.Run/vulkan_manhattan_10 on Linux, the total size
of allocations made by this class for the translator goes down from
376832 bytes to 360448 bytes for a ~4.3% improvement.
Bug: angleproject:3167
Change-Id: I72c13bc78c1a4ba7c800eccdac82de39c25795f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206256
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
71984bff
|
2021-10-05T14:59:26
|
|
Reduce memory waste in PoolAllocator due to alignments
Prior to this change, the PoolAllocator wasted memory in alignments.
This was due to the fact that alignment was made to the wrong values,
and they were fixed with more alignments and conservative extra space
allocations.
This change makes sure that alignment is applied once, and such that the
actual pointer that needs to be aligned is aligned, not the header that
might come before it, and that allocation size is calculated precisely.
This improves memory allocation by reducing waste, but only affects
the use of the pool in the translator, as Vulkan secondary command
buffers (the other user) use an alignment of 1 and take a different
path.
Running TracePerfTest.Run/vulkan_manhattan_10 on Linux, the total
size of allocations made by this class for the translator goes down from
466944 bytes to 376832 bytes for a ~20% improvement.
Bug: angleproject:3167
Change-Id: Ib4e6fd23ac32c8fb21810b20cd383758b8bff47f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206255
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
1cd6708a
|
2021-10-05T10:24:35
|
|
Clean up the PoolAllocator class
Many things were unnecessarily in the header and are now moved to the
source file.
Bug: angleproject:3167
Change-Id: I52b83fdde5b6e984c5f5491c2ce050debf78f8b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206072
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
0004ecc2
|
2021-09-22T13:39:55
|
|
Write GL info to test artifact in end2end_tests.
These will show up as glinfo.json in the "cas outputs" of the shard
that runs these tests.
We currently have information for Pixel 4, NVIDIA and Intel Win/Linux,
and SwiftShader Windows. GLES 1.x extensions are treated separately.
Some WebGL/Mac-only/D3D-only extensions show as unsupported anywhere.
In order to capture artifacts on Android, we use a render test output
parameter.
Bug: angleproject:6379
Change-Id: I560b219b5a586cdbb68d272090f38eedc76aba20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176780
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
|
|
c0aa6108
|
2021-09-17T16:22:55
|
|
Add new GL_RGBX8_ANGLEX format
Currently, IOSurface objects using {GL_RGB, GL_UNSIGNED_BYTE}
are natively represented with GL_BGRX8_ANGLEX, which we use
instead of other RGBA formats in order to avoid issues when
a canvas uses 'no alpha':
https://source.chromium.org/chromium/chromium/src/+/main:third_party/swiftshader/third_party/angle/angle/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.mm;l=44
This unfortunately causes some other issues because of the
implicit RGB <-> BGR conversion like type mismatches in
subresource updates. This CL adds a new type, RGBX8, which
will be usable by IOSurface objects and which behaves exactly
like the BGRX8 format with the B and R channels flipped.
Bug: chromium:1209250
Change-Id: I345eadc8addd05a0964cae30d89c20005479e37b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188910
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
|
|
eb1d5ca5
|
2021-01-29T15:34:49
|
|
Vulkan: Enable sync validation
Based on a change by tobine@google.com
Bug: angleproject:5290
Change-Id: Ieae1be5a29f0dcb3ea8aaa04e77fc402380a08b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3171432
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
|
|
4f2b2995
|
2021-09-23T09:50:46
|
|
Fix -Wshadow.
This still disables the warning for glmark2 instead of fixing it, to
avoid needing to upstream a patch.
Bug: chromium:794619
Change-Id: Ice602996041d6090c9b09ee81c8ed095c4fa6b2e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3179860
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
49ac15a5
|
2021-09-20T11:29:01
|
|
Optimize VAO bindings.
This CL makes the XFB binding tracking WebGL-only. That will
speed up VAO binding changes in non-WebGL considerably.
Also has a few inline micro-optimizations that may not have
a large effect.
Bug: angleproject:6371
Change-Id: Ib0a26a3b956dcd6ff78626e5cd6514b46270d882
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3170116
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
9184973f
|
2021-07-21T08:28:30
|
|
Add GetCompressedTexImageANGLE to ANGLE_get_image
Includes front-end support for reading back compressed texture images.
Back-end support is incomplete and will be implemented in a future CL.
CL authored by cnorthrop@google.com.
Bug: angleproject:6177
Change-Id: I1482b15e5ffec6120f09f51b2718cdbef07c93c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163359
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
458389f2
|
2021-09-02T22:41:40
|
|
Vulkan: Support Linux dma-bufs
This change adds support for EGL_EXT_image_dma_buf_import and
EGL_EXT_image_dma_buf_import_modifiers on top of Vulkan's
VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier.
Bug: angleproject:6248
Change-Id: I581987f88e9ddcf351dc721f499f63912dca05f9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3145610
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
1af5c46c
|
2021-09-14T14:40:49
|
|
Move JsonSerializer from libANGLE to common.
This lets us use the serializer from outside of libANGLE. The plan is
to use it to serialize a list of supported extensions from the tests.
Bug: angleproject:6379
Change-Id: Ib7b64cca32e733e342b80f893d3752318089f0c2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3163361
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
a33d902b
|
2021-08-16T12:01:53
|
|
Add Entry points for GL_EXT_EGL_image_storage
Code generation for GL_EXT_EGL_image_storage
Bug: angleproject:6346
Change-Id: Ib918619205bfe7bd8fba0748ff6db593c858151f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3133763
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
e1bc8de3
|
2021-09-08T07:59:37
|
|
Change links from 'master' to 'main' branch.
Bug: chromium:1226949
Change-Id: Ie7b28b2fa094cf0c0a407968d681e580519cbb88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3148210
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
c5a38976
|
2021-09-01T07:35:40
|
|
Capture/Replay: Add expression trigger validation calls.
Setting the environment variable "ANGLE_CAPTURE_VALIDATION_EXPR"
will make ANGLE's capture logic evaluate this expression every
captured call to see if it should insert a validation checkpoint.
The retracing script also accepts --validation-expr as an argument.
For instance, the expression:
((frame == 2) && (call < 1189) && (call > 1100) && ((call % 5) == 0))
Will insert validation checkpoints on frame 2, between calls 1100 and
1189 and will validate every 5th call. The 'call' here is the count of
captured calls, which are mostly GL calls with a few ANGLE replay
calls in the mix.
We add a small single-header library that can evaluate arthithmetic
expressions in order to parse these expressions, as well as an option
to the retracing script.
Bug: angleproject:5133
Change-Id: Ic369e85d8e905a3a7a32fa098f7d8ebe7baf4ab9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136094
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
|
|
fa53afa4
|
2021-09-01T08:52:13
|
|
Capture/Replay: Add uniforms to program serialization.
Previously we weren't serializing the uniform data. This meant that
buggy uniform capture wouldn't show up as diffs in the serialization.
Verified that this new uniform capture caught a bug when retracing
PUBG mobile, which uses indexed array uniform locations.
Bug: angleproject:5133
Change-Id: I2a9f6ca45f1247b1a81337e47b7fb7a3d3ab4953
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3136093
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
6136620b
|
2021-03-25T15:43:06
|
|
Reland "EGL: GLES: Implement GL_EXT_protected_textures"
This is a reland of 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa
This removes changes in gl backend.
Original change's description:
> EGL: GLES: Implement GL_EXT_protected_textures
>
> Implement EGL_EXT_protected_content Images
> Add protected member to Images and Textures
> Add error when creating objects if not supported or
> does't match native buffer
> When creating siblings pass protected state
> Add extension caps
> Add Validation
> Add GetTexParameter and SetTextparameter
> Add protected to Texture and state
> Expand tests for images and textures
>
> Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
>
> Bug: angleproject:3965
> Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
Bug: angleproject:3965
Change-Id: Id36d697c53afc0f0dadf92bda4565f9157f4fc2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3076825
Commit-Queue: Brandon Schade <b.schade@samsung.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
ab19e742
|
2021-08-04T18:41:51
|
|
Match DebugAnnotator::{begin|end}Event() calls
The tests for whether ScopedPerfEventHelper::~ScopedPerfEventHelper()
should call DebugAnnotator::endEvent() were not valid:
- The test in ScopedPerfEventHelper::begin() simply checks whether a
DebugAnnotator has been initialized.
- In addition, ScopedPerfEventHelper::~ScopedPerfEventHelper() also
checks whether DebugAnnotator::getStatus() returns true, which will
always be false when the generic LoggingAnnotator is pluged in.
- The check in ScopedPerfEventHelper::~ScopedPerfEventHelper() must
take into account whether EGL_Initialize() or EGL_Terminate()
changed g_debugAnnotator, and whether ScopedPerfEventHelper::begin()
called DebugAnnotator::beginEvent(), and so a matching endEvent()
should be called.
The check in ScopedPerfEventHelper::~ScopedPerfEventHelper() is now
simplified.
Bug: angleproject:6158
Change-Id: I7fbd19cd0a372ef3ce3600c5d3fc50234b53ca38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3072564
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d4d6c23c
|
2021-07-31T11:41:29
|
|
Fix a recently-introduced case of -Wunreachable-code-aggressive.
Also enable this and -Wunused-but-set-variable to avoid regressing them.
Bug: chromium:1066980
Change-Id: I1fd7a57c2bf14513d657b69b70e35ad727c75ffd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3065355
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
cad2bcb8
|
2021-07-27T11:40:25
|
|
packed_egl_enums: Add ColorSpace.
Add EGL ColorSpace enum consisting of sRGB and Linear entries.
Bug: angleproject:5857
Change-Id: I1e30db6fca6ad65db17a6369a26eae886468a85d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056370
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
3036e090
|
2021-07-29T15:55:39
|
|
Vulkan: Direct SPIR-V Gen: Support the precise keyword
The precise keyword is different in GLSL in that it defines what
arithmetic operations _that have led to the value being assigned to a
variable_ should be done precisely (i.e. not "contracted").
A tree traverser is implemented that detects precise access chains and
applies precise-ness to the right hand side of assignment expressions to
said access chains. This is only done if the shader uses the precise
keyword in the first place. The algorithm for this is inspired by the
implementation in glslang.
This change additionally:
- Fixes parser to allow precise on function parameters
- Fixes GLSL code generation to output precise on struct members and
function parameters.
Bug: angleproject:4889
Change-Id: Ie3808c3c8c08da308e88af20f5f90379d9d14d47
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3056369
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
8f77e0bc
|
2021-07-29T15:54:26
|
|
Define angle::HashSet potentially using abseil
Split change from CL using it for simplicity.
Bug: angleproject:4889
Change-Id: Ie3e621dee624020581e9fd7679639332718948f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3061439
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
c408926f
|
2021-07-22T12:00:59
|
|
Revert "EGL: GLES: Implement GL_EXT_protected_textures"
This reverts commit 6210a9b34a721df2c84cf69170ad9bf7ba40e4aa.
Reason for revert: Suspected for breaking ANGLE->Chrome roller.
Bug: angleproject:6204
Original change's description:
> EGL: GLES: Implement GL_EXT_protected_textures
>
> Implement EGL_EXT_protected_content Images
> Add protected member to Images and Textures
> Add error when creating objects if not supported or
> does't match native buffer
> When creating siblings pass protected state
> Add extension caps
> Add Validation
> Add GetTexParameter and SetTextparameter
> Add protected to Texture and state
> Expand tests for images and textures
>
> Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
>
> Bug: angleproject:3965
> Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:3965
Change-Id: Ia3ef260a17097b474189ccad5b235a9db99ee00b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3043889
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
|
|
6210a9b3
|
2021-03-25T15:43:06
|
|
EGL: GLES: Implement GL_EXT_protected_textures
Implement EGL_EXT_protected_content Images
Add protected member to Images and Textures
Add error when creating objects if not supported or
does't match native buffer
When creating siblings pass protected state
Add extension caps
Add Validation
Add GetTexParameter and SetTextparameter
Add protected to Texture and state
Expand tests for images and textures
Test: angle_end2end_test --gtest_filter=EGLProtectedContentTest
Bug: angleproject:3965
Change-Id: I35a89b4e80bba6d9b6831c68e71630eef304dacb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2802852
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
afda22b0
|
2021-07-19T16:46:50
|
|
Define ANGLE_IS_64_BIT_CPU in common/platform.h.
This is more reliable and reduces reliance on build flags.
Vendoring into Firefox, it's not trivial to replicate build flags,
but C++-native checks always work.
Bug: angleproject:6186
Change-Id: Idafd4ef1954efbfa79eae86cddfaa8f2e3992296
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3036589
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
|
|
2b86e2d6
|
2021-07-19T10:30:57
|
|
GN: Update dcheck/assert conditions.
In preparation for a Chromium change that makes dchecks enabled
by default in Release builds, we'll keep ASSERT disabled in
Release by default. We add a new flag 'angle_assert_always_on'
for controlling ANGLE ASSERT behaviour.
Also slightly refactors the direct SPIR-V generation GN.
Chromium CL: https://crrev.com/c/2893204
Bug: chromium:1225701
Change-Id: I01a6def28d7c21e771e9800889a6b9c274972de2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035447
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
48da1c35
|
2021-07-16T13:24:34
|
|
Vulkan: Prefer the local vulkan loader over the system one.
Load the Vulkan loader ourselves and give vkGetInstanceProcAddr to
volk. This allows us to always prefer loading from the current module
directory instead of using the platform-specific ordering.
Refactor angle::Library loading to use ModuleDir instead of
ApplicationDir.
CL originally authored by Geoff Lang.
Bug: chromium:1219969
Change-Id: I21d1926e90fd66e1c23cea7323991ae55f3d22d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035444
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5e579a18
|
2021-07-13T01:22:48
|
|
Vulkan: SPIR-V Gen: Support row-major blocks
The SPIR-V type generation is refactored to contain all
type-differentiating properties in a specific struct that is passed
around. The following can lead to different SPIR-V types generated from
the same GLSL type:
- Block storage for blocks
- Invariant for blocks
- Row-major for blocks with matrices
- Row-major for matrix arrays in blocks
- Bool when used inside an interface block (not yet implemented)
Previously, block storage and invariant were passed around. Instead,
with this change the aggregate of all the above is passed around. The
row-major specialization is added in this change.
This change also refactors the uniform/buffer block encoding to use the
existing encoders in blocklayout.h.
Bug: angleproject:4889
Change-Id: I3cfa8bd96bb380a1f1f05fbbd6b3eebd702c9e24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021670
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
|
|
e66e3344
|
2021-07-12T13:28:54
|
|
Vulkan: Add GL_ANGLE_yuv_internal_format extension
1. Add a new extension to support creation of immutable textures with
sized internal YUV formats
2. Rename YUV format enums from *_ANGLEX to *_ANGLE
3. Move YUV format enums from angleutils.h to glext_angle.h
Bug: angleproject:5773
Change-Id: Ibfe732f4c9a4a536be56481f33e4768f6227c212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2820153
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
|
|
d33a2222
|
2021-04-26T16:56:15
|
|
Upstream Apple's direct-to-Metal backend: compile libANGLE.
This change is meant to merge the metal backend changes from Apple's
direct-to-Metal backend. Taken from Kyle Piddington's CL:
https://chromium-review.googlesource.com/c/angle/angle/+/2857366/
The goal of this CL is to merge the metal backend code in a state
that compiles, but not to switch the Metal backend over to using
the direct-to-metal backend yet.
Bug: angleproject:5505
Bug: angleproject:6127
Change-Id: If6783e06e0086b3a1dd25c6f53caca5cfc96cb86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2950067
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
|